我使用 Podman 和 Podman-Compose 使用 openSUSE Tumbleweed 映像创建 Nginx 和 PHP-FPM。
Nginx 容器文件和 PHP-FPM 容器文件的容器文件如下所示。
此外,使用 podman-compose 命令运行这些容器文件。
podman-compose -f ./podman-compose.yml up -d
此时如果查看Nginx容器和PHP-FPM容器的日志, 您将看到以下错误。
使用的nginx.conf文件如下所示。
PHP-FPM使用的www.conf文件如下所示。
访问“http://localhost:8080/index.php”时,网页显示“Access Denied”。
但是“http://localhost:8080/index.html”却正常显示。
导致此错误的原因是什么?
如何才能使用 openSUSE 容器使其正常工作?
注意这个容器是openSUSE Tumbleweed,所以它不包含SELinux等
Apparmor已安装在主机上。
在 php-fpm 配置中,您将
wwwrun/www
设置为用户和组。这可能是 NGINX 进程不共享类似的组权限来执行 PHP 脚本的原因。
您只需添加
user nginx;
即可解决 NGINX 配置问题,让 Web 服务器以 Nginx 用户身份运行。问题是 Nginx 用户是否可以在 /var
位置读取和写入 php-fpm 套接字。
群组权限可以解决此问题。