Docker 部署PHP项目
前言
最近需要使用一个别的大佬写好的api,是用php写的,大佬那边提供的服务随时可能失效,所以得在自己的服务器部署(大佬提供的php项目源码),就不得不简单学习了一下docker 如何部署php项目。
部署方式
docker下 nginx+php:5.6-fpm
说明由于Nginx无法解析动态网页,所以动态请求一般需要php来完成.通过fastcgi, 也就是php-fpm(fastcgi的实现)来实现.
开始部署
拉取镜像
# 拉取nginx镜像
docker pull nginx
# 拉取php:5.6-fpm镜像
docker pull php:5.6-fpm
测试启动nginx
docker run --name nginx-test -p 8080:80 -d nginx
参数说明:
--name : 自定义容器名称
-p : 端口映射,由本地宿主机端口映射到容器内部端口(nginx默认监听80端口)
-d : 让容器在后台运行
访问域名+端口号,如果显示nginx的欢迎界面代表nginx就没问题了
启动php:5.6-fpm,挂载数据文件
docker run --name myphp-fpm -v /www/php:/www -d php:5.6-fpm
参数说明:
-v : 数据挂载。左侧为宿主机内你的文件目录,右侧为容器内目录(我这里就用www目录)
重新启动nginx
先停止删除刚刚测试用的nginx容器(因为它可能占用了你开放的为数不多的端口)
# 停止容器
docker stop nginx-test
# 移除容器
docker rm nginx-test
在宿主机下创建一份nginx配置文件,命名为default.conf
配置文件内容如下:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
配置文件说明:
- php:9000: 表示 php-fpm 服务的 URL。
- /www/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 /www/php 目录。
然后启动我们的nginx
docker run --name runoob-php-nginx -p 8080:80 -d -v /www/php:/usr/share/nginx/html -v /home/mount/nginx/default.conf:/etc/nginx/conf.d/default.conf --link myphp-fpm:php nginx
参数说明:
/www/php: 是本地 html 文件的存储目录,/usr/share/nginx/html是容器内 html 文件的存储目录。/home/mount/nginx/default.conf: 是本地 nginx 配置文件,/etc/nginx/conf.d/default.conf是容器内 nginx 配置文件。--link myphp-fpm:php: 把 myphp-fpm 的网络并入 nginx,并通过修改 nginx 的/etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。
访问测试
看到我们宿主机目录下:

已经放好了一个index.html
访问xxxx:8080

访问大神写的php项目,也就是这个live2d_api-master(魔改看板娘的后端api)

本文介绍了使用Docker部署PHP项目的方法。因需在自己服务器部署大佬提供的PHP项目源码,作者学习了相关部署知识。采用docker下nginx+php:5.6 - fpm的部署方式,详细说明了拉取镜像、启动nginx和php:5.6 - fpm、配置nginx文件等步骤,并进行了访问测试。

&spm=1001.2101.3001.5002&articleId=110916800&d=1&t=3&u=f1685d9107e14742b37b3ff45e7c550f)
876

被折叠的 条评论
为什么被折叠?



