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 相关文章推荐
生成静态页面的PHP类
Jul 15 PHP
转PHP手册及PHP编程标准
Dec 17 PHP
php下用GD生成生成缩略图的两个选择和区别
Apr 17 PHP
改变Apache端口等配置修改方法
Jun 05 PHP
PHP 常用函数库和一些实用小技巧
Jan 01 PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 PHP
CI框架验证码CAPTCHA辅助函数用法实例
Nov 05 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
从wamp到xampp的升级之路
Apr 08 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 PHP
PHP微信网页授权的配置文件操作分析
May 29 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
PHP中array_slice函数用法实例详解
2014/11/25 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
了解JavaScript函数中的默认参数
2019/05/30 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
Python的Django框架中if标签的相关使用
2015/07/15 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
python获取服务器响应cookie的实例
2018/12/28 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
副总经理任命书
2014/06/05 职场文书
学校清明节活动总结
2014/07/04 职场文书
岳麓书院导游词
2015/02/03 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
Redis高可用集群redis-cluster详解
2022/03/20 Redis