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 smarty模版引擎中变量操作符及使用方法
Dec 11 PHP
PHP抽象类 介绍
Jun 13 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
Jun 13 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 PHP
php递归json类实例
Dec 02 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
PHP flush 函数使用注意事项
Aug 26 PHP
PHP文件上传操作实例详解
Sep 27 PHP
php使用curl实现ftp文件下载功能
May 16 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
Sep 29 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 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
Javascript验证方法大全
2015/09/21 Javascript
Vue响应式原理详解
2017/04/18 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
Python 类的继承实例详解
2017/03/25 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
Python中extend和append的区别讲解
2019/01/24 Python
python多线程并发实例及其优化
2019/06/27 Python
python判断正负数方式
2020/06/03 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
环保建议书
2014/03/12 职场文书
cf收人广告词
2014/03/14 职场文书
班委竞选演讲稿
2014/04/28 职场文书
党的群众路线学习材料
2014/05/16 职场文书
2015年圣诞节寄语
2015/08/17 职场文书
工作简历的自我评价
2019/05/16 职场文书
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python
spring boot中nativeQuery的用法
2021/07/26 Java/Android
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers