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

时间:2016-04-24 05:14:39

标签: php symfony

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

错误详情:

[24-Apr-2016 05:02:09 UTC] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Session Storage was not able to create directory "D:\eventcalendar\app/../var/sessions/prod"' in /home/emusummit/var/cache/prod/classes.php:292
Stack trace:

#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 on line 94

有什么问题?请帮我。感谢

2 个答案:

答案 0 :(得分:5)

您可能没有清除缓存。

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

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

或者如果您使用dev-environment(它不适合生产服务器),您应该使用:

php bin/console cache:clear

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

答案 1 :(得分:0)

如果您没有安装

,则需要通过行为包向会话目录中www-data的网络服务器用户添加 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 权限 rwx var/cache var/logsvar/sessions rwx 到其衍生物(分别如上所述)。

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

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