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 调用远程url的六种方法小结
Nov 02 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
PHP连接局域网MYSQL数据库的简单实例
Aug 26 PHP
PHP empty函数报错解决办法
Mar 06 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
php实现的操作excel类详解
Jan 15 PHP
Yii rules常用规则示例
Mar 15 PHP
PHP中的表达式简述
May 29 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP接口类(interface)的定义、特点和应用示例
May 18 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
地摊中国 - 珍藏老照片
2020/08/18 杂记
谈谈新手如何学习PHP
2006/12/23 PHP
php.ini 配置文件的深入解析
2013/06/17 PHP
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
PHP缓冲区用法总结
2016/02/14 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
python机器学习库xgboost的使用
2020/01/20 Python
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
小学综合实践活动总结
2014/07/07 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
社区班子对照检查材料
2014/08/27 职场文书
教师自查自纠材料
2014/10/14 职场文书
买房协议书范本
2014/10/23 职场文书
格林童话读书笔记
2015/06/30 职场文书
初中美术教学反思
2016/02/17 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
Pygame Time时间控制的具体使用详解
2021/11/17 Python
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers