灯大小钢炮docker五步搭建php-fpm和nginx环境(官方镜像)

创建目录和文件


您可以直接下载我建好的目录和文件,解压到/var
点此下载www.zip

  • mkdir /var/www/html -p,创建目录html
  • mkdir /var/www/conf.d -p,创建目录conf.d
  • /var/www/html下创建index.php文件,内容<?php phpinfo();?>
  • /var/www/conf.d下创建default.conf文件
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.php index.htm;
    }

    #error_page  404              /404.html;

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

    location ~ \.php$ {
        fastcgi_pass   php:9000;  #重点:此处写docker里边php的容器名称:9000
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
        include        fastcgi_params;
    }
}
  • 设置/var/www目录权限:组www-data、拥有者www-data、八进制0755!(否则访问会有权限问题)

拉取镜像

#拉取php 5.6版本
docker pull php:5.6-fpm
#拉取nginx最新版
docker pull nginx:latest

创建php容器

docker run -p 32768:9000 --name php -v /var/www/html:/var/www/html -d php:5.6-fpm

各项参数说明

  1. --name 为容器命名为php
  2. -v 挂载文件,这里是把当前宿主机的目录 挂载到容器的项目目录上(本地目录:容器内目录)
  3. -p 端口 32768:9000 代表把宿主机的32768端口映射到容器的9000端口
  4. -d后台守护进程
  5. php后面的冒号:版本号

创建nginx容器

docker run -p 88:80 --name nginx -v /var/www/html:/usr/share/nginx/html -v /var/www/conf.d:/etc/nginx/conf.d --link php:phpfpm -d nginx:latest

--link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。

查看服务运行情况:

docker ps -a
#当STATUS 为Up的时候才算启动成功

正常安装的全过程记录(方法适用与贝壳云和N1)

[root@N1:~]# docker pull php:5.6-fpm
5.6-fpm: Pulling from library/php
711c3a2baeda: Pull complete
0a273a3c3223: Pull complete
9dbe9d898f22: Pull complete
ac488f1008ef: Pull complete
388cbbc3d152: Pull complete
d8db1921abd4: Pull complete
5083f74b6974: Pull complete
9ddc237958ce: Pull complete
776d01e7fbc0: Pull complete
89ea877dfcd4: Pull complete
Digest: sha256:4f070f1b7b93cc5ab364839b79a5b26f38d5f89461f7bc0cd4bab4a3ad7d67d7
Status: Downloaded newer image for php:5.6-fpm
[root@N1:~]# docker pull nginx:latest
latest: Pulling from library/nginx
b41def3f3781: Pull complete
c3f94513dd2c: Pull complete
e22f50de13a1: Pull complete
Digest: sha256:eb3320e2f9ca409b7c0aa71aea3cf7ce7d018f03a372564dbdb023646958770b
Status: Downloaded newer image for nginx:latest
[root@N1:~]# docker run -p 32768:9000 --name php -v /var/www/html:/var/www/html -d php:5.6-fpm
c236206dfd5ea77f0445a6389243b214af37810bcb067166bb7099e8a1527f39
[root@N1:~]# docker run -p 88:80 --name nginx -v /var/www/html:/usr/share/nginx/html -v /var/www/conf.d:/etc/
nginx/conf.d --link php:phpfpm -d nginx:latest
7e789ef3fc98cdc9b96b7dec5fef30b0a4b8f6afd36aa988703a45c048b07065
[root@N1:~]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PO                                                                                                                                RTS                     NAMES
7e789ef3fc98        nginx:latest          "nginx -g 'daemon of…"   10 seconds ago      Up 8 seconds        0.                                                                                                                                0.0.0:88->80/tcp        nginx
c236206dfd5e        php:5.6-fpm           "docker-php-entrypoi…"   35 seconds ago      Up 33 seconds       0.                                                                                                                                0.0.0:32768->9000/tcp   php
b3a591bfb225        portainer/portainer   "/portainer"             2 months ago        Up 26 minutes       0.                                                                                                                                0.0.0:9000->9000/tcp    portainer
[root@N1:~]#

访问php文件,来测试是否安装正确

http://域名或IP:端口号/ 我小钢炮局域网IP是192.168.3.3,此处即是:http://192.168.3.3:81!已经搭好的:

192.168.3.3.png

其他知识点:



最后修改:2024 年 05 月 09 日 09 : 54 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论