由于权限不对导致部署 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 即可