我安装的EasyPHP WAMP仅用于本地开发(我没有托管任何网站)。
有没有办法为单独的虚拟主机设置自定义php设置?
当前并且是现成的,php.ini
文件是从以下位置加载的:C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\binaries\php\php_runningversion\php.ini
如果我可以将自定义php.ini
文件放入虚拟主机目录中以覆盖原始设置中的设置,那将是很好的。php.ini
这样,我可以更好地模拟一个每个站点的生产服务器环境。
我已经看到了在线托管帐户的这项工作。但是我不知道如何在我的机器上完成这项工作。
php.ini
对于基于CGI / FastCGI的PHP安装,使用自定义文件非常简单,但是当将PHP作为Apache模块(mod_php)运行时,这是不可行的,因为整个服务器都运行一个PHP解释器实例。
我的建议:
从PHP本身进行尽可能多的设置:
ini_set('memory_limit', '16M');
date_default_timezone_set('Europe/Madrid')
...
换句话说,可以在运行时更改的指令。
从每个目录的Apache设置文件(又名.htaccess
)中设置其余内容:
php_flag short_open_tag off
php_value post_max_size 50M
php_value upload_max_filesize 50M
即,在脚本开始运行之前需要定义的设置
请查看运行时配置以获取更多详细信息。
有时,您实际上在开发和生产中需要不同的设置。有无数种使用PHP代码解决此问题的方法(从从$_SERVER['HTTP_HOST']
变量创建布尔常量到仅config.php
包含具有不同值的文件),但使用起来比较麻烦.htaccess
。我通常使用<IfDefine>
指令:
<IfDefine DEV-BOX>
#
# Local server directives
#
SetEnv DEVELOPMENT "1"
php_flag display_startup_errors on
php_flag display_errors on
php_flag log_errors off
#php_value error_log ...
</IfDefine>
<IfDefine !DEV-BOX>
#
# Internet server directives
#
php_flag display_startup_errors off
php_flag display_errors off
php_flag log_errors on
php_value error_log "/home/foo/log/php-error.log"
</IfDefine>
...在哪里DEV-BOX
传递给本地Apache命令行的字符串:
C:\Apache24\bin\httpd.exe -D DEV-BOX
如果您将Apache作为服务运行,则-D DEV-BOX
可以在Windows注册表中添加该位,例如:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Apache2.4\Parameters\ConfigArgs
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句