Arch云服务器中PHP-FPM因附加存储挂载晚于服务启动导致启动失败的问题求助
Arch云服务器中PHP-FPM因附加存储挂载晚于服务启动导致启动失败的问题求助
各位大佬好,我在Arch云服务器上搭建了LAEMP反向代理环境,最近遇到了一个棘手的问题,想请教下大家的解决方案:
- 我把Nextcloud的
data目录挂载到了附加存储盘的/mnt/hdd/nextcloud/data,并且通过软链接关联到了/srv/www/nextcloud/data;如果把nextcloud/data放在系统盘(/分区)上,就完全不会出现这个问题。 - 服务器重启后,系统能正常启动,但PHP页面会报错,用
systemctl status查看httpd和nginx都没有异常,问题出在php-fpm服务上。
以下是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通过systemd的drop-in配置文件/etc/systemd/system/php-fpm.service.d/override.conf给php-fpm服务添加了如下配置:
[Service] ... ReadWritePaths=/srv/www/nextcloud/data
我发现手动执行systemctl restart php-fpm后,这个错误就会消失,直到下一次重启服务器。
我猜测问题根源是php-fpm启动时,附加存储还没完成挂载,导致服务找不到指定的目录。我想知道正确的解决方法——要么让/dev/vdc1在系统启动时更早完成挂载,要么让php-fpm等待目标目录可用后再启动。我在网上搜了很多内容,但大部分结果都是和这个问题无关的php-fpm或fstab相关内容,没找到靠谱的解决方案,所以来这里求助大家。
我的/etc/fstab中挂载附加存储的配置是:
/dev/vdc1 /mnt/hdd ext4 defaults,noatime,nofail 0 0
备注:内容来源于stack exchange,提问作者Jesse
相关产品推荐
相关产品推荐

