项目搭建问题

项目搭建问题

项目session 使用 memcached 缓存 , 帮我看下这个问题是什么原因造成,我用的课堂源码,缓存用的 memcached  。

http://img1.sycdn.imooc.com//climg/5aaf6fe30001eb7715120718.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
guly 2018-03-20 14:07:05

你好,session_start(): No session id returned by function 表示没有设置session_id ,如果查看phpinfo没有memcached的扩展的话,建议查看教辅安装

http://img1.sycdn.imooc.com//climg/5ab0a4fe0001921612590852.jpg

祝学习愉快!

guly 2018-03-20 10:46:42

你好,解决(1):在php.ini中 把

session.save_handler = files

修改为

session.save_handler = user

解决(2):

在TP5中,因为要用到memcached,所以会在…\thinkphp\library\think\session\driver\memcached.php 所以如果发现项目加载奇慢,要考虑到是否开启或加载了php-memcached函数扩展库(注意:不是memcached,而是php-memcached扩展,可用phpinfo查看) ,如果解决您的问题请采纳,祝学习愉快!


  • 提问者 梅三喵 #1
    我把php换到5.6版本了,session_start(): No session id returned by function ,现在是这个问题,,, 还有 我用 ps -ef | grep php-memcached 和 grep memcached 两个进程都有,,, 但是phpinfo里面没有,php-memcached,
    2018-03-20 11:45:40
怪人木林 2018-03-19 18:41:32

解决方法有两种如下:

1。在报错的文件里的session start();之前加入如下代码:ini_set(‘session.save_handler’, ‘files’); 。这种方法适合租用空间的用户使用。

2。在php.ini文件里,显式指定session的save_path(比如 c:/temp)然后重启web服务。如果服务器的管理权限属于你,那还是这样改比较方便。

原因分析:php5一个安全模式的bug,默认session的save_path是系统的临时目录,这样会要校验权限。

  Fatal error: session_start(): Failed to initialize storage module: user (path: /tmp) in /home/***.php on line 1
从错误看来是系统临时目录/tmp无法保存session文件的问题,
原则上我们可以直接修改php.ini中的session.save_handler值从’user’到’files’。但是在虚拟空间里通常都没有修改权限。这是我的解决办法:
    if(!is_dir(’./tmp/’))mkdir (’./tmp/’, 0700);
    session_save_path(’./tmp/’);
    session_start();
直接在session_start前面增加上面的内容。
或者打开php.ini中的seession.path指定有权限的路径。

  • 提问者 梅三喵 #1
    网上这种 用了还是不行
    2018-03-19 18:43:03
  • 怪人木林 回复 提问者 梅三喵 #2
    http://www.jb51.net/article/49647.htm 这个呢?
    2018-03-19 19:11:22
  • 提问者 梅三喵 回复 怪人木林 #3
    他这个缓存文件目录是从,没问题的项目找到的,我那个服务器只有一个项目,没法确定目录。
    2018-03-19 19:38:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师