ThinkPHP: session_save_path与systemd冲突错误!

thinkphp v3.2.3
在文件./thinkphp_3.2.3_full/ThinkPHP/Common/functions.php中,原来的代码:

  1. if(isset($name[‘path‘]))            session_save_path($name[‘path‘]);

应当修改一下:
  1. if(isset($name[‘path‘])) {

  2.             if(!file_exists($name[‘path‘])) {

  3.                 mkdir($name[‘path‘], 0777, true);

  4.             }

  5.             session_save_path($name[‘path‘]);

  6.         }

系统使用了systemd,在访问时出现会话文件找不到的错误!!!
修改的目的是让php-fpm自动创建目录,其创建的目录与要创建的目的目录并不一致,如自定义会话存储目录:
  1. session_save_path(‘/tmp/session‘);

系统实际创建的目录:
  1. /tmp/systemd-private-01c98cd0e1f343d0a2baa1783179df8b-php-fpm.service-zMJDw0/tmp/session

或者修改systemd配置,将PrivateTmp=true改为PrivateTmp=false,这样自定义目录和实际创建的目录就一致了,可以解决此类问题。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。