NC21, Nginx & PHP8 : internal server error after installation wizard


Something has happened : I am not able anymore to get NC21 running with PHP8.
Might be connected to PHP8 update or something NC21 doesn’t like with it.
I need some support to troubleshoot.

I run NC21beta7, NGINX server with PHP-FPM.
It works with PHP7.4. I have exactly the same PHP parameters and nginx conf files in the 2 VM; one running with PHP7.4 and the other with PHP8.0.1

It doesn’t work in the VM with PHP8.0.1
PostgreSQL or MariaDB lead to the same error.

I mean by that:

  • I get the installation wizard
  • I am able to create the admin user and to enter the database credentials.
  • When I click on Finish setup, the wheel spins a little and I get an internal server error; “the server was unable to complete your request”.

There is no nextcloud.log file created at that stage.

#ls -al /data/ncdata
total 12
drwxr-xr-x 3 apache apache 4096 janv. 28 10:25 .
drwxr-xr-x 3 root   root   4096 janv. 28 09:44 ..
drwxr-xr-x 2 apache apache 4096 janv. 28 10:25 appdata_ocoha23umtve

The only log info I have been able to locate so far are the one in /var/log/nginx/error.log:

# tail /var/log/nginx/error.log
2021/01/28 10:24:07 [error] 1269#1269: *2 FastCGI sent in stderr: "PHP message: {"reqId":"WzDNqxBLH706baE3w1l8","level":3,"time":"2021-01-28T09:24:07+00:00","remoteAddr":"::1","user":"--","app":"PHP","method":"GET","url":"/nextcloud/","message":{"Exception":"Error","Message":"session_start(): Ignoring session_start() because a session is already active at /var/www/nextcloud/lib/private/Session/Internal.php#207","Code":0,"Trace":[{"function":"onError","class":"OC\\Log\\ErrorHandler","type":"::","args":[8,"session_start(): Ignoring session_start() because a session is already active","/var/www/nextcloud/lib/private/Session/Internal.php",207]},{"function":"session_start","args":[{"cookie_samesite":"Lax"}]},{"file":"/var/www/nextcloud/lib/private/Session/Internal.php","line":207,"function":"call_user_func_array","args":["session_start",[{"cookie_samesite":"Lax"}]]},{"file":"/var/www/nextcloud/lib/private/Session/Internal.php","line":217,"function":"invoke","class":"OC\\Session\\Internal","type":"->","args":["session_start",[{"cookie_samesite":"Lax"}],true]},{"file":"" while reading response header from upstream, client: ::1, server: localhost, request: "GET /nextcloud/ HTTP/1.1", upstream: "fastcgi://unix:/var/lib/php-fpm/php-fpm.sock:", host: "localhost"

It looks like there is a conflict created between already active sessions.
I have redone a fresh install in a new VM and I confirm the behavior.
I have also tried with NC21 beta6 and I get the same error.

As NC21beta7 works with the same configuration in another VM using PHP7.4, as I can reach the installation wizard, I think it is not related to my nginx configuration but more related to php8.
Actually, in a previous VM (unfortunately deleted…) with PHP8 and not PHP8.0.1., with the same nginx conf file, with NC21 beta5 (maybe beta6), I have been able to pass the installation wizard and apps installation steps.
So, I lean more towards something connected to PHP8.0.1

Have you noticed that already? Any hints on how to keep troubleshooting that?


Crosspost: Nexcloud 21, NGINX and PHP 8.0.1 doesn't pass the Apps installation step · Issue #25395 · nextcloud/server · GitHub

Since this is still beta, the bug tracker is a good place for such issues.

after having pulled most of my hairs :grinning:
I found the cause of the problem.
The php module php-filter was missing.
For some reason, this module seems to use to be installed implicitly (or as a dependance) in the past.
After checking the admin manual, I have not found this module listed.
Maybe I have not been looking at the right place?
Anyway, I just opened a bug report in case adjusting the documentation would be wise.