Aru*_* GP 6 php configuration apache-2.2
我的 phpinfo.php 没有显示额外的 PHP 配置文件的额外文件夹。我在 CentOS v6.3 32 位上运行 Apache v2.4.4(使用 PHP DSO)和 PHP v5.4.14。Apache 和 PHP 安装是从源代码编译的。
我没有使用--with-config-file-scan-dir=PATHPHP的配置选项。(并且不会使用,因为我将需要多个文件夹)。
环境变量PHPRC和 Apache 指令PHPIniDir与主要的 PHP 文件相关,这让我可以使用环境变量PHP_INI_SCAN_DIR。以下是我所做的步骤:
PHP_INI_SCAN_DIR作为操作系统环境变量需要在 Apache 启动之前设置。所以我将以下条目添加到我的/etc/profile.d/php.sh文件中。
PHP_INI_SCAN_DIR="/usr/local/lib/php/custom" 导出 PHP_INI_SCAN_DIR
然后重新启动了系统。
现在命令env | grep PHP,php -i | grep INI并php --ini给我以下输出。
=> # env | grep PHP
PHP_INI_SCAN_DIR=/usr/local/lib/php/custom
=> # php -i | grep INI
PHP_INI_SCAN_DIR => /usr/local/lib/php/custom _SERVER["PHP_INI_SCAN_DIR"] => /usr/local/lib/php/custom
=> # php --ini
配置文件(php.ini)路径:/usr/local/lib 加载的配置文件:/usr/local/lib/php.ini 在以下位置扫描其他 .ini 文件:/usr/local/lib/php/custom 解析的其他 .ini 文件:(无)
第一次尝试
====================
在 apache2/bin/envvars 和 apache2/bin/envvars-std 文件中添加了以下条目。
(对 envvars 和 envvars-std 文件有什么区别有什么意见吗?)
PHP_INI_SCAN_DIR="/usr/local/lib/php/custom" 导出 PHP_INI_SCAN_DIR
重新启动 Apache 服务。
但是Scan this dir for additional .ini files来自phpinfo.php文件的值显示为空。
第二次尝试
====================
所以我从 envvars 和 envvars-std 中删除了条目。我默认加载了模块mod_env。我在httpd.conf 中添加了以下内容。
SetEnv PHP_INI_SCAN_DIR "/usr/local/lib/php/custom"
重新启动 Apache 服务。来自phpinfo.php文件的
值仍然显示为空。Scan this dir for additional .ini files
第三次尝试
====================
同样,我从httpd.conf 中删除了条目。VirtualHost在httpd-vhosts.conf中将同一行添加到 my 的 Directory 部分。
SetEnv PHP_INI_SCAN_DIR "/usr/local/lib/php/custom"
重新启动 Apache 服务。来自phpinfo.php文件的
值仍然显示为空。Scan this dir for additional .ini files
回答您的一些想法:
是的,我的phpinfo.php文件仅由phpinfo(). 它不是静态文件。
是的,浏览器缓存已被清除。我还尝试了其他浏览器。
最后
那么,谁能告诉我为什么我的 phpinfo 文件没有显示额外的 PHP 配置文件的额外文件夹?
您必须使用该环境变量集启动 apache。设置该变量/etc/profile.d/php.sh仅将其设置为 PHP 可执行文件本身,mod_php5 不使用该变量。
我刚刚经历了这个繁琐的过程。使用 SetEnv 设置变量也不起作用,因为它是在加载 mod_php5 后定义的。
在 CentOS 6.5 中,我发现编辑/etc/sysconfig/httpd允许您为 apache 进程本身设置和导出其他环境变量。所以尝试将其添加到那里:
export PHP_INI_SCAN_DIR="/usr/local/lib/php/custom"
| 归档时间: |
|
| 查看次数: |
2944 次 |
| 最近记录: |