您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
j0785 发布于2022年11月30日 17:02 最近更新于 2022年12月14日 15:01

原创 Windows平台下使用Docker安装配置PHP容器

1950 次浏览 读完需要≈ 9 分钟 WindowsDockerPHP

内容目录

  • 其它依赖的Docker局域网,Nginx容器创建方法见文章 Windows平台下使用Docker搭建PHP环境
  • 使用Win+R打开运行窗口,输入cmd打开命令行窗口
  • 在网站根目录d:/docker/www下创建一个myphp.php文件用于测试环境是否搭建成功,文件内容自定义,示例如下:

    <?php phpinfo();?>
  • 拉取PHP版本为8.0-fpm的官方镜像:docker pull php:8.0-fpm
  • docker pull php:版本号

    • latest表示最新版本
    • 如果需要使用其它的版本,可以去PHP官方镜像库中查看或者使用命令行docker search php 命令来查看可用版本
  • 查看本地镜像列表:docker images ,检查镜像是否拉取成功
  • 镜像安装完成之后

    • 创建一个命名为testphp的测试容器
    • 将测试容器容器内的php目录复制到主机内的d:/docker/php目录(notice:此操作会自动在工作目录下创建一个PHP管理目录d:/docker/php)
    • 停止测试容器运行
    • 删除测试容器
    docker run -d --name=testphp php:8.0-fpm
    docker cp testphp:/usr/local/etc/php/ d:/docker/php/
    docker stop testphp
    docker rm testphp
  • 然后,需要创建一个PHP容器命名为myphp,命令内容如下:

    docker run -d --name=myphp -v d:/docker/www:/www -v d:/docker/php/:/usr/local/etc/php/ php:8.0-fpm

  • 命令解析:

    • -d 在后台运行容器,并且打印容器id。
    • --name=myphp将新创建的容器命名为 myphp
    • -v d:/docker/www:/wwwd:/docker/www目录 映射 到容器的/www目录
    • php:8.0-fpm使用php:8.0-fpm镜像创建当前容器
  • 查看所有的容器 docker ps -a
  • 进入本机目录D:\docker\nginx\conf.d
  • 找到一个default.conf的配置文件,可以直接修改这个配置文件也可以为了方便查看重命名为myphp.conf(多个项目配置最好重命名)

    server {
        listen       80;
        listen  [::]:80;
        server_name  localhost;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm index.php;
        }
        #error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #将location前的注释全部去掉
        location ~ \.php$ {
            root           html;
            #fastcgi_pass   127.0.0.1:9000;
            #fastcgi_pass 容器名:端口号,PHP默认的端口号是9000;
            #fastcgi_pass ip:端口号,想要查询容器的ip可以使用 docker inspect --format='{{.NetworkSettings.IPAddress}}'  myphp 命令
            fastcgi_pass   myphp:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
  • 查询myphp容器的ip地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' myphp

    1668923245115(1).jpg

  • 然后重启mynginx容器 docker restart mynginx,注意每次修改Nginx的配置信息都需要重启对应的Nginx容器
  • 然后在浏览器运行http://127.0.0.1:81/myphp.php或者http://localhost:81/myphp.php(注意端口号跟mynginx容器对应的81端口保持一致,可以自定义),如果出现以下界面就表示环境搭建成功了

    1669715567979.jpg

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论