我有一个运行 nginx 和 PHP 7.2 的 CentOS 6 机器。
我的 php 7.2 会话文件存在于我期望它们的位置,在
/var/opt/remi/php72/lib/php/session
但是,我刚刚注意到它们中存在的数量较少
/tmp
我只安装了一个版本的 php,运行了许多站点。 phpInfo();
报告每个站点的第一个目录。我根本找不到任何/tmp
关于会话的参考。
我发现如果我跑步php -r 'phpInfo();' | grep save_path
我会得到session.save_path => no value => no value
,所以我猜这是造成它的原因吗?即我的 cron 作业正在创建空会话文件。
这是正常的吗?如果是这样,为什么?为什么php从命令行运行不使用php.ini中设置的值?
谢谢
是的。
这记录在配置文件中。每个用户必须有不同的位置以避免访问问题。
所以在每个SAPI文件中都配置了路径
默认为
/tmp
(对于 CLI 用户)在您的 php.ini 中查看这些注释:
这意味着
/var/opt/remi/php72/lib/php/session
仅由apache
用户(您的发行版的 FPM 池中的默认用户)使用。如果您使用多个 FPM 池,与不同的用户一起运行,您必须为每个池设置不同的位置,请参阅
php-fpm.d/www.conf
: