docker部署php7.4
- 安装部署系列
- 2023-03-11
- 560热度
- 0评论
拉取镜像
docker pull php:7.4-fpm
创建本地挂载目录
mkdir -p /andy/docker/php/php7.4
生成配置文件
#先启动一个php容器,检查里面的php配置
docker run -it -d --name php7.4 -p 5000:9000 php:7.4-fpm
#进入容器
docker exec -it php7.4 /bin/bash
#查看配置文件位置
#退出容器
#复制配置文件到本地挂载路径
docker cp php7.4:/usr/local/etc/php-fpm.d/www.conf /andy/docker/php/php7.4
docker cp php7.4:/usr/local/etc/php-fpm.d/www.conf.default /andy/docker/php/php7.4
docker cp php7.4:/usr/local/etc/php-fpm.d/zz-docker.conf /andy/docker/php/php7.4
docker cp php7.4:/usr/local/etc/php-fpm.d/docker.conf /andy/docker/php/php7.4
docker cp php7.4:/usr/local/etc/php /andy/docker/php/php7.4/ini
修改默认端口号为9001
#分别修改www.conf www.conf.default zz-docker.conf三个文件
将127.0.0.1:9000修改为127.0.0.1:9001
将9000修改为9001
停止并删除刚刚的容器
#停止容器
docker stop php7.4
#删除容器
docker rm php7.4
重新启动容器
#默认网络模式
docker run -d \
-v /etc/localtime:/etc/localtime \
-v /andy/docker/volume/php/php7.4:/usr/local/etc/php-fpm.d \
-v /andy/docker/volume/nginx/www:/var/www/html \
-v /andy/docker/volume/php/php7.4/ini:/usr/local/etc/php \
-p 9001:9001 --name php7.4 --privileged=true php:7.4-fpm
#使用宿主机网络
docker run -d --restart=always --network=host \
-v /etc/localtime:/etc/localtime \
-v /andy/data1/storage/php/php7.4:/usr/local/etc/php-fpm.d \
-v /andy/data1/storage/php/php7.4/ini:/usr/local/etc/php \
-v /andy/data1/storage/nginx/www:/var/www/html \
--name php7.4 --privileged=true php:7.4-fpm
进入容器安装mysqli及其他扩展
(否则php没法连接mysql,mysql_connect函数已弃用)
#进入容器
docker exec -it php7.4 /bin/bash
#安装pdo_mysql扩展
docker-php-ext-install pdo pdo_mysql
#安装mysqli
docker-php-ext-install mysqli
#重启容器
docker restart php7.4
退出容器,配置nginx支持php
#修改default.conf,使其支持php解析
vi /andy/docker/nginx/conf/conf.d/default.conf
#将"#"去掉,修改fastcgi_pass的ip,fastcgi_param的路径
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
#重启nginx
docker restart nginx
测试php
#编写测试文件index.php
vi /andy/docker/volume/nginx/www/index.php
#文件内容如下
<?php phpinfo(); ?>
#重启nginx
docker restart nginx
#浏览器访问测试
http://ip/index.php