- A+
所属分类:linux技术
Docker compose 部署 nginx+php
拉取Docker镜像
docker pull nginx:1.21.6 docker pull php:7.4.28-fpm
创建docker-compose 目录
在home目录下创建docker-nginx
mkdir /home/docker-nginx #创建目录 cd /home/docker-nginx #进入目录
拷贝配置文件到宿主机
#拷贝 nginx的配置文
docker run -d --name nginx nginx docker cp nginxtest:/etc/nginx ./ docker cp nginxtest:/var/log ./ docker rm -f nginx
拷贝 php的配置文件
docker run -d --name php php:7.4.28-fpm docker cp phptest:/usr/local/etc/php ./ docker rm -f php
更改配置文件
配置内容参见:https://blog.csdn.net/qq_43534481/article/details/124916254?spm=1001.2014.3001.5501
配置php.ini
cd /home/docker-nginx/php #进入php目录 mv php.ini-development php.ini #重命名php.ini-development为php.ini sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" php.ini #替换字符串;cgi.fix_pathinfo=1 为 cgi.fix_pathinfo=0
配置default.conf
cd /home/docker-nginx/nginx/conf.d #进入目录 在default.conf的server块底部添加如下代码 location ~ .php$ { root html; fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www$fastcgi_script_name; include fastcgi_params; }
示例如下注意缩进
创建web根目录
mkdir /home/docker-nginx/www #创建目录 echo '<script>alert('installation complete')</script>' > index.html #创建index.html文件并写入内容 echo '<?php phpinfo();?>' > index.php #创建index.php文件并写入内容
编写yaml文件
在 /home/docker-nginx目录下创建一个docker-compose.yaml 文件
touch /home/docker-nginx/docker-compose.yaml #创建文件
将以下内容写入docker-compose.yaml
version: "3" services: nginx: image: nginx:1.21.6 container_name: "vps-nginx" restart: always ports: - "80:80" - "443:443" depends_on: - "php" volumes: - "/home/docker-nginx/nginx:/etc/nginx" - "/home/docker-nginx/log:/var/log" - "/home/docker-nginx/www:/home/www" networks: - net-app php: image: php:7.4.28-fpm container_name: "vps-php" restart: always ports: - "9000:9000" volumes: - "/home/docker-nginx/www:/home/www" - "/home/docker-nginx/php:/usr/local/etc/php" networks: - net-app networks: net-app:
环境上线
docker-compose up -d
验证结果
访问host首页弹窗访问host/index.php显示phpinfo界面即为成功