Docker 安装 PHP并与Nginx的部署实例讲解

 更新时间:2021年02月27日 17:15:42   作者:刘远山  
这篇文章主要介绍了Docker 安装 PHP并与Nginx的部署实例讲解,文中图文操作步骤讲解的很清楚,有感兴趣的同学可以研究下

安装 PHP 镜像

查找 Docker Hub 上的 php 镜像:


在这里插入图片描述

此外,我们还可以用 docker search php 命令来查看可用版本:


在这里插入图片描述

这里我们拉取官方的镜像,标签为7.3.24-fpm-stretch

docker pull php:7.3.24-fpm-stretch

在这里插入图片描述

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为php,标签为7.3.24-fpm-stretch的镜像。


在这里插入图片描述

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

在这里插入图片描述

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 

在这里插入图片描述

在该目录下添加 ~/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,显示如下:


在这里插入图片描述

说明

凡是修改了nginx配置都需要重启nginx服务

docker stop ngixn
docker start ngixn

到此这篇关于Docker 安装 PHP并与Nginx的部署实例讲解的文章就介绍到这了,更多相关Docker 安装 PHP并与Nginx的部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • php异常处理方法实例汇总

    php异常处理方法实例汇总

    这篇文章主要介绍了php异常处理方法,实例汇总了常见的php异常处理技巧,非常具有实用价值,需要的朋友可以参考下
    2015-06-06
  • 深入eAccelerator与memcached的区别详解

    深入eAccelerator与memcached的区别详解

    本篇文章是对eAccelerator与memcached的区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP关联数组实现根据元素值删除元素的方法

    PHP关联数组实现根据元素值删除元素的方法

    这篇文章主要介绍了PHP关联数组实现根据元素值删除元素的方法,实例分析了php差集运算函数array_diff及数组遍历对比删除的两种方法,需要的朋友可以参考下
    2015-06-06
  • PHP设计模式之装饰者模式代码实例

    PHP设计模式之装饰者模式代码实例

    这篇文章主要介绍了PHP设计模式之装饰者模式代码实例,装饰者模式就是不修改原类代码和继承的情况下动态扩展类的功能,本文就给出了代码实例,需要的朋友可以参考下
    2015-05-05
  • php连接oracle数据库的核心步骤

    php连接oracle数据库的核心步骤

    这篇文章主要介绍了php连接oracle数据库的核心步骤,简要分析了php安装Oracle扩展设置及连接测试代码,非常简单易懂,需要的朋友可以参考下
    2016-05-05
  • PHP类的使用 实例代码讲解

    PHP类的使用 实例代码讲解

    用户定义的类,也是学好 PHP 所必备的条件之一。而 PHP 的类,和其它的面向对象语言比较起来,还算蛮单纯的。
    2009-12-12
  • php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)

    php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)

    PHP模拟登陆获取163邮箱联系人的实现代码,需要的朋友可以参考下。
    2011-04-04
  • PHP 遍历文件实现代码

    PHP 遍历文件实现代码

    小笔记, PHP 遍历所有文件, 包括子目录中的文件. 和压缩文件的类结合起来的话, 就可以打包整个目录了.
    2011-05-05
  • php SQL之where语句生成器

    php SQL之where语句生成器

    每次都写SQL条件语句,很麻烦,容易出错,写了个函数整合到数据库类里,用来根据传入的数组,自动生成 SQL的where条件语句
    2009-03-03
  • PHP重定向与伪静态区别

    PHP重定向与伪静态区别

    伪静态是SEO重要的方法,通过重定向来实现,并且可以通过重定向来隐藏网站的技术,过滤异常访问。本课分为两部分,前半部分详细介绍Apache重定向的基础知识,后半部分通过多个实际案例再次加深对重定向的理解,并且会演示各种重定向设置后的实际效果。
    2017-02-02

最新评论