mar*_*nes 26 php apache session symfony
我在由Vagrant 1.8.6/VirtualBox 5.1.6管理的Ubuntu 14.04,PHP 7.1和Apache 2.4.23堆栈上运行Symfony 3.1.5.我正在尝试使用一个简单的控制器来为我的前端渲染响应:
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\BrowserKit\Response;
class LandingController {
/**
* @Route("/", name="homepage")
*/
public function showAction(){
return new Response('This is the landing page!');
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试访问我的Symfony前端时,/app_dev.php我看到:
Warning: SessionHandler::read(): Session data file is not created by your uid
500 Internal Server Error - ContextErrorException
我的Apache日志读取:
CRITICAL - Uncaught PHP Exception Symfony\Component\Debug\Exception\ContextErrorException: "Warning: SessionHandler::read(): Session data file is not created by your uid" at /var/www/conan/var/cache/dev/classes.php line 366
Symfony开发日志读取:
==> /var/www/conan/var/logs/dev.log <==
[2016-10-11 14:23:04] request.INFO: Matched route "{route}". {"route":"homepage","route_parameters":{"_controller":"AppBundle\\Controller\\LandingController::showAction","_route":"homepage"},"request_uri":"http://conan.dev/app_dev.php/","method":"GET"} []
[2016-10-11 14:23:04] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ContextErrorException: "Warning: SessionHandler::read(): Session data file is not created by your uid" at /var/www/conan/var/cache/dev/classes.php line 366 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ContextErrorException(code: 0): Warning: SessionHandler::read(): Session data file is not created by your uid at /var/www/conan/var/cache/dev/classes.php:366)"} []
看来这似乎是与会话相关的问题,我已经参考了会话管理的Symfony文档.它指出:
Symfony会话与php.ini指令session.auto_start = 1不兼容.该指令应在php.ini,webserver指令或.htaccess中关闭.
session.auto_start = 0在我php.ini和该文件由用户和组拥有root:
$ ls -lta /etc/php/7.1/fpm/php.ini
-rw-r--r-- 1 root root 70584 Sep 30 07:29 /etc/php/7.1/fpm/php.ini
我按照Symfony文档中的说明尝试创建.htaccess(我放在我的DocumentRoot),但错误仍然存在.
我已经搜索了几个线程和问题的解决方案,但没有落在任何东西上.是什么原因引起了这个?
mar*_*nes 50
编辑config/config.yml和更换save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"有save_path: /var/lib/php/sessions固定的错误.
如果使用自动将空格转换为制表符的编辑器/ IDE,请务必在保存更改之前禁用该功能.如果不这样做,可能会导致"不包含有效的YAML"错误.
Tak*_*man 18
我有同样的问题.对我有用的修复是将var/sessions所有者更改为www-data:www-data(php-fpm子进程的相同用户/组):
sudo chown -R www-data:www-data var/sessions/
Run Code Online (Sandbox Code Playgroud)
Mar*_*gis 15
避免仅针对发生环境中出现的问题更改prod配置
使用Vagrant(PHP-FPM 7 + Nginx)和同步文件夹(/ vagrant~default)时遇到同样的问题
刚刚解决了
session:
save_path: '/tmp'
Run Code Online (Sandbox Code Playgroud)
在config_dev.yml内部框架入门
只需选择Webserver和PHP可以读取/写入的地方,而不会出现权限问题.
我遇到了类似的问题,清除浏览器的缓存和存储的数据解决了该问题。
在Chrome和Opera上,您应该执行以下操作:
Developer tools > Application > Clear Storage > Clear Site Data
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28130 次 |
| 最近记录: |