使用docker部署php服务的详细步骤

 更新时间:2024年03月24日 10:37:17   作者:ayzen1988  
Docker镜像是一个可移植的、自包含的单元,其中包含了运行应用程序所需的所有文件、配置和依赖项,当使用Docker部署PHP应用程序时,可以将PHP应用程序和其依赖项打包到一个称为Docker镜像的独立容器中,北本文介绍了使用docker部署php服务的详细步骤,需要的朋友可以参考下

前言

前期准备,服务器需要先安装好docker、docker-compose,文章内容不涉及如何安装docker的相关内容。

制作的内容,使用nginx+php的新基础镜像部署php服务,然后使用openresty做反向代理。

nginx+php的新基础镜像制作过程,可以参考之前的文章,地址如下:nginx+php的新基础镜像制作全过程_nginx_脚本之家 (jb51.net)

一、安装openresty

1、创建openresty相关目录,执行如下命令。

mkdir -p /docker/openresty/{conf.d,logs,html,cert}
cd /docker/openresty/

2、编写yaml文件,内容如下;version替换成自己的docker-compose版本。

vim docker-compose.yml
version: '2.2.2'
services:
    openresty:
        image: openresty/openresty
        restart: unless-stopped
        ports:
            - "80:80"
            - "443:443"
        container_name: openresty
        volumes:
            - "./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf"
            - "./conf.d:/usr/local/openresty/nginx/conf/conf.d"
            - "./html:/usr/local/openresty/nginx/html"
            - "./logs:/usr/local/openresty/nginx/logs"
            - "./cert:/usr/local/openresty/nginx/cert"
        networks:
            - mynet
networks:
    mynet:
        name: mynet
        driver: bridge

3、编写nginx配置,内容如下。

vim nginx.conf
worker_processes  1;
error_log logs/error.log;
events {
    worker_connections 1024;
}
http {
    server {
        listen 80;
        location / {
            default_type text/html;
            content_by_lua_block {
                ngx.say("<p>hello, ayzen!$</p>")
            }
        }
    }
}

4、启动openresty,执行如下命令。

docker-compose up -d

5、检查服务是否正常运行,执行如下命令。

docker-compose ps -a

返回如下内容,说明服务已正常启动,正在运行。

6、检查请求是否正常,执行如下命令。

curl http://127.0.0.1

请求正常,会返回nginx配置的内容,比如下面这样。

7、至此openresty已部署完成,并且可以正常运行响应请求。

二、部署php服务

1、创建test1项目相关目录,执行如下命令。

mkdir -p /docker/test1/html
cd /docker/test1/

2、编写index.php文件,内容如下。

vim html/index.php
<?php
echo "hello ayzen!this is test1!\r\n";

3、编写yaml文件,内容如下;version替换成自己的docker-compose版本。

vim docker-compose.yml
version: '2.2.2'
services:
    web:
        image: ayzen/nginx-php8.3.3
        ports:
            - "8081:80"
        container_name: test1
        command: ["/start.sh"]
        volumes:
            - "./html:/usr/local/nginx/html"
        networks:
            - mynet
networks:
    mynet:
        name: mynet
        driver: bridge

4、启动test1项目,执行如下命令。

docker-compose up -d

5、检查项目是否正常运行,执行如下命令。

docker-compose ps -a

返回如下内容,说明项目已正常启动,正在运行。

6、检查项目请求是否可以正常响应,执行如下命令。

curl http://127.0.0.1:8081/index.php

请求正常会返回如下内容。

7、至此test1项目已正常部署完成。

三、项目配置对外提供服务

1、前面的test1项目虽然可以正常提供服务了,但是也只限制与内网当中;如果需要对外提供服务需要加上openresty配合。

2、修改nginx配置增加域名请求,在http模块增加server内容如下。

    server {
        listen 80;
        server_name test1.ayzen.cn;
 
        location / {
            proxy_pass http://test1;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

3、重启openresty,执行如下命令。

docker-compose down && docker-compose up -d

4、域名解析,将test1.ayzen.cn指向服务器IP;此刻没有域名的可以通过修改hosts实现,执行如下命令。

vim /etc/hosts
#增加一行内容如下
127.0.0.1   test1.ayzen.cn

5、验证请求是否可以正常代理到test1容器,执行如下命令。

curl http://test1.ayzen.cn/index.php

 如果请求正常返回如下内容,说明配置已生效。

6、至此,代理配置已完成,test1可以正常对外提供服务了。

总结

如何使用docker部署php服务,简单来说只需要三个步骤。

1、使用docker运行openresty容器;

2、部署php服务;

3、配置域名;

因为演示的原因,php项目只有一个index.php文件。在使用过程中可以替换成真正的项目代码。

到此这篇关于使用docker部署php服务的详细步骤的文章就介绍到这了,更多相关docker部署php服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker配置WebSSH的实现

    Docker配置WebSSH的实现

    本文主要介绍了Docker配置WebSSH的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • docker使用dockercompose编排一个Hadoop集群方式

    docker使用dockercompose编排一个Hadoop集群方式

    这篇文章主要介绍了docker使用dockercompose编排一个Hadoop集群方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Docker容器之间的通信的方法实现

    Docker容器之间的通信的方法实现

    本文主要介绍了Docker容器之间的通信的方法实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • docker部署Nestjs的简单配置实现

    docker部署Nestjs的简单配置实现

    使用Docker部署NestJS应用程序可以确保在不同的环境中运行一致,并且避免了由于依赖关系或配置问题导致的部署错误,本文主要介绍了docker来部署Nestjs的简单配置,感兴趣的可以了解一下
    2024-02-02
  • 使用Dockerfile构建java web环境

    使用Dockerfile构建java web环境

    用dockerfile构建一个Java的web环境,主要分为2步,第一步是在镜像中安装jdk并配置环境变量,第二步是安装tomcat,下面分步骤给大家详细介绍,一起看看吧
    2016-12-12
  • docker如何动态查看日志最后100行

    docker如何动态查看日志最后100行

    这篇文章主要介绍了docker如何动态查看日志最后100行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教<BR>
    2024-01-01
  • 详解如何用docker安装laravel开发环境

    详解如何用docker安装laravel开发环境

    本篇文章主要介绍了详解如何用docker安装laravel开发环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • pod污点taint 与容忍度tolerations详解

    pod污点taint 与容忍度tolerations详解

    这篇文章主要为大家介绍了pod污点taint与容忍度tolerations示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Docker网络配置(桥接网络和自定义网络)自定义网络设置ip方式

    Docker网络配置(桥接网络和自定义网络)自定义网络设置ip方式

    这篇文章主要介绍了Docker网络配置(桥接网络和自定义网络)自定义网络设置ip方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • windows 10安装和使用docker

    windows 10安装和使用docker

    这篇文章介绍了windows 10安装和使用docker的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07

最新评论