在 ovh 共享服务器上丢失与 Symfony 2.8 的会话

Posted

技术标签:

【中文标题】在 ovh 共享服务器上丢失与 Symfony 2.8 的会话【英文标题】:Lost session with Symfony 2.8 on ovh mutualized server 【发布时间】:2017-04-19 19:59:06 【问题描述】:

我使用带有 FOSUserBundle 2 的 Symfony 2.8。我在 ovh 上升级了我的报价,并且我的 php 配置的一些元素发生了变化。我有一个大问题,因为我的用户无法连接到网站(大约 5 分钟后断开连接)。这是一个拥有约 8000 名会员的协会网站,每个会员都可以联系... 之前,会话写在一个特殊的文件夹(app/var/session)中。知道它应该写入缓存文件夹,但它没有。

我在 www 文件夹和项目文件夹中有一个 htaccess,其中包含:

SetEnv SHORT_OPEN_TAGS 0
SetEnv REGISTER_GLOBALS 0
SetEnv MAGIC_QUOTES 0
SetEnv SESSION_AUTOSTART 0
SetEnv ZEND_OPTIMIZER 1
SetEnv PHP_VER 5_6

在我的 config.yml 中,我有:

    session:
        cookie_lifetime: ~
        # handler_id: session.handler.native_file
        # save_path: '%kernel.root_dir%/var/sessions'

作为信息,这是我的 composer.json 的一部分:

"require": 
    "php": ">=5.3.9",
    "symfony/symfony": "2.8.*",
    "doctrine/orm": "^2.4.8",
    "doctrine/doctrine-bundle": "~1.4",
    "twig/extensions": "1.4.*",
    "symfony/assetic-bundle": "2.8.*",
    "symfony/swiftmailer-bundle": "~2.3",
    "symfony/monolog-bundle": "~2.11.3",
    "sensio/distribution-bundle": "~5.0",
    "sensio/framework-extra-bundle": "^3.0.2",
    "sensio/generator-bundle": "~3.0@dev",
    "incenteev/composer-parameter-handler": "~2.0",
      "symfony/dom-crawler" :"3.2.*",
    "friendsofsymfony/user-bundle": "~2.0@dev",
    "gregwar/image-bundle": "dev-master"
,
"require-dev": 
    "leafo/lessphp": "0.5.0",
    "sensio/generator-bundle": "~3.0",
    "symfony/phpunit-bridge": "~2.7"
,

我的缓存和日志文件夹位于 chmod -R 777 当我在本地计算机上部署时,它可以完美运行(这意味着会话文件是在缓存文件夹中创建的)。 如果我通过直接 url 而不是 www.mydomain.com 输入(因此这不是 ovh 多站点配置的问题),它仍然不起作用(意味着未创建会话文件)。 当我在开发环境中时,它也不起作用。 如果我查看日志,我看不到任何错误。 当然,有一个 php 配置错误。我错过了一些重要的 php 变量集吗?有什么想法吗? 非常感谢。

【问题讨论】:

【参考方案1】:

由于无法正常工作,我终于发现我可以使用 pdo 处理程序管理数据库中的会话。我不相信这是最好的解决方案,但它仍然是一个解决方案。 如需进一步解释,请查看symfony doc pdo_session_storage

【讨论】:

以上是关于在 ovh 共享服务器上丢失与 Symfony 2.8 的会话的主要内容,如果未能解决你的问题,请参考以下文章

服务器快照和备份有啥区别? (OVH)

是否可以从 ovh 共享主机执行 ssh?

_LIR__与Laravel 5.5和OVH共享主机不一致

使用 OVH 托管网站发送电子邮件问题

如何使用 Terraform 在 OVH 上创建私有子网?

在共享 2 个环境的机器上运行 Symfony 3.2 项目中的作曲家安装