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 文件上传进度条的两种实现方法的代码
Nov 25 PHP
Php注入点构造代码
Jun 14 PHP
黑夜路人出的几道php笔试题
Aug 04 PHP
php一个找二层目录的小东东
Aug 02 PHP
php之curl设置超时实例
Nov 03 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
Jul 12 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
php 猴子摘桃的算法
Jun 20 PHP
Ajax+PHP实现的模拟进度条功能示例
Feb 11 PHP
YII2框架中actions的作用与使用方法示例
Mar 13 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
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
2007/04/20 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
js数据类型检测总结
2018/08/05 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
如何教少儿学习Python编程
2020/07/10 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
学校办公室主任职责
2013/12/27 职场文书
食品安全检查制度
2014/02/03 职场文书
优秀求职信
2014/05/29 职场文书
旷工检讨书1000字
2015/01/01 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书