Symfony5应用部署至cpanel共享主机访问根域名出现空白页求助
问题原因
- 核心错误是
index.php中引用项目核心文件的路径配置错误:
你当前的目录结构中,public_html和symfony文件夹同处于服务器根目录/下,public_html内的index.php的__DIR__值为/public_html,dirname(__DIR__)得到的是服务器根目录/,原代码中额外拼接了/../会定位到根目录的上级不存在的路径,导致无法加载vendor/autoload.php和.env文件,PHP触发致命错误但默认关闭了错误显示,所以呈现空白页。
修复步骤
- 修正
public_html/index.php中的路径配置,将两处路径修改为正确的地址:
<?php use App\Kernel; use Symfony\Component\Dotenv\Dotenv; use Symfony\Component\ErrorHandler\Debug; use Symfony\Component\HttpFoundation\Request; // 修正后的autoload加载路径 require dirname(__DIR__).'/symfony/vendor/autoload.php'; // 修正后的env加载路径 (new Dotenv())->bootEnv(dirname(__DIR__).'/symfony/.env'); if ($_SERVER['APP_DEBUG']) { umask(0000); Debug::enable(); } $kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); $request = Request::createFromGlobals(); $response = $kernel->handle($request); $response->send(); $kernel->terminate($request, $response);
- 确认
symfony目录的权限配置:cpanel环境下运行PHP的用户一般为nobody或者对应站点的所有者用户,需要保证symfony目录下的var文件夹权限为755,所有者和public_html保持一致,避免缓存、日志写入失败导致的报错。 - 若修改后仍有空白页,可临时在
index.php顶部加入错误显示代码排查具体问题,问题解决后记得删除:
ini_set('display_errors', 1); error_reporting(E_ALL);
额外注意事项
- 不要忘记将
symfony/public目录下的.htaccess文件一并移动到public_html目录下,否则Symfony的路由重写规则不生效,非首页路径会出现404错误。 - 若使用的是Symfony自带的Rewrite规则,确认
.htaccess中的路径配置不需要额外前缀即可正常运行。
内容的提问来源于stack exchange,提问作者t013463
相关产品推荐
相关产品推荐

