用于错误报告的php ini设置

用于错误报告的php ini设置,php,php-ini,Php,Php Ini,我在VPS上运行我的网站。我可以为LAMP创建一个实例。我想为开发服务器和生产服务器上的错误报告设置不同的设置 有没有办法在同一个php.ini文件中为开发和生产定义两种不同的设置 我想把它设置好 error_reporting(-1); 用于开发服务器,以及 error_reporting(0); 对于生产服务器。在同一个php.ini文件中不能有两组配置。 但是您可以在Apache中拥有多个站点 在这些站点中,您可以配置与环境相关的设置 例如,在prod.conf中: php_value

我在VPS上运行我的网站。我可以为LAMP创建一个实例。我想为开发服务器和生产服务器上的错误报告设置不同的设置

有没有办法在同一个php.ini文件中为开发和生产定义两种不同的设置

我想把它设置好

error_reporting(-1);
用于开发服务器,以及

error_reporting(0);

对于生产服务器。

在同一个
php.ini
文件中不能有两组配置。 但是您可以在
Apache
中拥有多个站点

在这些站点中,您可以配置与环境相关的设置

例如,在
prod.conf
中:

php_value error_reporting 0
php_value error_reporing -1
dev.conf
中:

php_value error_reporting 0
php_value error_reporing -1
您还可以加入其他内容,如
display\u errors
error\u log
这样的定义。
然后,在生产服务器上打开
prod.conf
站点,在开发服务器上打开
dev.conf

您不能在php.ini中直接执行此操作。有几种方法可以实现您的目标:

  • 您可以直接使用Apache vhost conf中的设置来显式设置该vhost的所需值

  • 您可以在文件中使用指令,一个用于live应用程序,另一个用于dev应用程序

  • 您可以使用环境变量触发应用程序设置正确的设置。在Apache配置或.htaccess中,将环境变量“APP_MODE”设置为“development”或“production”。然后,应用程序代码可以查找该var并相应地设置报告。例如,
    if(getenv('APP_MODE')='development'){error_reporting(E_ALL)}

  • 您可以使用一个框架来实现这一点。例如,Zend框架使用环境变量和ini文件的组合


在读取ini文件时,php如何知道它是开发服务器还是生产服务器?这就是我想弄明白的。我知道有办法做到这一点。但是,我不知道怎么做?您可以在apache站点而不是php.ini上应用该配置。。。这样,您可以在apache中有两组配置(2个站点),基本上一个关闭,另一个关闭-一旦我们在VPS中创建两个apache设置?可能与我试图编辑.htaccess文件时的情况相同,这会给我内部服务器错误。我已经在httpd.conf文件中为我的项目目录定义了AllowOverride All。我遗漏了什么?可能是语法错误或拼写错误?你到底在档案里放什么?也许是权限错误?确保运行Apache的用户可以读取该文件。
选项所有多视图允许覆盖所有订单允许、拒绝允许和.htaccess文件的权限为:644.htaccess应该存在于您想要影响的站点的顶层(即文档的根目录)并包含
php\u value error\u reporting 0
——或任何您想要设置的值。