В настоящее время я запускаю сайт на php 5.4, до этого я запускал свой сайт в 5.3.8. К сожалению, php 5.4 объединяет E_ALL
и E_STRICT
, что означает, что мои предыдущие настройки error_reporting
не работают. Моим предыдущим значением было E_ALL & ~E_NOTICE & ~E_STRICT
Должен ли я просто включать значения по одному за раз?
У меня слишком много ошибок, и файлы содержат слишком много кода для исправления.
Как отмечают комментаторы, лучшим вариантом является исправление ошибок, но с ограниченным временем или знаниями это не всегда возможно. В вашем изменении php.ini
error_reporting = E_ALL
в
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
Если у вас нет доступа к php.ini, вы можете поместить его в файл .htaccess:
php_value error_reporting 30711
Это значение E_ALL (32767) и удаление значений E_STRICT (2048) и E_NOTICE (8).
Если у вас нет доступа к файлу .htaccess или он не включен, вам, вероятно, нужно будет помещать это в начало раздела PHP любого скрипта, который загружается из вызова браузера:
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
Один из них должен помочь вам использовать программное обеспечение. Замечания и строгий материал являются индикаторами проблем или потенциальных проблем, хотя вы можете обнаружить, что некоторые из кода работают неправильно в PHP 5.4.
Надеюсь это поможет.
.htaccess php_value работает, только если вы используете PHP Server API в качестве модуля веб-сервера Apache. Используйте синтаксис IfModule:
# PHP 5, Apache 1 and 2. <IfModule mod_php5.c> php_value error_reporting 30711 </IfModule>
Если вы используете PHP Server API CGI / FastCGI, используйте
ini_set('error_reporting', 30711);
или
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
в вашем PHP-коде или в файлах конфигурации PHP .user.ini | Изменение php.ini:
error_reporting = E_ALL & ~E_STRICT & ~E_NOTICE
на вашем виртуальном хосте, на уровне сервера.
Это сработало для меня, когда я установил error_reporting в двух местах одновременно
где-то в PHP-коде
ini_set('error_reporting', 30711);
и в файле .htaccess
php_value error_reporting 30711
Если вам также необходимо отключить E_DEPRACATED, используйте:
php_value error_reporting 22527
В моем случае CMS Made Simple жаловался: «E_STRICT включен в error_reporting», а также «E_DEPRECATED включен». Добавление этой строки в .htaccess устраняет обе неверные конфигурации.
Если у вас голова, вам может потребоваться перезапустить LAMP, Apache или все, что вы используете, чтобы это повлияло. Некоторое время на этом месте укладывали наши мозги, казалось, не влияли, пока службы не перезапустились, по-видимому, потому, что сайт был кешированием.