如何在Laradock中让PHP CLI加载自定义my.ini配置文件?
解决Laradock中PHP CLI无法加载自定义my.ini的问题
这是因为Laradock里的php-fpm和workspace是两个独立的Docker容器,你之前只修改了php-fpm的Dockerfile来添加配置文件,但CLI环境所在的workspace容器并没有同步这个配置,所以需要针对workspace做同样的配置操作。
下面是两种可行的解决方法:
方法一:修改workspace的Dockerfile(持久化配置)
- 进入Laradock目录下的
workspace文件夹,打开其中的Dockerfile。 - 在文件中找到其他复制PHP配置文件的位置(比如已有
COPY ./php/* /usr/local/etc/php/conf.d/这类语句的附近),添加以下代码:COPY ./my.ini /usr/local/etc/php/conf.d/注意:如果你的
my.ini文件是放在php-fpm目录下的,需要先把它复制到workspace目录下,或者调整源路径为../php-fpm/my.ini(根据实际文件位置修改)。 - 重新构建workspace容器:
docker-compose build workspace docker-compose up -d workspace
方法二:通过挂载本地文件实现(灵活易修改)
这种方法不用修改Dockerfile,直接通过Docker挂载把本地的配置文件同步到容器内:
- 打开Laradock根目录下的
docker-compose.yml,找到workspace服务的volumes配置段。 - 添加一条挂载规则,把本地的
my.ini路径映射到容器内的PHP配置目录:volumes: - ./path/to/your/my.ini:/usr/local/etc/php/conf.d/my.ini替换
./path/to/your/my.ini为你实际的my.ini文件路径(比如./php-fpm/my.ini)。 - 重启workspace容器使配置生效:
docker-compose restart workspace
验证配置是否生效
进入workspace容器,执行以下命令检查:
docker-compose exec workspace bash php -i | grep my.ini
如果输出中显示你的my.ini文件路径,说明已经成功加载。
内容的提问来源于stack exchange,提问作者daniil sidorov
相关产品推荐
相关产品推荐

