PHP应用容器化遇到的一些问题
这里以 WordPress 为例,我们不用官方的镜像,而是用 php 镜像
php 官方有个自带 apache 的版本,如:php:8.1.32-apache
, 建议用这个版本,这个版本不用考虑 Nginx 和 php 的文件共享问题,启动容器:
1 | docker run --rm -d --name php-test \ |
自定义 php 配置文件
比如调整 PHP 上传文件大小限制
docker run 的时候挂载 php.ini
1 | docker run ... \ |
php.ini 增加
1 | upload_max_filesize = 1024M |
安装 Core 扩展
这个时候说明 php 正常工作了,但是缺扩展。
1 | FROM php:8.1.32-apache |
安装其他扩展
比如安装 imagick,整合到 dockerfile 里构建个新的镜像。imagick 使用 pecl 安装
1 | FROM php:8.1.32-apache |
安装自定义 PHP 扩展
比如安装主题的时候需要安装主题文件提供的扩展:
查看 php 扩展目录
1 | php -i | grep "extension_dir" |
把这个目录挂载出来,将扩展文件放进去。或者挂载一个新的目录
1 | docker run ... \ |
然后 php.ini 中指定扩展路径
1 | extension=/extensions/swoole_loader_81_nts.so |
WordPress 常见警告
post_max_size 的值小于 upload_max_filesize
这个问题需要配置一下 php.ini
1 | upload_max_filesize = 200M |
反向代理问题
WordPress 经过 Nginx 反向代理后,可能会出现页面样式丢失的问题,查看浏览器 F12 发现一堆 404, 原因为 WordPress 自身也带跳转,解决方法可以看:Nginx反向代理wordpress并启用https
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
评论