如何为每个虚拟主机创建自定义php.ini文件?

若昂

我安装的EasyPHP WAMP仅用于本地开发(我没有托管任何网站)。

有没有办法为单独的虚拟主机设置自定义php设置?

当前并且是现成的,php.ini文件是从以下位置加载的:C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\binaries\php\php_runningversion\php.ini如果我可以将自定义php.ini文件放入虚拟主机目录中以覆盖原始设置中的设置,那将是很好的。php.ini这样,我可以更好地模拟一个每个站点的生产服务器环境。

我已经看到了在线托管帐户的这项工作。但是我不知道如何在我的机器上完成这项工作。

阿尔瓦罗·冈萨雷斯(Alvaro Gonzalez)

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

相关:了解PHP如何在服务器上运行(CGI或fastCGI或mod_php)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章