Plesk站点运行Imagick报open_basedir路径限制错误如何解决
问题原因说明
该报错和文件系统权限无关,属于PHP的open_basedir路径访问限制触发的拦截。两个站点共用全局php.ini仍出现配置差异,是因为Plesk支持站点级别的PHP配置覆盖,优先级高于全局php.ini,你需要检查以下配置项:
需排查调整的配置
检查站点专属open_basedir配置
登录Plesk面板,进入报错站点的管理页面,依次点击「网站与域名」→ 找到对应站点 → 点击「PHP设置」,在页面中找到open_basedir配置项。
Windows环境下多个允许路径用分号;分隔,你需要将两类路径添加到该配置中:ttt.jpg文件所在目录的绝对路径- Imagick运行所需的临时目录,默认是
C:\Windows\Temp,也可自定义到站点根目录下的目录降低安全风险
修改完成后点击保存,Plesk会自动重载PHP配置,若未立即生效可重启站点对应的IIS应用池。
修正代码路径写法
不要用相对路径调用文件,改用绝对路径避免不同站点的工作目录差异导致路径解析错误,代码示例:$img = new Imagick(__DIR__ . '/ttt.jpg'); $quality = $img->getImageCompressionQuality(); echo $quality;主动指定Imagick临时目录
也可以在代码开头直接指定Imagick的临时目录到站点允许的路径内,无需修改系统级配置:// 提前在站点根目录创建tmp文件夹并赋予读写权限 putenv('MAGICK_TEMPORARY_PATH=' . __DIR__ . '/tmp'); $img = new Imagick(__DIR__ . '/ttt.jpg'); $quality = $img->getImageCompressionQuality(); echo $quality;
内容的提问来源于stack exchange,提问作者user17027702
相关产品推荐
相关产品推荐

