【问题标题】:Symfony2 500 response on shared hostingSymfony2 500 对共享主机的响应
【发布时间】:2012-12-02 17:38:06
【问题描述】:

我有一个正在运行的 Symfony2 应用程序在我的本地服务器上运行,我想将它上传到我的共享主机。当我尝试在共享主机上打开网站时,我收到 500 响应。

我执行以下步骤:

  1. 清除缓存(“php app/console cache:clear”和“php app/console cache:clear --env=prod”)
  2. 将 /app、/src、/vendor、/web 上传到共享主机
  3. 使 /logs 和 /cache 可写(以及所有子文件夹/文件)

当我打开“www.mydomain.com/app.php”时,我收到 500 响应。当我打开“www.mydomain.com/app_dev.php”时,Symfony 给出了(预期的和正确的)我不允许打开这个文件的消息。

/logs/prod.log 为空。

我无法清除共享主机服务器上的缓存,因为我没有 SHH 访问权限。我只能清除本地服务器上的缓存,然后上传文件。

我没有更改我的 /web/.htaccess 文件,它在里面:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

【问题讨论】:

  • 尝试删除阻止您从外部访问 config.php 的行,以查看您的配置是否正常。完成后不要忘记删除/恢复文件。
  • 我正在访问欢迎页面。只给出了一些“建议”:安装 intl,安装加速器,将 short_open_tag 设置为 off。
  • 如果你对 app_dev.php 做同样的事情并调用它呢?
  • 我收到 500 响应,但这次是消息:file_get_contents(F:\wamp\www\MySite\vendor\symfony\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views/ Profiler/toolbar_js.html.twig):无法打开流:在 mydomain.com/mm/vendor/twig/twig/lib/Twig/Loader/Filesystem.php 第 126 行中没有这样的文件或目录。所以它尝试加载我的 F: 驱动器中的文件,当然失败了。
  • 如果您手动清除应用程序/缓存文件夹 (rm -rf app/cache/*) 并重试怎么办?

标签: symfony shared-hosting


【解决方案1】:

问题似乎是命令php app/console cache:clear" and "php app/console cache:clear --env=prod 没有完全清除缓存文件夹。

如果运行该命令的用户没有删除 app/cache/ 中的文件/文件夹的权限,就会发生这种情况 手动删除此文件夹的内容可以解决问题(rm -rf app/cache/*)。

【讨论】:

  • 有趣的是,这也为我解决了同样的问题,谢谢。但是,您给出的命令示例对于像我这样的复制粘贴者来说有点担心(rm -rf /app/cache/* 应该是 rm -rf app/cache/*)
  • @JakeWorrell 这是一个错字。感谢您的评论!