【发布时间】:2014-02-26 23:27:44
【问题描述】:
我在/usr/local/lib 文件夹中有全局 php.ini 文件。自定义 php.ini 文件位于 /home/petstail/public_html/ 文件夹中。
这就是我的 phpinfo() 的样子。
我仍在加载全局 php.ini 文件。 如何更改配置文件路径,并运行自定义 php.ini 文件。
谢谢。
【问题讨论】:
我在/usr/local/lib 文件夹中有全局 php.ini 文件。自定义 php.ini 文件位于 /home/petstail/public_html/ 文件夹中。
这就是我的 phpinfo() 的样子。
我仍在加载全局 php.ini 文件。 如何更改配置文件路径,并运行自定义 php.ini 文件。
谢谢。
【问题讨论】:
您可以通过.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>
【讨论】:
mod_php - 通常你会在 Apache httpd.conf 或 httpd-vhosts.conf 中设置它(使用 PHPIniDir)但是,主机上的可能性允许你这样做(除非您使用专用主机)几乎没有。为什么你需要定义一个自定义的 php.ini?您是否需要设置在运行时无法使用 ini_set 完成的变量?
ini_set('include_path', '/path/to/include/dir'); 设置包含路径本身,如果您可以确定您是在开发环境还是实时环境中运行,您可以设置与代码所在位置相关的包含路径在配置文件或类似文件中运行?
根据您的 php 版本,您应该参考 php 文档以查看是否启用了 INI 设置。
请看这里: http://www.php.net/manual/en/configuration.file.per-user.php
【讨论】:
.user.ini但是您可以更改的变量有限我会参考这个link
sendmail_path 不能从 .user.ini 文件中设置,因为它是 PHP_INI_SYSTEM 设置。换句话说:您不能在本地环境中为某些代理捕手(如 mailhog)切换邮件程序。