关于Nginx:无法更新Docker容器中的php.ini文件

can't update php.ini file in Docker container

我正在尝试使用Nginx在Docker上设置Magento2


在docker-compose.yml文件中的php服务中添加" volumes:"部分,将带有custom.ini文件的本地目录映射到/usr/local/etc/php/conf.d,然后重新启动容器。该文件中的任何有效设置都将覆盖php.ini主文件中的设置。 (顺便说一句,您可以使用MySQL进行相同的操作,但不能使用Nginx)。

这适用于我自己的项目:

php:
volumes:
- ./localpath/custom.ini:/usr/local/etc/php/conf.d/custom.ini


我认为您必须重新加载nginx配置。
我不知道您的php容器使用哪个操作系统,但尝试在容器内部进行以下操作:

1
2
3
4
5
# /etc/init.d/nginx restart

# service nginx restart

# nginx -s reload

我的逻辑原因是,您安装了php(并同时启动它),然后复制了所有新配置。


发生的事情是这样的:
-如果您将php.ini从主机映射到容器,请在启动容器之前确保文件(php.ini)必须存在于主机上。否则,容器将无法启动
-请检查docker是否能够读取您的php.ini文件(检查权限,有时docker以其他用户身份运行,并且无法访问属于root的主机文件)
-每次更新php.ini时,都必须重新启动php-fpm(进入容器并重新启动php-fpm进行测试,不要重新构建容器),并清除缓存(如果启用了opcache)