Есть несколько уровней для включения вывода ошибок в PHP: php.ini, htaccess или файл php. Разные уровни дают разные преимущества и проблемы.
Чтобы php начал выводить ошибки, ему необходимо установить значение display_errors = On и задать уровень серьёзности выводимых ошибок через error_reporting. Директива error_reporting может принимать значения (E_ALL, E_ERROR, E_WARNING, E_PARSE и т.п.). Но лучше всего error_reporting задавать как E_ALL, чтобы видеть все недочёты своего кода.
Вывод ошибок через PHP файл
Самый приемлемый способ - это задание директив внутри php файла:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
Добавьте эти строки до кода, который необходимо отладить. Иначе ошибки не выведутся.
Этот способ вывода самый приемлемый, потому что на него можно поставить права доступа. К примеру, ставим эти две строчки внутри проверки административных прав:
if( *проверка прав администратора* ){
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);}
Тогда вывод ошибок будет виден только администратору. Это полезно на рабочем проекте, ведь посетителям сайта не нужно видеть отладочную информацию.
Если нужно посмотреть ошибки от простого пользователя, то проверку прав администратора можно заменить на проверку какого-нибудь параметра в адресе. К примеру, if( $_GET['m']=='y' ). И запрашивать страницу с этим параметром '?m=y' для вывода отладки.
Вывод ошибок через файл .htaccess
Другим вариантом включения вывода ошибок php является задание значений директив в файле .htaccess:
<IfModule mod_php7.c>
php_value display_errors 1
php_value error_reporting E_ALL</IfModule>
Обратите внимание, что php_value задаётся в блоке <IfModule mod_php7.c>. Если у вас на сервере стоит php 5-ой версии, то стоит заменить "mod_php7" на "mod_php5".
При этом ошибки сайта будут видны всем посетителям, в отличии от предыдущего способа. В добавок, если ошибиться с файлом .htaccess, то вместо всех страниц сайта будет 500-ые ошибки сервера.
Вывод ошибок в php.ini
Вывод ошибок в php можно включить путём задания директив в файле php.ini:
error_reporting = E_ALL
display_errors = On
Эти строки уже есть в файле php.ini, но закомментированы. Попробуйте сделать поиск по названию.
После внесения изменений необходимо перезапустить Apache. В этом и кроется основное неудобство. Потому что отладка может производиться на работающем проекте.
Как и со случаем .htaccess, ошибки сайта увидят все, включая простых пользователей.