会话文件在Apache / PHP中的位置
在Ubuntu 10.10上安装Apache / PHP时,会话文件的默认位置是什么?
默认的 session.save_path
设置为""
,将评估您的系统的临时目录。 在https://bugs.php.net/bug.php?id=26757看到这个评论,指出:;
save_path在即将到来的释放(sic)中的新默认值将是空string,这将导致临时目录被探测。
您可以使用sys_get_temp_dir
返回用于临时文件的目录path
要查找当前会话保存path,可以使用
-
session_save_path()
– 获取和/或设置当前会话保存path
参考这个答案找出当这个函数返回一个空string时的临时path是什么。
首先使用ini_get('session.save_path')
或phpinfo()
检查session.save_path
的值。 如果不是空的,则会显示会话文件的保存位置。 在很多情况下,它默认为空,在这种情况下阅读:
在Ubuntu或Debian机器上,如果session.save_path
未设置,则会话文件保存在/var/lib/php5
。
在RHEL和CentOS系统上,如果未设置session.save_path
,会话文件将保存在/var/lib/php/session
我认为,如果你从源代码编译PHP,那么当session.save_path
没有设置,会话文件将被保存在/tmp
(我没有自己testing过)。
除/tmp/
之外的另一个常见默认位置是/var/lib/php5/
如果不确定编译的默认值,请查看Apache的php.ini:
Ubuntu / Debian当前位置:
旧的php5安装: /etc/php5/apache2/php.ini
Ubuntu 16.XX和/或php5或php7:/ /etc/php/*/apache2/php.ini
/php/*/apache2/ /etc/php/*/apache2/php.ini
通常,这会显示注释掉的默认值。
要么:
php -r 'echo session_save_path() . "\n";'
要么:
php -i | grep session.save_path
要么:
php -r 'echo phpinfo();' | grep session.save_path
从命令行。
注意-
php.ini的'cli'/命令行版本通常与Apache版本相同,只要保存path默认设置。 您也可以使用类似的命令将Apache设置回显到wget / curl命令或网页。 但是,只要在Apache的php.ini中grep就可以了。
编辑:每@aesede评论 – >增加php -i
。 谢谢
我在Mac上find正确的会话path也遇到同样的问题。 总而言之,我发现CLI与Apache模块有不同的临时目录:Apache使用了/var/tmp
,而CLI使用了类似/var/folders/kf/hk_dyn7s2z9bh7y_j59cmb3m0000gn/T
。 但是这两种方式,当session.save_path
为空时, sys_get_temp_dir()
给了我正确的path。 使用PHP 5.5.4。
我相信它在/ tmp /中。 检查你的phpinfo函数,但应该在那里说session.save_path。
根据您运行的服务器的types,可能会有所不同。 要find该目录,请在您的php.ini文件中search以下内容。
upload_tmp_dir =“c:/ wamp / tmp”
目录可以为你不同。