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.ini中文版
Oct 09 PHP
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
PHP内置的Math函数效率测试
Dec 01 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
php实现网站文件批量压缩下载功能
Oct 28 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
PHP编程入门的基本语法知识点总结
Jan 26 PHP
php编程每天必学之表单验证
Mar 01 PHP
PHP微信开发之有道翻译
Jun 23 PHP
PHP合并两个或多个数组的方法
Jan 20 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 GeoIP的使用教程
2011/03/09 PHP
深入php多态的实现详解
2013/06/09 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
extjs 为某个事件设置拦截器
2010/01/15 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
vue组件间通信解析
2017/03/01 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
手动用webpack搭建第一个ReactApp的示例
2018/04/11 Javascript
js实现星星打分效果
2020/07/05 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
Python中的startswith和endswith函数使用实例
2014/08/25 Python
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
简洁的十分钟Python入门教程
2015/04/03 Python
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
python正则中最短匹配实现代码
2018/01/16 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
大学生素质拓展活动方案
2014/02/11 职场文书
元旦标语大全
2014/10/09 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
MySQL系列之四 SQL语法
2021/07/02 MySQL