美文网首页
docker 搭建php7环境

docker 搭建php7环境

作者: 半瓶阳光o_o | 来源:发表于2024-07-28 19:34 被阅读0次

第一步:使用Windows系统下PowerShell或MacOS下终端.app,在命令行输入


docker -v

如果docker运行环境安装成功,将显示当前Docker的版本号。

第二步:安装Nginx

使用docker pull命令,在线拉取nginx镜像,如果没有特殊版本需求,可直接输入nginx:latest

docker pull nginx:latest
docker run --name nginx-test -p 8080:80    -d nginx

在docker desktop上,可以点击images选项进行查看,镜像是否拉取成功。
也可以通过命令行进行查看:

docker images
image.png

第三步:安装PHP

这里我们选择7.1.30版本的php,如果没有版本需求,也可以输入php:latest

docker pull php:7.1.30-fpm

第四步:启动PHP容器

docker run --name  myphp-fpm -v  /nginx/www:/www -d php:7.1.30-fpm
mkdir  /nginx/conf/conf.d
mkdir  /nginx/www

其中,myphp-fpm是我给php容器起的名字,/nginx/www是我在本地创建的一个文件目录,用来对应docker的www,

容器启动正常,在docker desktop的Containers选项中可以看到如下记录,Status显示running,代表容器启动成功。

也可以使用命令行来查看

docker ps
image.png

第五步:启动Nginx容器并关联PHP,这一步很重要。

网上关于这一方面的介绍很多,但是很多描述的不清晰,对最新版本的兼容也不是很好。

docker run --name nginx -p 8080:80 -d  -v  /nginx/www:/usr/share/nginx/html  -v  /nginx/conf/conf.d:/etc/nginx/conf.d  --link myphp-fpm:php  nginx:latest

这里要说明一下,笔者也是试过很多次才正常运行的,如果这一步操作不对,那么PHP就无法真长使用。

其中nginx是我起的nginx容器的名字

8080:80代表,通过浏览器访问8080端口,在docker中对应的是80端口

/nginx/www是本地的挂载目录,windows下也可以c:/docker/...加上盘符,/usr/share/nginx/html是nginx默认的网页root路径

/nginx/conf/conf.d是本地的挂载目录,对应的nginx路径是/etc/nginx/conf.d,这个文件夹主要用于存放xxx.conf配置文件。

--link myphp-fpm:php 这个参数很重要,代表运行nginx的时候要关联php容器。

执行结果:


image.png

容器运行状态:

第六部:复制配置文件和网页文件到nginx容器中。

执行到这一步,虽然nginx和php容器都已经运行正常了,但是你通过浏览器访问还是404。

原因在于nginx容器中没有default.conf和index.php文件。所以,最后一步就是cp这两个文件到nginx容器的制定目录下,然后再重启nginx容器。

docker cp/docker/nginx/www/index.php nginx:/usr/share/nginx/html

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

docker restart nginx   

这里给出index.php的内容:

<?php

    echo  phpinfo();

?>

和nginx.conf的内容:

server {
    listen       80;
    server_name  localhost;

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

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

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

最后通过浏览器访问:

http://127.0.0.1:8080/

image.png

相关文章

网友评论

      本文标题:docker 搭建php7环境

      本文链接:https://www.haomeiwen.com/subject/mheihjtx.html