设置 php-ag捕鱼王app官网

设置 php-fpm 和 nginx docker 容器

作者:迹忆客 最近更新:2023/03/28 浏览次数:

本文将讨论在 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 并将内容更改为以下内容。


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

上一篇:

下一篇:

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 php 中获取时间差的分钟数

发布时间:2023/03/29 浏览次数:204 分类:php

本文介绍了如何在 php 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。

发布时间:2023/03/29 浏览次数:156 分类:php

本教程演示了如何将用户从页面重定向到 php 中的其他页面

php 分页

发布时间:2023/03/29 浏览次数:95 分类:php

本教程介绍如何在 php 中对数据库行进行分页

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图