I'm running a LAEMP reverse proxy server on Arch in the cloud.
I have my nextcloud/data folder mounted to an attached storage drive at /mnt/hdd/nextcloud/data, linked to /srv/www/nextcloud/data.
If I don't do this, but keep nextcloud/data on the same disk as /, then I don't have this problem at all.
At reboot, the system starts; PHP pages get an error, but neither httpd nor nginx show any errors with systemctl status. The error is in php-fpm.
Output of systemctl status php-fpm:
× php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; preset: disabled)
Drop-In: /etc/systemd/system/php-fpm.service.d
└─override.conf
Active: failed (Result: exit-code) since Tue 2023-05-30 16:47:30 PDT; 14s ago
Process: 316 ExecStart=/usr/bin/php-fpm --nodaemonize --fpm-config /etc/php/php-fpm.conf (code=exited, status=226/NAMESPACE)
Main PID: 316 (code=exited, status=226/NAMESPACE)
CPU: 8ms
May 30 16:47:29 MY_HOST systemd[1]: Starting The PHP FastCGI Process Manager...
May 30 16:47:29 MY_HOST (php-fpm)[316]: php-fpm.service: Failed to set up mount namespacing: /run/systemd/unit-root/mnt/hdd/nextcloud/data: No such file or directory
May 30 16:47:29 MY_HOST (php-fpm)[316]: php-fpm.service: Failed at step NAMESPACE spawning /usr/bin/php-fpm: No such file or directory
May 30 16:47:30 MY_HOST systemd[1]: php-fpm.service: Main process exited, code=exited, status=226/NAMESPACE
May 30 16:47:30 MY_HOST systemd[1]: php-fpm.service: Failed with result 'exit-code'.
May 30 16:47:30 MY_HOST systemd[1]: Failed to start The PHP FastCGI Process Manager.
Nextcloud is getting this from systemd drop-in /etc/systemd/system/php-fpm.service.d/override.conf :
[Service]
...
ReadWritePaths=/srv/www/nextcloud/data
When I run systemctl restart php-fpm, the error goes away forever until the next reboot.
I presume that the php-fpm service can't find the nextcloud folder because hdd/ isn't mounted when php-fpm starts and wants to look in its web folders. I would think that I should somehow adjust the run levels for php-fpm and/or (preferrably) when /etc/fstab loads the attached storage drive to /mnt/hdd.
/etc/fstab mounts the drive /mnt/hdd with this statement:
/dev/vdc1 /mnt/hdd ext4 defaults,noatime,nofail 0 0
Nothing I search for on the Internet tells me how to solve this problem. Everything in the search results shows unrelated matters about php-fpm or /etc/fstab. Even then, at best I would get some script kiddy answer.
I want to know the proper way to have vdc1 mount much earlier at runtime, or at least have php-fpm wait until the directory is available before throwing a fit.