大家好,我是小麦。今天给大家分享的是关于使用Docker一键安装PHP环境的解决方案。该方案具有如下的特点:
- 支持多个PHP版本,如PHP7.2、PHP7.3、PHP7.4、PHP8.0、PHP8.1。同时也支持也是完全支持自定义PHP版本,只要要简单修改配置即可完成安装你所需要的版本。
- 支持一键安装PHP所有的套件,在日常中PHP经常会涉及到MySQL、Redis、Memcached、MongoDB、Elasticsearch、Kafka等服务的操作,如果是自己搭建这样的环境,将会是一个很繁琐的过程。该解决方案将为你一键安装所有这些服务,并且支持一键卸载,非常的简单好用。
- 轻松安装PHP扩展,PHP很多时候的操作都需要一些扩展函数,安装扩展本身是一个很简单的过程,但在一些环境中,安装扩展可能会遇到一些问题,该解决方案直接使用一条命令即可安装需要的扩展,操作是非常的简单好用。
- 支持HTTPS和HTTP/2、完全开源、跨平台等众多特点。
安装步骤
安装Docker
安装Docker是非常简单的,直接到Docker官网下载对应系统的安装包,然后按照安装包的步骤进行安装即可。安装好之后配置一下镜像源,这样下载镜像的速度就会快一些。 直接添加如下配置即可:
json
"registry-mirrors": [
"https://hub-mirror.c.163.com"
]
下载代码仓库
dnmp在Github上开源,但考虑到Github访问有所限制,因此作者在Gitee上创建了一个仓库,大家可以直接到Gitee上下载。Gitee下载地址
bash
git clone https://gitee.com/yeszao/dnmp.git
下载好之后,大致目录是这样的:
yaml
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2024/3/26 11:09 .github
d----- 2024/3/26 11:09 data
d----- 2024/3/26 11:09 logs
d----- 2024/3/26 11:09 services
d----- 2024/3/26 11:09 www
-a---- 2024/3/26 11:09 37 .dockerignore
-a---- 2024/3/26 11:09 78 .gitattributes
-a---- 2024/3/26 11:09 99 .gitignore
-a---- 2024/3/26 11:09 1874 bash.alias.sample
-a---- 2024/3/26 11:09 10350 docker-compose.sample.yml
-a---- 2024/3/26 11:09 6865 env.sample
-a---- 2024/3/26 11:09 1066 LICENSE
-a---- 2024/3/26 11:09 26271 README-all-en.md
-a---- 2024/3/26 11:09 2230 README-en.md
-a---- 2024/3/26 11:09 33843 README.md
-a---- 2024/3/26 11:09 69126 snapshot.png
直接修改.enx.example
和docker-compose.sample.yml
两个文件就可以了,.env
文件是配置的环境变量,配置的是安装软件的版本,安装目录,以及一些端口号信息。docker-compose.sample.yml
则是执行docker-compose
命令所必须要的一些配置。 直接执行如下两条命令就可以了:
bash
cp .env.sample .env
cp .docker-compose.sample.yml .docker-compose.yml
环境安装
安装环境,你可以安装docker-compose.yml文件中的所有服务,也可以指定安装所需要的服务。
bash
# 安装执行的服务
docker-compose up -d nginx
# 安装所有服务
docker-compose up -d
这里的服务名称就是docker-composer.yml文件中定义的服务名称。
服务管理
这里我以安装NGINX作为演示示例,其他的服务也是同样的操作。
bash
# 安装NGINX
docker-compose up -d nginx
# 查看当前启动的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
246bf5673f97 dnmp-nginx "/docker-entrypoint...." 19 seconds ago Up 3 seconds 0.0.0.0:443->443/tcp, 0.0.0.0:8080->80/tcp nginx
# 重启服务
docker restart nginx
# 停止服务
docker stop nginx
# 启动服务
docker start nginx
在安装之后,所有的容器和镜像操作,都是使用docker命令操作即可。
dnmp官网文档所有的操作也是写的非常的详细,更多的功能和配置,可以直接参考官网文档配置即可。
配置域名
在这里单独总结一下如何配置域名。一般都是使用nginx
作为web服务,所以只需要配置nginx
的配置文件即可。
- 进入NGINX配置文件目录,默认情况所有的NGINX配置文件都是放在该目录下面。
bash
cd dnmp\services\nginx\conf.d
- 创建配置文件,这里我们创建一个名为
localhost.demo.conf
的配置文件,域名也是localhost.demo.com
,直接按照如下的操作即可。
bash
touch localhost.demo.com.conf
- 写入如下内容。
ini
server {
listen 80;
# 域名
server_name localhost.demo.com;
# 网站程序根目录
root /www/localhost/demo/public;
index index.php index.html index.htm;
access_log /var/log/nginx/nginx.localhost.demo.com.access.log main;
error_log /var/log/nginx/nginx.localhost.demo.com.error.log warn;
error_page 500 502 503 504 /50x.html;
location ~ [^/].php(/|$) {
# php:9000使用php容器,连接该容器的9000端口。如果你的php容器名称是其他名称,直接修改为对应名称即可。端口也是类似,推荐端口使用默认的。
fastcgi_pass php:9000;
include fastcgi-php.conf;
include fastcgi_params;
}
# ThinkPHP框架伪静态设置规则
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
# Laravel框架伪静态设置规则
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
到此dnmp的安装和介绍就结束了。