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一些服务器端特性的配置加强php的安全
Oct 09 PHP
利用PHP和AJAX创建RSS聚合器的代码
Mar 13 PHP
php+AJAX传送中文会导致乱码的问题的解决方法
Sep 08 PHP
php XMLWriter类的简单示例代码(RSS输出)
Sep 30 PHP
解析php二分法查找数组是否包含某一元素
May 23 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
php站内搜索关键词变亮的实现方法
Dec 30 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 PHP
PHP7 list() 函数修改
Mar 09 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
新闻分类录入、显示系统
2006/10/09 PHP
php 定义404页面的实现代码
2012/11/19 PHP
Yii使用技巧大汇总
2015/12/29 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
jquery显示和隐藏div特效实例
2013/02/27 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
JS定时器实例
2013/04/17 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
深入理解JS中的变量及作用域、undefined与null
2014/03/04 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
Python+Wordpress制作小说站
2017/04/14 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
python ansible服务及剧本编写
2017/12/29 Python
python实现从pdf文件中提取文本,并自动翻译的方法
2018/11/28 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
工程监理应届生求职信
2013/11/09 职场文书
工厂总经理岗位职责
2014/02/07 职场文书
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
寒假家长评语大全
2014/04/16 职场文书
任命书模板
2014/06/04 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android