Настройки php ini для отчетов об ошибках

Я запускаю свой сайт на VPS. Я могу создать 1 экземпляр для LAMP. Я хочу установить разные настройки для отчетов об ошибках на сервере разработки и рабочем сервере.

Есть ли способ определить две разные настройки для разработки и производства в одном файле php.ini?

я хочу установить

error_reporting(-1);

для сервера разработки и

error_reporting(0);

для производственного сервера.


person Ronak Patel    schedule 18.02.2014    source источник
comment
И как php узнает, что это сервер разработки или производства при чтении файла ini?   -  person poncha    schedule 18.02.2014
comment
Вот это я и пытаюсь понять. Я знаю, что есть способ сделать это. Но я не знаю как?   -  person Ronak Patel    schedule 18.02.2014
comment
Вы можете применить эту конфигурацию к сайту apache, а не к php.ini... Таким образом, у вас может быть два набора настроек (2 сайта) в apache, и вы в основном отключаете один, а другой - включаете   -  person poncha    schedule 18.02.2014
comment
мы можем создать две настройки apache в VPS?   -  person Ronak Patel    schedule 18.02.2014
comment
возможный дубликат Как управлять разными php.ini настройки в производстве и разработке?   -  person Amal Murali    schedule 18.02.2014
comment
VPS - это сервер.. Виртуальный частный, но, тем не менее, сервер;) А Apache позволяет использовать несколько сайтов.   -  person poncha    schedule 18.02.2014


Ответы (2)


У вас не может быть двух наборов конфигураций в одном и том же php.ini файле. Но у вас может быть несколько сайтов в Apache.

На каждом из этих сайтов вы можете настроить параметры, зависящие от среды.

Например, в prod.conf:

php_value error_reporting 0

И в dev.conf:

php_value error_reporing -1

Вы также можете добавить другие вещи, такие как определения display_errors и error_log. Затем вы включаете prod.conf сайт на рабочем сервере и dev.conf на сервере разработки.

person poncha    schedule 18.02.2014

Вы не можете сделать это непосредственно в php.ini. Есть несколько способов добиться желаемого:

  • Вы можете использовать настройки непосредственно в конфигурации виртуального хоста Apache, чтобы явно установить желаемые значения для этого виртуального хоста.

  • Вы можете использовать директивы в файле .htaccess, один для вашего живое приложение и одно для вашего приложения для разработчиков.

  • Вы можете использовать переменную среды, чтобы заставить ваше приложение установить правильные настройки. В конфигурации Apache или .htaccess установите для переменной среды, например «APP_MODE», значение «development» или «production». Затем код вашего приложения может найти эту переменную и соответствующим образом настроить отчетность. Например, if (getenv('APP_MODE') == 'development') { error_reporting(E_ALL); }

  • Вы можете использовать фреймворк, который сделает это за вас. Например, Zend Framework использует комбинацию переменной среды и файла ini.

person Alex Howansky    schedule 18.02.2014
comment
Когда я пытаюсь отредактировать файл .htaccess, у меня возникает внутренняя ошибка сервера. Я определил AllowOverride All в файле httpd.conf для моего каталога проекта. Что мне не хватает? - person Ronak Patel; 19.02.2014
comment
Возможно, синтаксическая ошибка или опечатка? Что именно вы вкладываете в файл? Возможно, ошибка прав? Убедитесь, что файл доступен для чтения пользователю, под которым работает Apache. - person Alex Howansky; 19.02.2014
comment
и разрешение файла .htaccess: 644 - person Ronak Patel; 19.02.2014
comment
.htaccess должен существовать на верхнем уровне сайта, на который вы хотите повлиять (т. е. document_root), и содержать php_value error_reporting 0 — или любое другое значение, которое вы хотите установить. - person Alex Howansky; 19.02.2014
comment
ЖУРНАЛ ОШИБОК говорит: Недопустимая команда 'php_flag', возможно, написана с ошибкой или определена модулем, не включенным в конфигурацию сервера. - person Ronak Patel; 19.02.2014