Docker 安装 PHP并与Nginx的部署实例讲解


Posted in PHP onFebruary 27, 2021

安装 PHP 镜像

查找 Docker Hub 上的 php 镜像:

Docker 安装 PHP并与Nginx的部署实例讲解

此外,我们还可以用 docker search php 命令来查看可用版本:

Docker 安装 PHP并与Nginx的部署实例讲解

这里我们拉取官方的镜像,标签为7.3.24-fpm-stretch

docker pull php:7.3.24-fpm-stretch

Docker 安装 PHP并与Nginx的部署实例讲解

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为php,标签为7.3.24-fpm-stretch的镜像。

Docker 安装 PHP并与Nginx的部署实例讲解

Nginx + PHP 部署

Nginx 部署可以查看本人博客中:Docker 安装 Nginx,一些 Nginx 的配置参考这篇文章。

启动 PHP:

docker run -d -v /root/nginx/www:/var/www/html -p 9000:9000 --name xy_phpfpm php:7.3.24-fpm-stretch

参数说明

-d 让容器在后台运行

-p 添加主机到容器的端口映射

-v 添加目录映射,即主机上的 /root/nginx/www和容器中/var/www/html目录是同步的
-v /root/nginx/www:/var/www/html : 将主机中项目的目录 /root/nginx/www 挂载到容器的/var/www/html

?name myphp-fpm : 将容器命名为 my_phpfpm

查看PHPfpm端口9000是否启动

这步很重要,没启动的话需要重装php镜像

netstat -tunlp |grep 9000

Docker 安装 PHP并与Nginx的部署实例讲解

netstat
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

netstat 查看端口占用语法格式:

netstat -tunlp | grep 端口号

-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名

宿主机创建挂在目录

创建 ~/nginx/conf/conf.d 目录:

mkdir ~/nginx/conf/conf.d

Docker 安装 PHP并与Nginx的部署实例讲解

在该目录下添加 ~/nginx/conf/conf.d/runoob-test-php.conf 文件,内容如下:

server {
 listen  80;
 server_name localhost;

 location / {
  root /usr/share/nginx/html;
  index index.php index.html index.htm;
 }

 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 /var/www/html/$fastcgi_script_name;
  include  fastcgi_params;
 }
}

配置文件说明:

php:9000: 表示 php-fpm 服务的 URL,下面我们会具体说明。
/var/www/html/: 是 xy_phpfpm容器 中 php 文件的存储路径,映射到本地的 ~/nginx/www 目录。

启动 nginx:

docker run --name ngixn -p 80:80 -d \
 -v /root/nginx/www:/usr/share/nginx/html:ro \
 -v /root/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
 --link xy_phpfpm:php \
 nginx

参数说明

-p 80:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口。
~/nginx/www: 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
~/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
--link xy_phpfpm:php: 把 xy_phpfpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。

接下来我们在 ~/nginx/www 目录下创建 index.php,代码如下:

<?php
echo phpinfo();
?>

浏览器打开 http://106.52.36.65:8083/index.php,显示如下:

Docker 安装 PHP并与Nginx的部署实例讲解

说明

凡是修改了nginx配置都需要重启nginx服务

docker stop ngixn
docker start ngixn

到此这篇关于Docker 安装 PHP并与Nginx的部署实例讲解的文章就介绍到这了,更多相关Docker 安装 PHP并与Nginx的部署内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
层叠菜单的动态生成
Oct 09 PHP
做一个有下拉功能的留言版
Oct 09 PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
初品cakephp 入门基础
Feb 16 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
CI框架中通过hook的方式实现简单的权限控制
Jan 07 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
js代码实现微博导航栏
Jul 30 PHP
PHP中类的继承和用法实例分析
May 24 PHP
laravel migrate初学常见错误的解决方法
Oct 11 PHP
详解PHP设计模式之依赖注入模式
May 25 PHP
PHP加MySQL消息队列深入理解
Feb 27 #PHP
php慢查询日志和错误日志使用详解
Feb 27 #PHP
php的单例模式及应用场景详解
Feb 27 #PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 #PHP
PHP并发场景的三种解决方案代码实例
Feb 27 #PHP
常见的5个PHP编码小陋习以及优化实例讲解
Feb 27 #PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 #PHP
You might like
用Flash图形化数据(一)
2006/10/09 PHP
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
javascript 表单验证常见正则
2009/09/28 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
Python多进程编程技术实例分析
2014/09/16 Python
从Python程序中访问Java类的简单示例
2015/04/20 Python
Python tkinter label 更新方法
2018/10/11 Python
WxPython建立批量录入框窗口
2019/02/27 Python
浅谈Python中eval的强大与危害
2019/03/13 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
公司行政经理岗位职责
2013/12/24 职场文书
工作个人的自我评价
2014/01/14 职场文书
四年级科学教学反思
2014/02/10 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
买卖协议书范本
2014/04/21 职场文书
升学宴学生答谢词
2015/01/05 职场文书
合同审查法律意见书
2015/06/04 职场文书
小学生运动会广播
2015/08/19 职场文书
责任书格式
2019/04/18 职场文书