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 相关文章推荐
如何将数据从文本导入到mysql
Oct 09 PHP
PHP安全配置
Dec 06 PHP
php判断字符以及字符串的包含方法属性
Aug 30 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
通达OA公共代码 php常用检测函数
Dec 14 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
php实现斐波那契数列的简单写法
Jul 19 PHP
PHP中的reflection反射机制测试例子
Aug 05 PHP
php常用文件操作函数汇总
Nov 22 PHP
php构造方法中析构方法在继承中的表现
Apr 12 PHP
thinkPHP线上自动加载异常与修复方法实例分析
Dec 01 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
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
学习YUI.Ext 第七天--关于View&amp;JSONView
2007/03/10 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
python中list常用操作实例详解
2015/06/03 Python
Python读写文件方法总结
2015/06/09 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
代理商会议邀请函
2014/01/27 职场文书
老总助理工作岗位职责
2014/02/06 职场文书
结婚保证书范文
2014/04/29 职场文书
国贸专业求职信
2014/06/28 职场文书
运动会广播稿200字
2014/10/18 职场文书
工作经验交流材料
2014/12/30 职场文书
教育读书笔记
2015/07/02 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
小程序后台PHP版本部署运行 LNMP+WNMP
2021/04/01 Servers
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle