2014-02-18 76 views
0

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

有什么办法可以在同一个php.ini文件中为开发和生产定义两个不同的设置吗?

我想设置

error_reporting(-1); 

发展服务器,

error_reporting(0); 

生产服务器。

+1

当读取ini文件时,php如何知道它是开发或生产服务器? – poncha

+0

这就是我想要弄明白的。我知道有一种方法可以做到。但是,我不知道如何? –

+0

您可以在** apache **网站上应用该配置而不是在php.ini中......这样,您可以在apache中拥有两组配置(2个网站),并且您基本上可以关闭另一个 - 我们可以创建 – poncha

回答

0

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

在每个站点中,您都可以配置环境相关设置。

例如,在prod.conf

php_value error_reporting 0 

而且,在dev.conf

php_value error_reporing -1 

您也可以扔在其他的东西一样一样,display_errorserror_log定义。 然后,您开启生产服务器上的prod.conf站点,开发一个dev.conf

0

你不能直接在php.ini中执行此操作。还有,你可以完成你想要的一些方法:

  • 你可以直接使用设置在Apache虚拟主机的conf针对该虚拟主机明确设置所需的值。

  • 您可以在.htaccess文件中使用指令,一个用于您的实时应用程序,另一个用于您的开发应用程序。

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

  • 你可以使用一个框架来为你做这件事。例如,Zend Framework使用环境变量和ini文件的组合。

+0

当我试图编辑.htaccess文件时,它给我内部服务器错误。我在httpd.conf文件中为我的项目目录定义了AllowOverride All。我错过了什么? –

+0

也许是语法错误或拼写错误?你到底在做什么?也许是一个权限错误?确保该文件可以被运行Apache的用户读取。 –

+0

'<目录“/家/网站/的public_html”> 选项所有多视图 的AllowOverride所有 订购允许,拒绝 从' –