构建一个基于Docker的nginx和php-fpm环境主要包括以下几个步骤:首先创建一个Dockerfile并配置相关内容;接着通过运行Docker容器来构建和启动服务;最后测试配置的正确性并进行容器化部署。具体步骤如下:

  1. 安装Docker:请确保本地已经安装了Docker。若尚未安装,请访问Docker官网下载和安装适用于你系统的Docker版本。
  2. 创建Dockerfile:在项目根目录,创建一个名为 Dockerfile的文件,并打开该文件填写以下配置:
FROM nginx:stable-alpine

RUN apk update && apk add php-fpm \
  && mkdir /run/nginx

COPY nginx.conf /etc/nginx/nginx.conf
COPY php-fpm.conf /etc/php7/php-fpm.conf

CMD php-fpm7 && nginx

EXPOSE 80

这个Dockerfile基于轻量级的Alpine Linux和nginx镜像来创建一个新的镜像。它将安装并配置php-fpm,然后将自定义的nginx和php-fpm配置文件复制到容器中。最后,它将启动php-fpm和nginx,并暴露80端口以供外部访问。

  1. 添加配置文件:接下来,我们需要创建两个配置文件,一个用于nginx,另一个用于php-fpm。这将分别命名为 nginx.confphp-fpm.conf

nginx.conf:

worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    server_tokens       off;

    upstream php {
        server         unix:/var/run/php/php7.0-fpm.sock;
    }
 
    server {
        listen          80;
        server_name     localhost;

        root            /usr/share/nginx/html;
        index           index.php index.html;

        location / {
            try_files        $uri $uri/ /index.php$is_args$args;
        }

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

php-fpm.conf:

[global]

pid = /var/run/php-fpm.pid
error_log = /var/log/php7/error.log

[www]

listen = /var/run/php/php7.0-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

user = nginx
group = nginx

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500
  1. 构建镜像:在完成了Dockerfile和配置文件之后,运行以下命令以在本地构建Docker镜像:
docker build -t docker-nginx-php-fpm .
  1. 启动容器:成功构建镜像后,运行以下命令以启动一个新的容器:
docker run -itd -p 8080:80 --name nginx-php-fpm-test docker-nginx-php-fpm
  1. 测试配置:在本地创建一个 index.php文件,其中包含以下内容:
<?php phpinfo(); ?>

将这个文件复制到容器的 /usr/share/nginx/html目录下:

docker cp index.php nginx-php-fpm-test:/usr/share/nginx/html/
  1. 测试运行情况:使用浏览器访问 http://localhost:8080/index.php。如果一切配置正确,你应该能看到PHP信息页面。此时,你已经成功地构建了一个基于Docker的nginx和php-fpm环境。

从这里开始,你可以根据自己的项目需求对配置文件进行修改,并将项目部署到Docker容器中。记住要实现一个完整的、生产级的应用环境,你可能还需要添加数据库支持、安全设置和其他功能模块。

云服务器推荐

蓝易云国内/海外高防云服务器推荐


海外免备案云服务器链接:www.tsyvps.com

蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。


百度搜索:蓝易云

最后修改:2023 年 10 月 24 日
如果觉得我的文章对你有用,请随意赞赏