我的编程空间,编程开发者的网络收藏夹
学习永远不晚

设置 PHP-FPM 和 Nginx Docker 容器

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

设置 PHP-FPM 和 Nginx Docker 容器

本文将讨论在 Docker 上进行本地开发时如何设置 PHP、PHP-FPM 和 NGINX 容器。

要点:

  1. 在命令行上构建和运行容器。
  2. Docker 文件及其用途。
  3. 容器如何交互。

确保您的设备上安装了 Docker 程序和 Git Bash。


设置 PHP CLI 容器

我们将创建目录 C:/delft/docker-php/app,我们将在其中存储我们的源代码:


mkdir -p "C:/delft/docker-php/app"

在我们的教程中,我们将使用官方 PHP 图像。 我们运行下面的代码;


docker run -d --name docker-php -v "C:/delft/docker-php/app":/var/www php:7.0-cli

这意味着,

  1. docker run - 这将运行一个容器。
  2. -d - 它将在后台运行(分离)。
  3. --name docker-php - 这将指定 docker-php。
  4. -v "C:/delft/docker-php/app":/var/www - 这会将 Windows 主机上的目录 C:/delft/docker-php/app 与容器中的 /var/www 同步。
  5. php:7.0-cli - 这将使用此图像来构建容器。

输出结果如下:


$ docker run -d --name docker-php -v "C:/delft/docker-php/app":/var/www php:7.0-cli
Unable to find image 'php:7.0-cli' locally

因为我们的机器没有镜像,Docker 将尝试从官方注册表中获取镜像。

我们运行 docker ps -a 命令来查看容器是否正在运行。

您会注意到容器在初始化后立即停止运行。 我们需要将 -i 参数添加到 docker run 命令。

在再次运行 docker run 命令之前,请运行以下命令。


$ docker rm docker-php

上面的命令删除了我们的第一个 docker-php,因为我们不能再次使用它。 我们现在可以使用 -i 标志运行 docker run 命令。


docker run -di --name docker-php -v "C:/delft/docker-php/app":/var/www php:7.0-cli
7b3024a542a2d25fd36cef96f4ea689ec7ebb758818758300097a7be3ad2c2f6

运行 docker ps -a 命令检查容器是否正在运行。

要登录,请运行以下命令;


winpty docker exec -it docker-php bash

使用 PHP-FPM 和 NGINX 设置 Web 堆栈

现在让我们讨论如何设置 PHP-FPMNginx 容器。

设置 NGINX

我们首先获取一个服务器,该服务器将充当运行官方 Nginx 映像的容器。 我们将创建一个 docker-compose.yml 来运行我们最新的 Nginx 图像。 我们将使用端口 80 和 8080。


web:
 image: nginx:latest
 ports:
 - "8080:80"

然后我们运行 docker-compose up 命令。

输出:

nginx

让我们将 docker-compose.yml 文件挂载到本地存储库。 我们将使用我们的 docker-compose.yml 文件所在的文件夹 jiyik


web:
    image: nginx:latest
    ports:
        - "8080:80"
    volumes:
        - ./jiyik:/jiyik

此时,Nginx 并不知道我们的文件夹存在。 我们将使用以下 site.conf 文件来解决此问题。


server {
    index index.html;
    server_name php-docker.local;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /delft;
}

我们需要激活设置。 让我们再修改 docker-compose.yml 文件。


web:
    image: nginx:latest
    ports:
        - "8080:80"
    volumes:
        - ./jiyik:/jiyik
        - ./site.conf:/etc/nginx/conf.d/site.conf

我们现在可以将 index.html 添加到我们的 jiyik 文件夹并运行下面的代码;


docker-compose up

我们的 Nginx 应该已经启动并运行了。

添加 PHP-FPM

下一步是获取官方的 PHP7-FPM,它将链接到我们的 Nginx 容器。 更新后的 docker-compose.yml 文件应如下所示。


web:
    image: nginx:latest
    ports:
        - "8080:80"
    volumes:
        - ./jiyik:/jiyik
        - ./site.conf:/etc/nginx/conf.d/site.conf
    links:
        - php
