有没有办法读取模块的配置 ini 文件?
例如,我安装了 php-eaccelerator ( http://eaccelerator.net ) 并将eaccelerator.ini
文件放入/etc/php.d
. 我的 PHP 安装不会读取此.ini
文件,因为--with-config-file-scan-dir
编译 PHP 时未使用该选项。有没有办法在某处手动指定ini文件的路径,以便PHP可以读取模块的设置?
有没有办法读取模块的配置 ini 文件?
例如,我安装了 php-eaccelerator ( http://eaccelerator.net ) 并将eaccelerator.ini
文件放入/etc/php.d
. 我的 PHP 安装不会读取此.ini
文件,因为--with-config-file-scan-dir
编译 PHP 时未使用该选项。有没有办法在某处手动指定ini文件的路径,以便PHP可以读取模块的设置?
这只是一个疯狂的猜测,但尝试将 eaccelerator.ini 中的所有指令添加到 php.ini。首先创建一个<?php phpinfo(); ?>
并检查它的位置。
例如,试试这个:
[eAccelerator]
extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
您可以做的另一件事是使用 ini_set() 在运行时设置所有设置。我不确定这是否有效或效果如何。:) 我不熟悉 eAccelerator 肯定知道。
这种情况下的标准方法是将相关的 .ini 行复制到 php.ini 文件的底部。php.ini 文件本身没有“包含“file.ini””功能。
您也不能在运行时执行此操作,因为此时扩展已被初始化。
如果使用 Apache 和 mod-php,您可以使用.htaccess 文件在本地配置/覆盖一些 php 设置。您的网络服务器必须在主配置文件中适当地“AlloweOverride”,以允许您在本地覆盖这些设置。根据我的经验,许多托管公司会让您通过 htaccess 设置 php 设置。
(感谢评论者指出这只适用于 mod-php)