Docker安装Nginx、PHP7.4;并配置Nginx解析PHP

一、安装Nginx及PHP7.4

1、 安装Nginx
这里我们拉取官方的最新版本的镜像:
  1. docker pull nginx:latest
2、安装PHP7.4
这里我们拉取官方的最新版本的镜像:
  1. docker pull php:7.4-fpm
3、使用以下命令来查看是否已安装了 nginx和php:
  1. docker images

二、Nginx + PHP 部署

1、启动 PHP容器
  1. docker run --name php7.4-fpm -v /Users/lishuo/Code/docker/php:/www -d php:7.4-fpm

命令说明:

  • —name php7.4-fpm : 将容器命名为 php7.4-fpm
  • -d 守护进程 后台运行
  • -v /Users/lishuo/Code/docker/php:/www : 将主机中项目的目录/Users/lishuo/Code/docker/php(这个目录是你本地自己的项目目录,需要换成你自己的,也可以用D:…) 挂载到容器的 /www(这个是docker容器内php的路径,不需要动)
查看容器是否启动成功
在自己本地/Users/lishuo/Code/docker/php(我的是mac系统,你的可能是D盘某个目录下)下创建ThinkPHP6项目
  1. composer create-project topthink/think tp6.com
查看一下本地项目是否创建成功
2、配置Nginx域名文件
在本地创建目录用来存放nginx的域名文件
  • /Users/lishuo/Code/docker/nginx/conf 这个是我mac电脑的路径,你换成自己的windows电脑的,比如 D: 盘下
在该目录下添加 tp6.com.conf 文件,内容如下:
  1. server {
  2. listen 80;
  3. server_name tp6.com;
  4. location / {
  5. root /usr/share/nginx/html/tp6.com/public;
  6. index index.html index.htm index.php;
  7. }
  8. error_page 500 502 503 504 /50x.html;
  9. location = /50x.html {
  10. root /usr/share/nginx/html;
  11. }
  12. location ~ \.php$ {
  13. fastcgi_pass php:9000;
  14. fastcgi_index index.php;
  15. fastcgi_param SCRIPT_FILENAME /www/tp6.com/public/$fastcgi_script_name;
  16. include fastcgi_params;
  17. }
  18. }

配置文件说明:

  • 第3行 代表你的域名
  • 第6行 /usr/share/nginx/html/tp6.com/public 代表Nginx容器内项目路径
  • 第18行 /www/tp6.com/public/$fastcgi_script_name 代表你php容器内项目路径

三、启动Nginx

  1. docker run --name php-nginx -p 80:80 -d \
  2. -v /Users/lishuo/Code/docker/php:/usr/share/nginx/html:ro \
  3. -v /Users/lishuo/Code/docker/nginx/conf:/etc/nginx/conf.d:ro \
  4. --link php7.4-fpm:php \
  5. nginx

配置文件说明:

  • -p 80:80: 端口映射,把 nginx 中的 80 映射到本地的 80 端口
  • /Users/lishuo/Code/docker/php(我的是mac你的有可能事D盘某目录): 是本地 nginx 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录
  • /Users/lishuo/Code/docker/nginx/conf(我的是mac你的有可能事D盘某目录): 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
  • —link php7.4-fpm:php: 把 php7.4-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm
查看nginx容器是否启动成功

四、修改本地host文件

如上是修改的mac的host文件路径在/etc/hosts下,如果是windows则在C:\Windows\System32\drivers\etc下

五、测试是否成功

看到如上效果则是配置成功