如何让cPanel的MultiPHP INI Editor配置自动应用到所有子文件夹?
核心原因
cPanel的MultiPHP INI Editor在域名级别修改配置时,只会在public_html目录生成/修改php.ini文件。而PHP默认只会加载当前脚本所在目录及上级目录的php.ini,若子文件夹没有自身的php.ini,就会 fallback 到系统默认的/opt/cpanel/ea-php81/root/etc/php.ini,这就是你遇到的配置不生效问题。
可行解决方案
1. 批量复制主目录php.ini到子文件夹
如果子文件夹数量不多,可手动复制public_html/php.ini到需要的子文件夹;数量多的话,通过SSH执行批量命令:
find /home/your_username/public_html -type d -exec cp /home/your_username/public_html/php.ini {} \;
替换your_username为你的cPanel用户名,该命令会将主目录的php.ini复制到public_html下所有子目录。
2. 使用.user.ini文件(推荐)
PHP 5.3及以上版本支持.user.ini,在public_html目录创建该文件并写入:
allow_url_fopen = On
.user.ini会被PHP递归应用到当前目录及所有子目录,无需逐个配置子文件夹。注意:
- 配置生效受
user_ini.cache_ttl影响,默认5分钟后自动生效,若需立即生效,可通过cPanel的MultiPHP Manager重启对应PHP版本。 allow_url_fopen属于PHP_INI_ALL级别的配置,支持通过.user.ini修改。
3. 修改系统级php.ini(需WHM权限)
若你拥有WHM权限,可直接编辑对应PHP版本的系统配置文件(比如你这里的/opt/cpanel/ea-php81/root/etc/php.ini),设置allow_url_fopen = On。但这是全局设置,会影响服务器上所有使用该PHP版本的站点,仅需全局生效时使用。
4. 利用PHP Selector(部分主机提供)
如果你的主机是CloudLinux环境,cPanel里会有PHP Selector工具,修改配置时选择「Apply to all subdirectories」选项,即可自动将配置同步到所有子文件夹,这是最便捷的方式(若主机支持)。
总结
cPanel原生的MultiPHP INI Editor无法自动将配置同步到所有子文件夹,需通过以下方式处理:
- 优先使用
.user.ini,一次配置覆盖所有子目录; - 子文件夹数量少可手动复制php.ini;
- 仅需全局生效时,再考虑修改系统级php.ini。
内容的提问来源于stack exchange,提问作者Tristan

