You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pleak面板安装OpenCart 4时遇open_basedir限制警告

解决Pleak面板安装OpenCart 4时的open_basedir与Twig加载器错误

问题说明

安装过程中触发以下错误:

Warning: is_dir(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/:/tmp:/var/tmp:/opt/alt/php74/usr/share/pear/:/dev/urandom:/usr/local/lib/php/:/usr/local/php74/lib/php/) in /home/:/public_html/system/storage/vendor/twig/twig/src/Loader/FilesystemLoader.php on line 91
Twig\Error\LoaderError: The "/" directory does not exist ("/"). in /home/vipgiy/domains/vipgiy.com/public_html/system/storage/vendor/twig/twig/src/Loader/FilesystemLoader.php on line 92

核心原因是OpenCart 4依赖的Twig加载器尝试访问系统根目录/,但Pleak面板的PHPopen_basedir规则限制了仅允许访问指定路径,根目录不在允许范围内,导致权限校验失败。

解决步骤

方法1:修改PHP的open_basedir配置(推荐)

  • 登录Pleak面板,进入对应网站的「PHP配置」页面
  • 在open_basedir配置项中,追加/到允许路径末尾,修改后的值示例:
    /home/:/tmp:/var/tmp:/opt/alt/php74/usr/share/pear/:/dev/urandom:/usr/local/lib/php/:/usr/local/php74/lib/php/:/
    
  • 保存配置,等待PHP服务自动重启(若未自动重启,手动触发面板的PHP重启功能)

方法2:临时修改Twig加载器代码(应急方案)

若无法修改面板的PHP配置,可临时调整Twig的检查逻辑:

  • 打开文件/home/vipgiy/domains/vipgiy.com/public_html/system/storage/vendor/twig/twig/src/Loader/FilesystemLoader.php
  • 定位到第91-92行的is_dir判断代码,将检查目标从/替换为网站根目录:
    // 原代码
    if (!is_dir($path)) {
        throw new LoaderError(sprintf('The "%s" directory does not exist ("%s").', $path, $this->currentPath));
    }
    // 修改为
    $siteRoot = $_SERVER['DOCUMENT_ROOT'];
    if (!is_dir($siteRoot)) {
        throw new LoaderError(sprintf('The "%s" directory does not exist ("%s").', $siteRoot, $this->currentPath));
    }
    
  • 注意:此修改会被Twig版本更新覆盖,仅作为临时应急手段

验证修复

重新运行OpenCart 4安装程序,确认错误不再出现。安装完成后,建议检查网站目录权限(目录设为755,文件设为644),避免后续权限问题。

内容的提问来源于stack exchange,提问作者SHIDHIN TS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:18:12