Laradock 安装多版本 PHP
安装 php 多版本
1.第一步复制修改laradock/docker-compose.yml 文件中 php-fpm 放到 php-fpm 的下面,修改如下
## php-fpm 7.0
php-fpm70: # 修改名字为 php-fpm70
build:
context: ./php-fpm
args:
# ...
- LARADOCK_PHP_VERSION=7.0 # 直接写死版本号,或者 .env再加一个变量
# ...
volumes:
# ...
- ./php-fpm/php7.0.ini:/usr/local/etc/php/php.ini # 使用 7.0 的配置文件
# ...
2.第二步修改 site 配置文件
- 方法一,修改站点配置文件
fastcgi_pass php-upstream;
替换为
fastcgi_pass php-fpm70:9000;
- 方法二
nginx Dockerfile 文件修改
在这句下面
ARG PHP_UPSTREAM_CONTAINER=php-fpm
增加 php-fpm70 的变量
ARG PHP70_UPSTREAM_CONTAINER=php-fpm70
在这句下面
# Set upstream conf and remove the default conf
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \
&& rm /etc/nginx/conf.d/default.conf
增加 php-fpm70
# 写入 php-fpm70
RUN echo "upstream php70-upstream { server ${PHP70_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" >> /etc/nginx/conf.d/upstream.conf
然后将站点配置文件修改为
fastcgi_pass php-upstream;
替换为
fastcgi_pass php70-upstream;
修改完记得 docker-composer build nginx才生效
3.第三步,自动跟随启动
docker-compose.yml文件中 nginx 模块
depends_on:
- php-fpm
- php-fpm70 # 增加 php-fpm70
nginx启动报以下错时
nginx: [emerg] host not found in upstream "php-fpm70" in /etc/nginx/sites-available/tntm.conf:25
要查看php-fpm70服务是否已经启动