Ubuntu下Plesk环境php.ini修改后不生效问题求助
解决Plesk管理下PHP open_basedir修改不生效的问题
可能的原因
- Plesk会在虚拟主机级别单独配置PHP参数,优先级高于全局
php.ini,你的修改被面板的域名专属配置覆盖 - PHP-FPM池的专属配置文件中定义了
open_basedir,直接覆盖全局设置 - 网站目录下的
.htaccess或user.ini文件存在自定义open_basedir配置
解决步骤
检查并修改Plesk面板的域名PHP设置
- 登录Plesk后台,找到
skipbinz.com.au对应的域名管理页,进入「PHP设置」 - 查找
open_basedir选项,若显示为自定义值,直接修改为/var/www/vhosts/skipbinz.com.au/httpdocs/uploads:/tmp/(保留/tmp避免功能异常),或选择「使用默认值」后保存 - 保存后Plesk会自动同步配置到对应服务
- 登录Plesk后台,找到
检查PHP-FPM池配置文件
- 打开对应域名的FPM配置文件:
nano /opt/plesk/php/8.2/etc/php-fpm.d/skipbinz.com.au.conf - 查找是否存在
php_admin_value[open_basedir]或php_value[open_basedir]条目,若有则修改为目标路径,或注释掉(添加;前缀) - 执行命令重启PHP-FPM:
systemctl restart plesk-php82-fpm
- 打开对应域名的FPM配置文件:
排查网站本地配置文件
- 进入网站根目录:
cd /var/www/vhosts/skipbinz.com.au/httpdocs - 检查
.htaccess文件:若存在php_value open_basedir ...行,删除或修改为目标路径 - 检查
user.ini文件:若存在open_basedir = ...配置,调整为正确路径或删除该行 - 修改后无需重启服务,PHP会自动读取这些本地配置
- 进入网站根目录:
强制刷新Plesk配置并重启服务
- 执行Plesk配置重读命令:
plesk bin php_handler --reread - 重启Apache服务:
systemctl restart apache2(Debian/Ubuntu)或systemctl restart httpd(CentOS/RHEL) - 再次访问
phpinfo()页面,确认open_basedir值是否更新
- 执行Plesk配置重读命令:
内容的提问来源于stack exchange,提问作者Daniel Torridon
相关产品推荐
相关产品推荐

