【问题标题】:Symfony 5 deployment issues (showing empty page)Symfony 5 部署问题(显示空白页面)
【发布时间】:2020-10-27 17:47:05
【问题描述】:

这是我在 Symfony 5 中的第一次部署,由于我的网站显示空白页面,我一直在努力部署几天。 我正在使用 Infinity 免费虚拟主机:

  • PHP 版本 7.3.6
  • 阿帕奇
  • 我的网站没有数据库。

所以在我开始使用 FileZilla 上传文件之前,我运行以下命令:

SET APP_ENV=prod
composer install --no-dev --optimize-autoloader
composer dump-autoload --optimize --no-dev --classmap-authoritative

我的文件夹结构是这样的

  • htdocs
    • \css
    • \下载
    • \图片
    • \脚本
    • .env.local
    • .htaccess
    • index.php
    • \symfony
      • \bin
      • \配置
      • \src
      • \模板
      • \翻译
      • \供应商
      • \var
      • composer.json

并用新路径修改 index.php:

require dirname(__DIR__).'symfony/vendor/autoload.php';

问题是页面显示完全空白(甚至没有错误)。我的错误是什么? 我一直在遵循this tutorial 的说明,使用 bin、config、src、模板和供应商创建一个“symfony”文件夹,并将我的“public”文件夹内容复制到 /htdocs 文件夹。 托管服务提供商不允许我在服务器根文件夹中上传内容。 提前致谢。

【问题讨论】:

  • 您可能不应该以SET APP_ENV=prod 开头,如果您想查看有用的错误消息,请使用dev
  • 请查看您服务器的错误日志以获取更多信息。如果您需要更多帮助,请通过编辑将该日志中的错误消息添加到您的问题中

标签: php apache symfony deployment symfony5


【解决方案1】:
  • 您的要求缺少/
require dirname(__DIR__).'/symfony/vendor/autoload.php';
  • 也许使用开发环境来调试您的应用程序。

  • 你有一个.env.local:你确定有必要并且正确阅读吗? (symfony/dotenv 默认是 devDependency)

而且我认为将 symfony 文件夹和 index.php 放在同一目录中并不是一个好习惯,因为它会暴露您的源代码和敏感数据。也许使用 htaccess 只公开 symfony 的公共目录。

【讨论】:

  • 谢谢阿德里安。我将环境更改为 dev,然后我能够看到 open_basedir 存在错误(我的托管服务提供商已禁用它)。由于我使用的是免费的虚拟主机并且我无法更改该配置,因此我将我的网站移至另一个免费主机 (AwardSpace)。您提到的那个文件 .env.local 不是必需的,所以我删除了它,启用了 prod 环境,现在一切正常。我还在 require 路径中添加了“/”,并以不同的方式创建了文件夹结构,因此 symfony 文件夹不再位于 index.php 文件的同一目录中
  • @Mariela 请您向我解释一下您在服务器中的项目的新结构以及 .htaccess 的配置(如果您配置了一些东西),我有几周的时间,但我无法让我的项目工作。 ???
  • 您好,如果您使用默认的 symfony 结构,请查看 Web 服务器配置文档:symfony.com/doc/current/setup/web_server_configuration.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 2021-03-16
相关资源
最近更新 更多