You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache别名站点共享PHP会话问题及解决方法咨询

问题描述

在Ubuntu 22.04上部署了Apache2、PHP和MySQL,创建了两个内部站点:主站为https://web.domain.cz,另一个是同虚拟主机下的别名站点https://web.domain.cz/second(作为主站的管理后台)。以下是vhost配置:

<VirtualHost *:443>
    ServerName web.domain.cz
    DocumentRoot /var/www/web

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/xxx.pem
    SSLCertificateKeyFile /etc/ssl/private/xxx.key

    <Directory /var/www/web>
        Require all granted
    </Directory>

    <Files dbh.php>
        Require all denied
    </Files>

    Alias /second /var/www/second
    <Directory /var/www/second>
       Require all granted
    </Directory>

</VirtualHost>
<VirtualHost *:80>
    ServerName web.domain.cz
    Redirect / https://web.domain.cz/
</VirtualHost>

遇到的问题:当在其中一个站点执行session_destroy();登出时,另一个站点也会同步登出;修改同一个会话变量时,两个站点的变量也会同步(例如存储的排序顺序,在一个站点修改后另一个也会改变)。请问为何会话变量会共享,该如何解决?(未使用任何PHP框架)

原因分析

这两个站点属于同一域名下的不同路径,PHP默认会将会话Cookie绑定到整个域名(默认session.cookie_domain为空,自动适配当前域名),因此两者共用同一个会话ID,自然会共享会话数据。

解决方法

要让两个路径的会话独立,需为它们设置不同的会话Cookie路径或会话名称,可通过以下两种方式实现:

方法一:在代码中单独配置会话参数

在两个站点的入口文件(如主站index.php、后台second/index.php)开头添加代码,指定独立的会话配置:

  • 主站代码:
session_set_cookie_params([
    'path' => '/',
    'name' => 'MAIN_SESSION'
]);
session_start();
  • 后台站点代码:
session_set_cookie_params([
    'path' => '/second',
    'name' => 'ADMIN_SESSION'
]);
session_start();

说明:

  • 设置path后,会话Cookie仅在对应路径下生效,两个站点的会话ID不会互相干扰;
  • 设置不同的name,即使路径相同,会话Cookie名称不同,也会存储独立的会话数据。

方法二:通过Apache配置为不同路径设置PHP参数

在vhost的目录配置块中添加PHP会话参数,让不同路径下的PHP使用独立会话配置:
修改vhost中的<Directory /var/www/second>块:

<Directory /var/www/second>
   Require all granted
   php_value session.cookie_path "/second"
   php_value session.name "ADMIN_SESSION"
</Directory>

主站如需保持独立配置,可在<Directory /var/www/web>中添加:

<Directory /var/www/web>
    Require all granted
    php_value session.cookie_path "/"
    php_value session.name "MAIN_SESSION"
</Directory>

修改完成后重启Apache服务生效:

sudo systemctl restart apache2

内容的提问来源于stack exchange,提问作者SheldonCopper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 11:10:06