【问题标题】:custom php.ini for domain域的自定义 php.ini
【发布时间】:2014-02-26 23:27:44
【问题描述】:

我在/usr/local/lib 文件夹中有全局 php.ini 文件。自定义 php.ini 文件位于 /home/petstail/public_html/ 文件夹中。

这就是我的 phpinfo() 的样子。

我仍在加载全局 php.ini 文件。 如何更改配置文件路径,并运行自定义 php.ini 文件。

谢谢。

【问题讨论】:

    标签: php apache php-ini


    【解决方案1】:

    您可以通过.htaccess 设置环境变量(如果 Apache 正在运行 mod_php)来做到这一点:

    SetEnv PHPRC /home/petstail/public_html/php.ini

    但是,您的 php.ini 文件不应位于文档根目录中(可公开访问)...至少将其存储在受另一个 .htaccess 定义 @ 保护的目录中987654324@.

    或者您可以使用以下命令拒绝访问php.ini。

    <FilesMatch "php.ini">
        deny from all
        allow from 127.0.0.1
    <FilesMatch>
    

    【讨论】:

    • 不过,它正在加载全局 php.ini
    • Apache 可能没有运行 mod_php - 通常你会在 Apache httpd.conf 或 httpd-vhosts.conf 中设置它(使用 PHPIniDir)但是,主机上的可能性允许你这样做(除非您使用专用主机)几乎没有。为什么你需要定义一个自定义的 php.ini?您是否需要设置在运行时无法使用 ini_set 完成的变量?
    • 我已经为网站本身定义了 include_path。我在同一台服务器上有生产和开发网站。我不能使用彼此的包含路径。这就是原因。
    • 是的 - 但是您可以通过 ini_set('include_path', '/path/to/include/dir'); 设置包含路径本身,如果您可以确定您是在开发环境还是实时环境中运行,您可以设置与代码所在位置相关的包含路径在配置文件或类似文件中运行?
    • 我没有尝试过。需要先检查。谢谢。
    【解决方案2】:

    根据您的 php 版本,您应该参考 php 文档以查看是否启用了 INI 设置。

    请看这里: http://www.php.net/manual/en/configuration.file.per-user.php

    【讨论】:

    • 我使用的是 php 5.4.25
    • 因为他们已经更改了外部ini文件.user.ini但是您可以更改的变量有限我会参考这个link
    • 仅供参考 sendmail_path 不能从 .user.ini 文件中设置,因为它是 PHP_INI_SYSTEM 设置。换句话说:您不能在本地环境中为某些代理捕手(如 mailhog)切换邮件程序。
    猜你喜欢
    • 2014-07-17
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 2011-10-06
    • 1970-01-01
    相关资源
    最近更新 更多