PHP 会话无法在 docker 上运行

问题描述 投票:0回答:2

我正在尝试设置 PHP 应用程序,但会话处理似乎出现问题。

如您所见,配置非常标准。我检查了容器的

/tmp
权限并得到了

root@2217e6d458ad:/# ls -ld /tmp
drwxrwxrwt 1 root root 4096 Dec 28 08:03 /tmp

我还在运行时检查了以下代码片段:

$file = fopen('/tmp/foo.log', 'w');
fwrite($file, 'test'.PHP_EOL);
fclose($file);
echo 'path: '. session_save_path().'<br>';
var_dump(is_writable(session_save_path()));

现在,文件

/tmp/foo.log
已创建,
path
为空,但
var_dump
结果为
bool(false)

我还应该检查什么??

php session docker file-permissions
2个回答
0
投票

这个情况与我相同,我确实解决了这个问题 我使用了 bitnami 存储库 codeigniter 图像

如果你和我一样,你可以在 dockerfile 上添加该命令

RUN echo "session.save_path=\"/tmp\"" >> /opt/bitnami/php/lib/php.ini

或者可以在 php 容器内核终端上输入

#$ echo "session.save_path=\"/tmp\"" >> /opt/bitnami/php/lib/php.ini

/opt/bitnami/php/lib/php.ini是php配置文件夹,可以在浏览器上运行查看php.ini文件在哪里

<?php phpinfo() ?>

您可以检查并运行我的图像 https://hub.docker.com/r/ranur/codeigniter


0
投票

在我的例子中(使用

wordpress:php7.4-fpm
)我还需要设置
session.auto_start = On
以使会话开始工作,尽管像你应该的那样在每个脚本的最顶部调用
session_start()

© www.soinside.com 2019 - 2024. All rights reserved.