我在共享主机中的symfony项目上有一些错误


I have some error on symfony project in shared host

我是Symfony的初学者。我使用Symfony构建了一个非常简单的项目,该项目在本地主机中正常工作。我上传项目文件夹的所有内容,期望"web"在我的共享主机的根目录中,并将"web"文件夹上传到"public_html"文件夹。将MySQL正确导入到我在主机中创建的数据库中,并更改"参数.yml"并更改数据库连接详细信息。将 '/var/logs/' 和 '/var/cache' 的 chmod 更改为 777。但是当访问网站时出现内部错误。

错误详情 :

[24-四月-2016 05:02:09 UTC]PHP 致命错误:未捕获的异常"运行时异常",消息为"会话存储无法创建目录"D:''eventcalendar''app/.。/var/sessions/prod"' in/home/emusummit/var/cache/prod/classes.php:292堆栈跟踪:
#0/home/emusummit/var/cache/prod/appProdProjectContainer.php(1898): Symfony''Component''HttpFoundation''Session''Storage''Handler''NativeFileSessionHandler->__construct('D:''''eventcalenda...')
#1/home/emusummit/var/bootstrap.php.cache(2107): appProdProjectContainer->getSession_HandlerService()
#2/home/emusummit/var/cache/prod/appProdProjectContainer.php(1937): Symfony''Component''DependencyInjection''Container->get('session.handler')
#3/home/emusummit/var/bootstrap.php.cache(2107): appProdProjectContainer->getSession_Storage_NativeService()
#4/home/emusummit/var/cache/prod/appProdProjectContainer.php(1885): Symfony''Component''DependencyInjection''Container->get('session.storage...')
#5/home/emusummit/var/bootstrap.php.cache(2107): appProdProjectContainer->getSessionService()
#6/home/emusummit/var/cache/prod/c in/home/emusummit/vendor/twig/twig/lib/Twig/Loader/Filesystem.php 在第 94 行

问题出在哪里?请帮助我。谢谢

您可能没有清除缓存。

尝试通过运行以下命令清除缓存:

php bin/console cache:clear --env=prod

或者,如果您使用开发环境(它不适合生产服务器),则应使用:

php bin/console cache:clear

如果您无法访问 shell,您可以通过从 var/cache 中删除具有环境名称的整个文件夹来手动清除缓存。对于prod环境,您应该删除var/cache/prod文件夹。

您需要

通过 act 包向会话目录上www-data的 Web 服务器用户添加 RWX 权限(如果您没有通过

$ sudo apt-get install acl

如果你有它,只需输入

$ sudo setfacl -R -m u:www-data:rX project-symfony/var/sessions
$ sudo setfacl -dR -m u:www-data:rX project-symfony/var/sessions

第二行是向该目录下的文件授予 RWX 权限最佳做法是向项目本身授予 rx 权限rwxvar/cache var/logsvar/sessionsrwx 到它的衍生物(分别像我上面所做的那样)。

之后,您需要清除缓存[如果您处于开发模式,请删除--env=prod],然后您就可以开始了!

php bin/console cache:clear --env=prod