记一次因为安装php扩展导致nextcloud登录无法正常跳转的解决过程。

前面是一直正常运行的状态,然后看到日志打印有很多错误信息,

Error    PHP    You are using a fallback implementation of the intl extension. Installing the native one is highly recommended instead. at /www/wwwroot/xxx/3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php#18        2019-11-19T17:24:38+0800

根据网上信息可能是缺少php-intl扩展导致(解决方案参考)的,于是通过

yum install php-intl -y

安装并重启php

systemctl restart php-fpm

接下来进入首页提示登录,输入用户名以及密码之后没有跳转到file文件界面,而是又跳转到了登录界面,一直循环。

在网上搜索了一下,发现有挺多人出现这个问题的,这里记录一下解决方案。

  1. 确定你的php运行用户及用户组

    vi /etc/php-fpm.d/www.conf

    查看配置文件的usergroup两个参数对应的值,下面贴出我的用户和用户组:

    ; RPM: apache user chosen to provide access to the same directories as httpd
    user = www
    ; RPM: Keep a group allowed to write in log dir.
    group = work

    以上配置可以看到我的用户为www而用户组为work

  2. 检测php session用户组

    ls -l /var/lib/php/
    ---
    drwxrwx--- 4 root apache     86 Nov 19 04:50 opcache
    drwxrwx--- 2 apache  apache 159744 Nov 19 05:04 session
    drwxrwx--- 2 root apache      6 Oct 22 05:19 wsdlcache

    猜测可能是我在安装php-intl扩展之后修改了该目录的用户组,而php本身的用户组wwwwork就没有访问权限,导致这个问题出现。修改如下:

    chown -R www:work  /var/lib/php/session/
    chown -R :work  /var/lib/php/opcache/
    chown -R :work  /var/lib/php/wsdlcache/

    再次查看目录用户组:

    ls -l /var/lib/php/
    ---
    drwxrwx--- 4 root work     86 Nov 19 04:50 opcache
    drwxrwx--- 2 www  work 159744 Nov 19 05:04 session
    drwxrwx--- 2 root work      6 Oct 22 05:19 wsdlcache

经过上述修改之后,通过login页面登录正常跳转到内容界面。

参考

最后修改:2019 年 11 月 19 日 06 : 12 PM