【环境搭建】docker+nginx部署PHP

该文详细介绍了如何使用Docker来安装Nginxweb服务器并部署PHP应用。首先,通过`dockerpull`拉取Nginx镜像,创建并运行容器。然后,将Nginx的配置文件挂载到本地以便管理,接着拉取PHP的7.4-fpm镜像并创建PHP容器,与Nginx容器进行链接。最后,通过修改Nginx的配置文件以支持PHP处理,实现PHP网页的正常访问。
摘要由CSDN通过智能技术生成

目的

使用docker容器完成nginx的安装以及部署PHP网页

步骤

一、 安装nginx

1. 拉取Nginx镜像
docker pull nginx       //拉取镜像
docker images           //查看本地镜像

这里注意需要记一下nginx的IMAGE ID,我这里的ID是605c

Alt

2. 创建Nginx容器
docker run --name nginx-test -p 80:80 -d nginx
  • docker run : 是创建一个新容器并运行一个命令
  • –name : 给容器起一个名字,指的是 nginx-test
  • -p : 指定宿主机与容器内部端口的映射关系,-p [宿主机端口]:[容器内部端口],
  • -d : 设置容器在在后台一直运行
  • 最后面的 nginx 是镜像名称,也可以是镜像ID,例如上面提到的 “605c”

创建容器后使用docker ps即可查看正在运行的容器,这里我的容器ID是 902f

Alt

访问这台机器的ip加上端口号,如果返回Welcom to nginx则成功(如果设置映射的端口是80则可以不加端口)

3. 挂载文件

我们可以使用docker exec -it 902f /bin/bash进入容器内部进行配置文件的管理(容器就是一台linux机器),但是比较麻烦,我们可以将这台容器的文件挂载到我们本机,这样我们只要在本机修改文件即可。
容器内部的文件路径如下

/etc/nginx          //配置文件目录
/usr/share/nginx/html     //默认html文件目录
/var/log/nginx        //日志文件

在合适的路径下新建nginx目录,这里我选择在/home/kali/下创建,进入/home/kali/nginx,然后将容器内的nginx.confdefault.conf分别复制到/home/kali/nginx/home/kali/nginx/conf

docker cp 902f:/etc/nginx/nginx.conf ./
docker cp 902f:/etc/nginx/conf.d/default.conf ./conf/

注意容器ID不要填错,然后停止并删除这个容器,重新新建一个容器

docker stop 902f     //停止容器
docker rm 902f      //删除容器

新建容器,注意以下冒号前面的路径是刚才自己在本地新建的路径,冒号后面的是容器内的路径

docker run --name nginx-config -p 80:80 -v /home/kali/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/kali/nginx/logs:/var/log/nginx -v /home/kali/nginx/html:/usr/share/nginx/html -v /home/kali/nginx/conf:/etc/nginx/conf.d \
--privileged=true -d 605c                 //这里的605c是镜像ID

-v:挂载目录,-v[宿主机路径]:[容器内路径]

完成后本机的nginx路径下会有如下文件,说明成功

Alt

更改nginx文件夹的权限chmod -R 777 ./nginx
/home/kali/nginx/html目录下添加网页即可访问,到此Nginx的安装已经结束,删除此容器

docker stop 916
docker rm 916

二、 安装PHP

1. 拉取PHP镜像
docker pull php:7.4-fpm         //拉取PHP镜像
docker images                   //查看本地镜像

Alt

记下PHP的IMAGE ID是 854

2. 创建PHP容器同时挂载文件
docker run --name php-test -v /home/kali/nginx/html:/www -p 9000:9000 -d 854

–name:给容器起名为php-test
-v :挂载目录

docker run --name nginx-test -p 80:80 -v /home/kali/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/kali/nginx/logs:/var/log/nginx -v /home/kali/nginx/html:/usr/share/nginx/html -v /home/kali/nginx/conf:/etc/nginx/conf.d \
--privileged=true --link php-test:php -d 605c               //这里的605c是镜像ID

–link:把 php-test 容器的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-test

修改/home/kali/nginx/conf/default.conf为以下内容

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /www;
        index  index.html index.htm index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /www;
    }

    location ~ \.php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www$fastcgi_script_name;
        include        fastcgi_params;
    }
}

docker restart [container_id]重启容器,在html文件夹中添加php文件访问即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
要在Docker部署ThinkPHP6,需要先搭建Nginx+PHP环境,然后拉取webdevops/php-nginx镜像并创建项目目录和配置文件。接着,将TP6的代码放到/app/tp6目录下,然后在Nginx配置文件中指定访问路径到TP6的public目录,并隐藏index.php以及使得Nginx支持pathinfo模式。最后,创建容器并将目录映射到容器中即可。 具体步骤如下: 1. 搭建Nginx+PHP环境并拉取webdevops/php-nginx镜像: ``` # 拉取 PHP+Nginx 镜像 docker pull webdevops/php-nginx # 创建项目目录和配置文件 cd ~/wang mkdir app nginx vim ~/wang/nginx/vhost.conf ``` 2. 将TP6的代码放到/app/tp6目录下: ``` cp -r /path/to/tp6 /app/ ``` 3. 在Nginx配置文件中指定访问路径到TP6的public目录,并隐藏index.php以及使得Nginx支持pathinfo模式: ``` server { listen 80 default_server; server_name _ *.vm docker; # 指定访问路径到TP6的public目录 root "/app/tp6/public"; index index.php; # 隐藏 index.php 以及使得Nginx支持pathinfo模式 if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; } include /opt/docker/etc/nginx/vhost.common.d/*.conf; } # SSL server { listen 443 default_server; server_name _ *.vm docker; root "/app"; index index.php; include /opt/docker/etc/nginx/vhost.common.d/*.conf; include /opt/docker/etc/nginx/vhost.ssl.conf; } ``` 4. 创建容器并将目录映射到容器中: ``` docker run --name nginx-php -p 8080:80 \ -v ~/wang/nginx/vhost.conf:/opt/docker/etc/nginx/vhost.conf \ -v ~/wang/app:/app \ -d webdevops/php-nginx ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值