使用 dnmp 构建 php 5.6 开发环境
使用 dnmp 构建 php 5.6 开发环境
本文编写时间:2023-05-13
本文主要根据官网的文档进行装机调试,然后加入 php 5.6,因为原来的 dnmp 虽有但是各种插件没有,不方便。
但是,我只会用 centos 7 镜像构建 php5.6,所以本文提供的只是这种方案,但确实可用,已测试通过。
电脑环境。
我自己的电脑是 windows 10,然后已经安装了 docker desktop,已经安装了 wsl 2,然后 docker desktop 设置了 use the wsl 2 based engine。
安装步骤
进入 wsl 2 的 shell
安装好dnmp,这里步骤略,可以参考我的其他文章。
切换 php 版本到 5.6
1、添加目录
1-1、给 logs 下面加目录 phpd56
1-2、给 services 下面加目录 phpd56,同时把 php56 的目录下的内容拷贝到 phpd56
2、给 services/phpd56 加文件 Dockerfile
FROM centos:7.9.2009
ENV TZ Asia/Shanghai
WORKDIR /www
RUN curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo \
&& yum makecache \
&& yum repolist \
&& yum install -y https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm \
&& sed -i 's/https*:\/\/rpms.remirepo.net/https:\/\/mirrors.aliyun.com\/remi/g' /etc/yum.repos.d/remi* \
&& sed -i 's/#baseurl/baseurl/g' /etc/yum.repos.d/remi* \
&& sed -i 's|^mirrorlist|#mirrorlist|' /etc/yum.repos.d/remi* \
&& yum makecache \
&& yum repolist \
&& yum -y install yum-utils \
&& yum-config-manager --enable remi-php56 \
&& yum install -y php56 php56-php-devel php56-php-fpm php56-php-mbstring php56-php-memcache php56-php-memcached php56-php-redis php56-php-mysqlnd php56-php-pdo php56-php-bcmath php56-php-xml php56-php-gd php56-php-gmp php56-php-igbinary php56-php-imagick php56-php-mcrypt php56-php-pdo_mysql php56-php-posix php56-php-simplexml php56-php-opcache php56-php-xsl php56-php-xmlwriter php56-php-xmlreader php56-php-swoole php56-php-zip php56-php-phalcon php56-php-yaml php56-php-yar php56-php-yaf php56-php-uuid \
&& systemctl enable php56-php-fpm \
&& groupadd www-data \
&& useradd -g www-data www-data
RUN ln -s /usr/bin/php56 /usr/bin/php
CMD "/usr/sbin/init"
3、修改 nginx 配置
services - nginx - conf.d - localhost.conf
自己找到相应的地方,自己修改内容
charset utf-8;
location ~ [^/]\.php(/|$) {
fastcgi_pass phpd56:9000;
include fastcgi-php.conf;
include fastcgi_params;
}
4、修改 php 配置
services - phpd56 - php-fpm.conf
自己找到相应位置
listen = 0.0.0.0:9000
5、修改 docker-compose.yml
5-1、需添加一个 phpd56 服务
phpd56:
build:
context: ./services/phpd56
args:
TZ: "$TZ"
container_name: phpd56
expose:
- 9557
volumes:
- ${SOURCE_DIR}:/www/:rw
- ${PHPD56_PHP_CONF_FILE}:/opt/remi/php56/root/etc/php.ini:ro
- ${PHPD56_FPM_CONF_FILE}:/opt/remi/php56/root/etc/php-fpm.conf:rw
- ${PHPD56_LOG_DIR}:/var/log/php
- ${DATA_DIR}/composer:/tmp/composer
restart: always
cap_add:
- ALL
command: ["/opt/remi/php56/root/usr/sbin/php-fpm", "--nodaemonize", "--allow-to-run-as-root" ]
networks:
- default
6、修改 .env
6-1、添加 phpd56的配置。
#
# PHPD56
#
PHPD56_VERSION=5.6.40
PHPD56_PHP_CONF_FILE=./services/phpd56/php.ini
PHPD56_FPM_CONF_FILE=./services/phpd56/php-fpm.conf
PHPD56_LOG_DIR=./logs/phpd56
7、构建镜像,启动。
在 dnmp 目录下,Ubuntu 的 shell 里
docker-compose down
docker-compose build phpd56
docker-compose up -d
本作品采用《CC 协议》,转载必须注明作者和本文链接