Require_once перестал работать после установки почты через грушу

поэтому на моем сервере Ubuntu 16.04 у меня есть несколько файлов .php в моем каталоге /var/www/html/, которые я делаю обычными php-вещами, такими как поиск данных, вход пользователя в систему... и т. д. Я хотел реализовать проверку почты сервис, в котором я хотел использовать smtp-сервис gmail, поэтому я установил почту через грушу с помощью следующей команды:

pear install --alldeps Mail

Выполнив шаги в этот сайт, я перезапустил apache2, и теперь мой php require_once не работает. Я попробовал include_path, который тоже не сработал.

Я удалил почту с помощью pear uninstall mail, удалил php и переустановил его, надеясь, что он вернет файлы, но не повезло, кто-нибудь знает, что произошло и как я могу это исправить?

пример кода: require_once 'DbOperation.php';

Приведенный выше код работал, и я хочу, чтобы он работал, поскольку он является ключом ко всему моему php API, пожалуйста, не предлагайте обходной путь. Любая помощь приветствуется.

Что было include_path до того, как вы установили Mail? Что теперь?

Dave 01.05.2019 17:57

это не было include_path раньше, это было require_once, я только что попробовал include_path, чтобы проверить его после того, как он начал давать сбой

Crashie 01.05.2019 17:58

@Dave, и сейчас ничего, потому что он не работает ... поэтому я оставил его как require_once, надеясь, что смогу это исправить и оставить файлы php как есть

Crashie 01.05.2019 18:04

Путь включения по умолчанию в примерах ini-файлов включает .: для Linux. Находится ли код, который использует require_once в каталоге /var/www/html/, и DbOperation.php тоже в этом каталоге?

Dave 01.05.2019 18:08

@Dave Да, все файлы .php в каталоге /var/www/html, раньше он работал, вызывая файл как есть без разделителей каталогов, пример кода, который я предоставил в своем вопросе, был действителен и раньше работал как очарование.

Crashie 01.05.2019 18:10

@Dave Дэйв может при установке почты изменить конфигурацию php таким образом, что функция не будет работать?

Crashie 01.05.2019 18:11

Не то чтобы я когда-либо слышал. Какую именно ошибку вы получаете?

Dave 01.05.2019 18:11

Я не знаю, я повторяю случайное предложение до и после функции require_once, при запуске работает только первое эхо, оно не достигает второго эха, как фатальная ошибка, есть ли способ распечатать свою ошибку ?

Crashie 01.05.2019 18:13

Убедитесь, что все отчеты об ошибках включены. ini_set('display_errors', 1);ini_set('display_startup_errors', 1);error_reporting(E_ALL);. Может ли DbOperation.php по какой-то причине не работать сейчас?

Dave 01.05.2019 18:15

@Dave, о, вау, это на самом деле не удалось из-за отсутствия ")"... это ошибка новичка :'(, на самом деле ты спаситель жизни, пожалуйста, опубликуй свой ответ официально, чтобы я мог отметить как решенный, спасибо много

Crashie 01.05.2019 18:22

@Dave Дэйв, мне действительно сейчас стыдно, прости меня xD

Crashie 01.05.2019 18:23

Это было в требуемом коде?

Dave 01.05.2019 18:23

@Dave, это было в DbOperation.php, как вы сказали, это было ошибкой, но я не понимаю, эта синтаксическая ошибка была небольшой строкой в ​​​​функции (внутри DbOperation.php), которая никогда не вызывалась исходным файлом , он тоже его обнаруживает?

Crashie 01.05.2019 18:24

Синтаксические ошибки никогда не пройдут мимо синтаксического анализатора. Неважно, находится ли он в функции. Вы, вероятно, захотите привыкнуть использовать опцию -l PHP для быстрой проверки lint всякий раз, когда вы что-то обновляете. В редакторе я использую эту последовательность клавиш, которую я использую часто, даже не задумываясь об этом.

Dave 01.05.2019 18:27

@Dave Дэйв, эй, так как ты эксперт по php, я на удаленном сервере, и писать файлы php немного сложно, когда я постоянно загружаю обновленный файл .php через ssh, есть ли текстовый редактор, который я могу использовать, чтобы подключиться к моему серверу и обновлять материал в режиме реального времени?

Crashie 01.05.2019 18:30

Короткий ответ, не делайте этого. Устанавливайте все необходимое локально и разрабатывайте локально, развертывая на сервере только тогда, когда он протестирован и работает правильно. Для Linux стек LAMP дает вам все необходимое. Если вы действительно хотите узнать, как все это работает вместе, установите каждую часть вручную (PHP, Apache и MySQL или MariaDB).

Dave 01.05.2019 18:34

Если ответ решил вашу проблему, рассмотрите возможность принятия ответа. Вот как, затем вернитесь сюда и сделайте то же самое с галочкой, пока она не станет зеленой. Это информирует сообщество, решение было найдено. В противном случае другие могут подумать, что вопрос все еще открыт, и могут захотеть опубликовать (больше) ответов. Вы будете зарабатывать очки, а другим будет предложено помочь вам. Добро пожаловать в Стек!

Dave 01.05.2019 19:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
17
31
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ Дейва решил мою проблему, проверив имя файла в require_once('filename'), в котором отсутствовал ")"... ошибка новичка, я знаю.

ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);

поместите это в свой файл php, чтобы отобразить ошибки, чтобы узнать, в чем ваша проблема. Спасибо, Дэйв!

Ответ принят как подходящий

Ничто из того, что вы пробовали, не должно вызывать внезапной остановки работы require или require_once. Убедитесь, что у вас включены все отчеты об ошибках:

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL);

С включенным отчетом об ошибках вы можете обнаружить проблему с чем-то еще (например, с требуемым кодом).

Другие вопросы по теме