部署在Apache httpd上的symfony应用的会话处理


Redis for session handling of symfony applications deployed on Apache httpd

我是PHP, Symfony和Redis的新手,并且对Redis与Symfony项目的集成进行了查询,该项目部署在Apache httpd上作为会话管理服务器。

下面是我正在使用的软件及其版本

操作系统- CentOS 7Redis - 3.2.4 -从源代码构建RedisSymfony - 2.8PHP 7 -安装以下包

  • php70w
  • php70w-cli
  • php70w-common
  • php70w-fpm
  • php70w-opcache
  • php70w-pdo
  • php70w-pear
  • php70w-process
  • php70w-xml
  • php70w-pecl-redis

我在php.ini文件

中做了以下条目
session.save_handler =  redis  
session.save_path = "tcp://<<ip address of redis server>>:6379"  
session.auto_start = 1 

让我困惑的是,我是否必须使用phpredis客户端通过symfony代码编写会话管理,或者它应该自动发生。

请让我知道我应该使用哪种方法,因为redis服务器似乎没有被会话填充。

以上所有配置都是通过参考下面的链接完成的,并且已经特定于centos

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-redis-server-as-a-session-handler-for-php-on-ubuntu-14-04

谢谢。

您必须更改默认会话处理程序。要省略Symfony会话处理程序而使用PHP,将settings.yml中的handler_id选项设置为null:

framework:
    session:
        handler_id: null

http://symfony.com/doc/current/reference/configuration/framework.html handler-id

问题出在我托管Symfony应用程序的Apache服务器上。

Apache已经启用了mod_php,并且在Apache的conf中。我有一个名为php.conf的文件。它有像

下面这些属性
php_value session.save_handler "files"
php_value session.save_path    "/var/lib/php/session"
php_value soap.wsdl_cache_dir  "/var/lib/php/wsdlcache"

我注释了上面的值,并添加了下面的值,它工作了。它看起来像Apache的conf中php.conf中的配置值。. d文件夹将覆盖php.ini中存在的相同属性的值。

php_value session.save_handler "redis"
php_value session.save_path    "tcp://<ip address of redis>:6379"

在做了下面的修改之后,我已经可以在我的redis服务器上看到我的php会话了

谢谢。