PHP-5.2.17 的 Docker 镜像,基于 CentOS6 + PHP-5.2.17 + Zend Optimizer + FastCGI(PHP-FPM) + Nginx 构建
由于 PHP 官方已经不再维护 5.2.17,各个 Linux 发行版不再提供该版本的安装包。如果要使用该版本,则必须从源代码编译。
docker-php-5.2.17-fpm
的存在,降低了老旧 PHP 项目的部署和维护成本。
docker run -d --name some-php-5.2.17 fifilyu/php-5.2.17-fpm:tag
此时访问 http://容器IP:8080 能看到 PHP 版本信息。
docker run -d --name some-php-5.2.17 -v /some/content:/data/web/:ro fifilyu/php-5.2.17-fpm:tag
docker run -d --name some-php-5.2.17 -p 8080:8080 fifilyu/php-5.2.17-fpm:tag
此时访问 http://localhost:8080 能看到 PHP 版本信息。
镜像启动入口:
/usr/local/bin/docker-entrypoint.sh
docker-entrypoint.sh:
#!/bin/sh
/sbin/service php-fpm start
/usr/sbin/nginx
# 保持前台运行,不退出
while true
do
sleep 100
done
PHP 安装目录:
/usr/local/php-5.2.17/
PHP 主配置文件:
/usr/local/php-5.2.17/etc/php.ini
PHP 模块配置文件:
/usr/local/php-5.2.17/etc/php.d
[NOTE]
如果要启用或禁用模块,请直接修改 php.d
下的 .ini
文件。
PHP-FPM 配置文件:
/usr/local/php-5.2.17/etc/php-fpm.conf
Nginx 主配置文件:
/etc/nginx/nginx.conf
Nginx Host 配置文件:
/etc/nginx/conf.d
[NOTE]
/etc/nginx/conf.d/example.com.conf
是默认创建的 Host ,监听 8080
端口。
Web 目录:
/data/web
[NOTE]
/data/web/example.com
目录是默认站点的文件目录。
[NOTE]目前,没有时间做更多工作实现环境变量和数据容器相关设置的简化。每次更新容器数据,需要执行 docker exec -it 容器名称 bash
进入正在运行的容器操作。
PHP-FPM 日志目录:
/usr/local/php-5.2.17/var/log
Session 目录:
/usr/local/php-5.2.17/var/lib/session
- bcmath
- curl
- exif
- gd
- mbstring
- mcrypt
- mhash
- mysqli
- mysql
- pdo_mysql
- xmlrpc
- xml
- Zend Optimizer
- calendar
- ftp
- gettext
- iconv
- openssl
- snmp
- sockets
- zip
[NOTE]
除 snmp
模块外,其它模块可以随意启用,已经不再需要安装依赖。
[NOTE]
启用 snmp
模块,需要安装依赖 yum install -y net-snmp-libs
。