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 相关文章推荐
第十四节 命名空间 [14]
Oct 09 PHP
php中通过Ajax如何实现异步文件上传的代码实例
May 07 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
如何使用php实现评委评分器
Jul 31 PHP
php生成图片验证码的方法
Apr 15 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
基于Laravel5.4实现多字段登录功能方法示例
Aug 11 PHP
php微信扫码支付 php公众号支付
Mar 24 PHP
thinkPHP和onethink微信支付插件分享
Aug 11 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 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编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
python使用pil库实现图片合成实例代码
2018/01/20 Python
python使用matplotlib画饼状图
2018/09/25 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
python+opencv实现车道线检测
2021/02/19 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
浅析HTML5 Landmark
2020/09/11 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
煤矿安全生产月活动总结
2014/07/05 职场文书
公司委托书格式范本
2014/09/16 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
推广普通话的宣传语
2015/07/13 职场文书
2015中秋祝酒词
2015/08/12 职场文书
2016年国陪研修感言
2015/11/18 职场文书