商城首页欢迎来到中国正版软件门户

您的位置:首页 > 编程开发 >设置 PHP-FPM 和 Nginx Docker 容器

设置 PHP-FPM 和 Nginx Docker 容器

  发布于2025-01-01 阅读(0)

扫一扫,手机访问

本文将讨论在 Docker 上进行本地开发时如何设置 PHPphp-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 命令。

输出:

设置 PHP-FPM 和 Nginx Docker 容器

让我们将 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 命令会产生下图。

设置 PHP-FPM 和 Nginx Docker 容器

本文转载于:https://www.lsjlt.com/news/569143.html 如有侵犯,请联系admin@zhengruan.com删除

热门关注