文章目录

[隐藏]

开始之前

配置Nginx

配置PHP

开始之前

在开始之前,我们假设你对Docker使用已经有了一些经验。本文尝试使用Docker官方存储库来运行一个简单的PHP应用程序,环境是Nginx和PHP。首先第一件事当然是安装Docker(如果你还没安装)。第二获取Docker Compose。

配置Nginx

我们从配置Web服务器开始,这里我们使用Docker官方的Nginx镜像。既然我们准备使用Docker Compose,我们接下来先创建docker-compose.yml文件,其实docker nginx的80端口映射到宿主机的8080端口:

web:

image: nginx:latest

ports:

– "8080:80"

现在我们运行:

docker-compose up

现在我们应该通过ip:8080会得到nginx的默认页面了。

现在nginx是启动了,让我们再来添加一些配置。首先更新docker-compose.yml使它挂载到一个本地目录。我们使用目录code。

web:

image: nginx:latest

ports:

– "8080:80"

volumes:

– ./code:/code

下一步我们创建一个虚拟机配置文件site.conf,设置其根目录为/code,把该文件放置到与docker-compose.yml同级目录。

server {

index index.html;

server_name php-docker.local;

error_log  /var/log/nginx/error.log;

access_log /var/log/nginx/access.log;

root /code;

}

为了让这个虚拟机配置生效,我们还需要再次更改docker-compose.yml文件:

web:

image: nginx:latest

ports:

– "8080:80"

volumes:

– ./code:/code

– ./site.conf:/etc/nginx/conf.d/site.conf

此次更新是把本地的site.conf挂载docker nginx里的/etc/nginx/conf.d/site.conf,这样这个配置文件就被添加到docker nginx里了。下面我们执行这个命令生效它:

docker-compose up

配置PHP

现在我们已经把nginx配置好了,接下来配置PHP。首先是拉取官方的PHP7-FPM镜像,并链接到Nginx容器,docker-compose.yml如下:

web:

image: nginx:latest

ports:

– "8080:80"

volumes:

– ./code:/code

– ./site.conf:/etc/nginx/conf.d/site.conf

links:

– php

php:

image: php:7-fpm

下一步是配置nginx使用php-fpm容器来解析php文件。更新后的site.conf如下:

server {

index index.php index.html;

server_name php-docker.local;

error_log  /var/log/nginx/error.log;

access_log /var/log/nginx/access.log;

root /code;

location ~ .php$ {

try_files $uri =404;

fastcgi_split_path_info ^(.+.php)(/.+)$;

fastcgi_pass php:9000;

fastcgi_index index.php;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;

}

}

为了测试,让我们在./code目录新建一个index.php,内容如下:

phpinfo();

?>

然后通过ip:8080打开,但出现File not found错误。这是因为PHP容器找不到此文件,我们也需要像nginx一样挂载code目录,更新docker-compose.yml文件如下:

web:

image: nginx:latest

ports:

– "8080:80"

volumes:

– ./code:/code

– ./site.conf:/etc/nginx/conf.d/site.conf

links:

– php

php:

image: php:7-fpm

volumes:

– ./code:/code

最后,启动容器:

docker-compose up

我们将会看到正常的phpinfo页面

docker化你的PHP应用环境Nginx PHP-FPM

php服务docker化,docker化你的PHP应用环境Nginx PHP-FPM相关推荐

  1. Spring Boot与Docker(一):微服务架构和容器化概述

    本文讲的是Spring Boot与Docker(一):微服务架构和容器化概述,[编者的话]本篇是<使用Spring Boot和Docker构建微服务架构>系列四部曲的第一篇,本篇将会对我们 ...

  2. 分布式架构 服务容器化Docker

    分布式架构 Docker 环境准备 docker 安装 基于apt包管理器安装 docker简介 针对的问题 docker 与虚拟机的区别 容器隔离 rootfs namespace Cgroup 解 ...

  3. .NET Core容器化@Docker

    转自圣杰.https://www.jianshu.com/p/23465dc86d3e .NET Core容器化@Docker 圣杰 已关注 2017.12.22 21:59* 字数 2999 阅读 ...

  4. .NETCore 实现容器化Docker与私有镜像仓库管理

    一.Docker介绍 Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖.相较于虚拟机而 ...

  5. .NET Core容器化(Docker)

    1. 引言 我们知道. NET Core最大的特性之一就是跨平台,而对于跨平台,似乎大家印象中就是可以在非Windows系统上部署运行.而至于如何操作,可能就有所欠缺.那这一节我们就结合简单实例一步一 ...

  6. 容器化Docker原理和场景

    1. 容器和Docker 1. 什么是容器化 日趋复杂的运维开发环境, 对虚拟服务器及应用服务的要求更加多元化, 我们需要更加容易扩展, 性能优越, 方便监控的管理服务, 容器化应用, 容器化运维应运 ...

  7. Rancher集群化docker管理平台部署、特性及破坏性测试。

    http://8941355.blog.51cto.com/8931355/1712683 rancher是一个docker集群化管理平台,相对于mesos和k8s架构,rancher的部署管理非常简 ...

  8. Docker portainer-ce 汉化版安装(基于centos)

    1.首先进行Docker的安装 (1)卸载旧版本 yum remove docker \docker-client \docker-client-latest \docker-common \dock ...

  9. 基于 Docker Compose 容器化搭建 Wordpress

    基于 Docker Compose 容器化搭建 Wordpress 最近由于业务需求帮公司搞了几个 Wordpress 作为官网,中间也是踩了不少坑,倒不是搭建 wordpress 难,主要是 wor ...

最新文章

  1. 如何确定最初克隆本地Git存储库的URL?
  2. 西南交大计算机辅助制造a卷,计算机辅助制造 西南交大作业.doc
  3. 鸿星尔克因公司系统崩溃、恳请顾客退款;乔布斯首份手写求职信拍卖出222万;OpenAI 开源 Triton语言|极客头条...
  4. 使用qt多线程的一个简单方法
  5. 给 Android 应用开发者的十个建议
  6. 34款管理系统、ERP、CRM、OA等(冠唐\金蝶等)
  7. docker安装redis并挂载配置文件
  8. 数据库作业8:SQL练习5 - SELECT(嵌套查询EXISTS、集合查询、基于派生表的查询)
  9. YUV播放器支持10bit视频
  10. 数据仓库:维度分析和指标
  11. 清华计算机系与姚班,清华“姚班”,计算机专业学子们无比向往的班级
  12. 环境工程原理知识重点归纳
  13. Configuring Add-on Service
  14. STL之vector函数详解
  15. netty系列之:自建客户端和HTTP服务器交互
  16. 步进电机原理与驱动方式
  17. php脚注信息怎么删除,如何在Word2010中添加、删除脚注、尾注
  18. 微软中国裁员计划曝光:年底前裁完!补偿不变!
  19. 链接生成-链接生成器-免费批量在线链接生成器
  20. 高考填报志愿计算机操作技巧,2021高考填报志愿六个技巧

热门文章

  1. c语言1000内亲密对数,《C语言程序的设计上机指导》项目五函数及其应用.pptx
  2. 网络安全应急演练方案内容_开展应急演练,筑牢网络安全
  3. Linuxday01基础命令
  4. php不缓存直接输出,如何在PHP中禁用输出缓冲
  5. Python(4):条件控制
  6. echarts生成json地图最简单代码
  7. npm更换成淘宝镜像源以及cnpm
  8. 项目启动,数据库连接错误:SQLNonTransientConnectionException: Could not create connection to database server
  9. Python:Matplotlib 画曲线和柱状图(Code)
  10. 关于Eclipse安装Scala插件不显示