文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Docker搭建PHP运行环境

2023-09-04 12:38

关注

目录

Docker 安装 PHP

Docker 安装 Nginx 

​编辑运行nginx容器

nginx安装成功

Nginx + PHP 部署PHP项目

启动 PHP: 

启动 nginx:

查看正在运行的容器: 

访问域名测试搭建结果

Docker相关命令描述


Docker 安装 PHP

docker pull php:7.1-fpm

 等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为php,标签为7.1-fpm的镜像。

Docker 安装 Nginx 

 访问 Nginx 镜像库地址: Docker

可以通过 Sort by 查看其他版本的 Nginx,默认是最新版本 nginx:latest。 

docker pull nginx:latest

运行nginx容器

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

参数说明:

  • --name nginx-test:容器名称。
  • -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d nginx: 设置容器在在后台一直运行

 

nginx安装成功

Nginx + PHP 部署PHP项目

启动 PHP: 

docker run --name  myphp-fpm -p 9000:9000 -v /var/www/blog:/www  -d php:7.1-fpm

命令说明:

  • --name myphp-fpm : 将容器命名为 myphp-fpm。

  • -v /var/www/blog:/www : 将主机中PHP项目目录挂载到容器的 /www目录,在容器内访问 /www 就相当于访问宿主机的 /var/www/blog

  • php:7.1-fpm 镜像名

mkdir -p /opt/docker/nginx/conf.d

 

vim testdocker.conf
server {    # 监听端口。此端口不能被占用了    listen       80;    # 此站点的域名。直接在宿主机配置一个host域名,或者在阿里云等云服务商那里解析过来。    server_name  www.testdocker.com;    # 此站点的入口目录。这里要注意,/www/public/ 路径是容器内的路径。因为等下会把宿主机的项目路径挂载到容器内的 /www 目录。所以这里访问 /www就相当于访问宿主机的项目路径。    root  /www/public/;    #配置url的伪静态设置    location / {       autoindex off;       if (!-e $request_filename){          rewrite ^/(.*)$ /index.php?/$1 last;        break;       }       #伪静态设置       try_files $uri $uri/ /index.php$is_args$query_string;       index index.php index.html index.htm;    }    #配置url处理及转发PHP请求    location ~ \.php(/|$) {        # 入口文件        fastcgi_index index.php;        # PHP项目的IP和端口。这是php-fpm的地址。由于nginx处理不了PHP代码,所以需要把请求转发给php-fpm进行处理。        fastcgi_pass  10.10.10.68:9000;        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        include       fastcgi_params;    }    # 用户的访问日志。注意,这目录必须存在,否则nginx将启动不了。由于我把宿主机的项目路径www挂载到了容器内的/www目录,所以宿主机的项目路径www里需要有wwwlogs目录。    access_log  /var/log/nginx/docker_nginx_access.log;    # 错误日志    error_log  /var/log/nginx/docker_nginx_error.log;}

配置文件说明:

  • 10.10.10.68:9000:表示 php-fpm 服务的 URL,下面我们会具体说明。
  • root  /www/public/:项目的根目录,这里之所以写成( /www/public),是因为在启动PHP时,已经将项目的根目录(/var/www/blog)挂载到容器内的/www目录了

启动 nginx:

docker run --name my-nginx -p 80:80 -d -v /var/www/blog:/www -v /opt/docker/nginx/conf.d:/etc/nginx/conf.d nginx

查看正在运行的容器: 

图一端口(9000)生效,图二端口(9000)没生效,如果php-fpm没有端口,最后导致的结果就是,客户端通过域名访问项目,在通过nginx请求php-fpm时会提示:502
nginx错误提示是:connect() failed (111: Connection refused) while connecting to upstream

访问域名测试搭建结果

Docker相关命令描述

docker container attach     附加到正在运行的容器docker container commit     从容器的更改创建一个新的映像docker container cp         在容器和本地文件系统之间复制文件/文件夹docker container create     创建一个新的容器docker container diff       检查容器文件系统上文件或目录的更改docker container exec       在运行容器中运行命令docker container export     将容器的文件系统导出为tar存档docker container inspect    显示一个或多个容器的详细信息docker container kill       杀死一个或多个运行容器docker container logs       获取容器的日志docker container ls         列出容器docker container pause      暂停一个或多个容器内的所有进程docker container port       列出端口映射或容器的特定映射docker container prune      取出所有停止的容器docker container rename     重命名容器docker container restart    重新启动一个或多个容器docker container rm         删除(移除)一个或多个容器docker container run        在新容器中运行命令docker container start      启动一个或多个停止的容器docker container stats      显示容器的实时流资源使用统计信息docker container stop       停止一个或多个运行容器docker container top        显示容器的正在运行的进程docker container unpause    取消暂停一个或多个容器内的所有流程docker container update     更新一个或多个容器的配置docker container wait       阻止一个或多个容器停止,然后打印退出代码

以上命令中的 container 可以省略不写,
例如命令:docker container stop 容器ID/容器名称 等同 docker stop 容器ID/容器名称

来源地址:https://blog.csdn.net/wplblog/article/details/128648790

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