随枫--博客

或许是不知梦的缘故,流离之人追逐幻影!

修改Nginx&php-fpm所属用户及用户组导致的问题

    最近闲来无事,就打算搞搞之前一直准备搞webhook,自动部署哈,你认为我会告诉你们,博主之前一直用的ftp上传代码吗?嗯哈,惊不惊喜,意不意外。参考了各位大佬的文章好,终于在码云上部署成功,于是乎准备写一篇文章记录一下,于是等博主缕清思路,准备登陆后台时,意外发生了,本文记录解决意外的过程。

    1.后台登陆界面直接挂了,甩出了一段异常代码

    具体代码就不细说了,由于博主用的TP3.2开发的,异常代码有Runtime字样,第一眼就感觉就是权限问题,由于博主配置了webhook,在配置的时候修改了Nginx和php-fpm的所属用户,于是博主马上修改Runtime所属用户及用户组,刷新后台登陆界面,哈哈,成功看到登陆弹框,美滋滋哈。

    2.输入用户和密码之后没有跳转到后面管理界面

    由于博主之前改过后台管理员的密码,于是乎,博主第一映像是输错了密码,于是在博主尝试N次之后,觉得情况不大对劲啊,这密码不可能错啊,难道被黑了,但是一想到自己这垃圾小站,谁在乎啊,果断连接数据库,查看管理员用户密码。嗯哼,果然自己一直输入的是对的,那么问题来了,为什么不跳转呢?

    博主登录是基于session来做的,看到密码是对的之后,博主就感觉应该是session出了问题,于是在登录判断处打上断点,把session打印输出,登录测一波,wf?是正常的啊,难道是验证环节出了问题?于是找到验证是否登录的代码,打上断点(哈哈,很low的var_dump),然后走一波流程。看到结果,傻了,null,什么鬼?但是也确定了一件事,session没有写入。

    为什么会没写入呢?1.磁盘空间不够;2.没有写入权限;1明显不可能,因为博主服务器上几乎是什么都没有,所以排除。于是验证2。打开phpinfo(确实查看配置情况很方便),找到session保存位置(搜索session,会看到session.save_path),在服务其中打开该目录(博主的是/var/lig/php/session),ls -l ,哈哈,果然问题出在这里,所属用户和组是Apache,于是修改用户和组,登录走一波,perfect,关闭断点。至此,所遇问题完美解决。