由于权限不对导致部署 magento 失败
问题重现
- 使用
root
身份登录服务器 git clone
拉取代码composer install
安装包- 安装 magento
- 执行
php bin/magento s:d:c
构建依赖 - 执行
php bin/magento s:up
更新软件 - 配置
/etc/caddy/Caddyfile
- 执行
systemctl restart caddy
重启 caddy - 打开网站,发现报错 http 500
问题原因
在如何查看 php fpm 监听的是 UNIX sock 还是 TCP文中提到 /etc/php-fpm.d/www.conf
,这个配置文件,可以还可以配置运行 php-fpm 的用户。其中有两行是:
这里的用户有几个要求:
- 非 root,因为
php-fpm
自身要求不能使用 root 角色来运行php-fpm
- 系统中已经存在的角色,可以使用
cat /etc/passwd
来查看系统中有哪些用户 - 该角色能够访问网站的文件和目录。这也是本次问题所在,由于上面使用
root
用户创建了网站文件夹,导致其用户是root
,以至于 php-fpm
没有权限来访问网站的文件和目录
解决方案
使用命令 sudo chown -R caddy:caddy /psrv/magento
把网站文件和目录的用户更改为 caddy
即可