php:
    image: php:7-fpm

我们现在将配置 Nginx 容器以使用 PHP-FPM 容器解释 PHP 文件。 我们更新后的 site.conf 文件将读取,


server {
    index index.php index.html;
    server_name php-docker.local;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /delft;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

让我们测试程序。 首先,我们将我们的 index.html 文件重命名为 index.php 并将内容更改为以下内容。


<?php
echo phpinfo();

在运行 docker-compose up 命令之前,我们必须将 jiyik 文件夹挂载到我们的 PHP 容器中。 我们的 docker-compose.yml 文件的最终迭代将读取,


web:
    image: nginx:latest
    ports:
        - "8080:80"
    volumes:
        - ./jiyik:/jiyik
        - ./site.conf:/etc/nginx/conf.d/site.conf
    links:
        - php
php:
    image: php:7-fpm
    volumes:
        - ./jiyik:/jiyik

运行 docker-compose up 命令会产生下图。

phpinfo

免责声明:

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

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

设置 PHP-FPM 和 Nginx Docker 容器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

设置 PHP-FPM 和 Nginx Docker 容器

本文将讨论在 Docker 上进行本地开发时如何设置 PHP、PHP-FPM 和 NGINX 容器。要点:在命令行上构建和运行容器。Docker 文件及其用途。容器如何交互。确保您的设备上安装了 Docker 程序和 Git Bash。设置
设置 PHP-FPM 和 Nginx Docker 容器
2024-02-27

怎么配置nginx和php-fpm

这篇文章主要讲解了“怎么配置nginx和php-fpm”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么配置nginx和php-fpm”吧!在php7中,最不可少的就是nginx和php-f
2023-06-20

nginx、php-fpm和mysql的用户权限如何配置

这篇文章主要介绍了nginx、php-fpm和mysql的用户权限如何配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇nginx、php-fpm和mysql的用户权限如何配置文章都会有所收获,下面我们一起来看
2023-07-02

Docker容器配置Nginx实例分享

这篇文章主要介绍了Docker容器配置Nginx实例分享的相关资料,需要的朋友可以参考下作为目前最火的应用,Docker 确实存在着其独到之处,无论是程序猿还是运维都应该听说过 Docker 的大名,Docker 已经走过了许多的坑,目前最
2023-06-05

PHP Docker 和容器化

docker 通过容器化使 php 应用程序在不同环境中实现一致、可移植的部署。它简化了部署、测试和可伸缩性:在本地机器上安装 docker。创建一个包含 dockerfile 的 php 容器,其中包含构建容器的指令。运行容器,公开端口以
PHP Docker 和容器化
2024-05-05

Docker容器中的Nginx安全头设置与防护(如何在Docker中为Nginx配置安全响应头?)

在Docker容器中为Nginx配置安全响应头至关重要,步骤包括:编辑配置文件、添加安全响应头、保存配置和重启Nginx。安全响应头包括:STS:强制HTTPS连接XFO:防止点击劫持XCO:防止MIME嗅探XXP:启用XSS过滤器CSP:限制恶意内容执行
Docker容器中的Nginx安全头设置与防护(如何在Docker中为Nginx配置安全响应头?)
2024-04-02

Docker容器化Nginx的容灾备份与恢复策略(如何在Docker中为Nginx设置容灾备份与恢复机制?)

通过Docker容器化Nginx,制定容灾备份和恢复策略至关重要。定期备份包括增量备份和完全备份,应存储在多个位置。恢复策略涉及从备份恢复单个容器或整个应用程序。其他容灾实践包括容器编排、负载均衡、健康检查和日志记录。通过选择合适的工具、定义备份计划、自动化备份和建立恢复程序,可以确保应用程序在意外事件中快速恢复。定期测试恢复并实施这些措施,可以显著提高应用程序的可用性和数据完整性。
Docker容器化Nginx的容灾备份与恢复策略(如何在Docker中为Nginx设置容灾备份与恢复机制?)
2024-04-02

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器化

导语:随着容器化技术的快速发展,越来越多的开发者开始关注使用Docker来进行应用程序的部署和管理。本文将介绍如何使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器化,并给出具体的代码示例,帮助读者更好地理
2023-10-21

Docker容器化Nginx的端口映射与网络配置(如何在Docker中配置Nginx的端口映射和网络?)

通过Docker容器化Nginx可增强隔离性、可移植性和可扩展性。端口映射允许将容器端口与主机端口关联,而网络配置可定义容器的网络访问属性。默认网络模式为bridge,但host模式可共享主机的网络接口。其他网络配置选项包括别名、暴露端口、链接以及DNS服务器和域的指定。
Docker容器化Nginx的端口映射与网络配置(如何在Docker中配置Nginx的端口映射和网络?)
2024-04-02

Docker容器化Nginx的监控与告警实现(如何监控并设置告警运行在Docker中的Nginx?)

通过Dockerstats监测资源使用情况,使用Prometheus和Grafana构建可视化仪表盘。利用Prometheus警报管理器和Alertmanager规则设置告警,并配置Slack或电子邮件接收器。实施步骤包括部署Prometheus和Grafana、收集容器指标、创建仪表盘、配置警报管理器、设置接收器并测试告警。此外,建议采用滚动更新、自动缩放、数据备份和安全加固等最佳实践。
Docker容器化Nginx的监控与告警实现(如何监控并设置告警运行在Docker中的Nginx?)
2024-04-02

Nginx作为Docker容器的Web服务器配置详解(在Docker中如何配置Nginx作为Web服务器?)

在Docker中配置Nginx作为Web服务器涉及以下步骤:创建包含Nginx和依赖项的Docker镜像。构建镜像并运行Nginx容器,将容器端口映射到主机端口。优化Nginx配置,包括虚拟主机、根目录、错误页面、SSL/TLS、缓存等。使用日志记录和监控工具管理和监控容器。Nginx配置的优化可以提高性能、安全性、可用性和可管理性。通过Nginx的强大功能和Docker的轻量级,可以轻松部署和托管可扩展、健壮且安全的Web应用程序。
Nginx作为Docker容器的Web服务器配置详解(在Docker中如何配置Nginx作为Web服务器?)
2024-04-02

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器扩展

随着容器技术的发展,越来越多的开发者开始使用Docker来构建和管理应用程序的环境。在这篇文章中,我们将以一个PHP应用程序为例,演示如何使用Docker Compose、Nginx和MariaDB来扩展容器化的环境。Docker Comp
2023-10-21

Nginx作为Docker容器的反向代理配置指南(在Docker中如何配置Nginx作为反向代理?)

本指南详细介绍如何配置Nginx作为Docker容器的反向代理。它包括准备工作、创建反向代理容器、配置应用程序容器、测试反向代理、高级配置和故障排除。配置涉及创建nginx.conf文件、指定反向代理设置和构建容器。高级配置包括SSL/TLS加密、负载均衡、健康检查和缓存。故障排除涉及检查日志、验证容器连接和检查Nginx配置。
Nginx作为Docker容器的反向代理配置指南(在Docker中如何配置Nginx作为反向代理?)
2024-04-02

Nginx与Docker:构建容器化API网关的实践(如何利用Docker和Nginx构建API网关?)

利用Docker和Nginx构建API网关是一种有效方式,可创建现代、可扩展且可配置的网关解决方案。通过使用Docker构建容器化API网关并利用Nginx的功能,开发人员可以轻松实现反向代理、负载均衡和身份验证等网关功能。通过修改Nginx配置文件并使用Docker工具,可以轻松配置、管理和扩展网关,以及监控其健康和性能。
Nginx与Docker:构建容器化API网关的实践(如何利用Docker和Nginx构建API网关?)
2024-04-02

Docker容器中怎么设置负载均衡

本篇文章给大家分享的是有关Docker容器中怎么设置负载均衡,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。关于负载均衡负载平衡(Load balancing)是一种计算机网络技
2023-06-10

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录