php服务docker化,docker化你的PHP应用环境Nginx PHP-FPM
文章目录
[隐藏]
开始之前
配置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相关推荐
- Spring Boot与Docker(一):微服务架构和容器化概述
本文讲的是Spring Boot与Docker(一):微服务架构和容器化概述,[编者的话]本篇是<使用Spring Boot和Docker构建微服务架构>系列四部曲的第一篇,本篇将会对我们 ...
- 分布式架构 服务容器化Docker
分布式架构 Docker 环境准备 docker 安装 基于apt包管理器安装 docker简介 针对的问题 docker 与虚拟机的区别 容器隔离 rootfs namespace Cgroup 解 ...
- .NET Core容器化@Docker
转自圣杰.https://www.jianshu.com/p/23465dc86d3e .NET Core容器化@Docker 圣杰 已关注 2017.12.22 21:59* 字数 2999 阅读 ...
- .NETCore 实现容器化Docker与私有镜像仓库管理
一.Docker介绍 Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖.相较于虚拟机而 ...
- .NET Core容器化(Docker)
1. 引言 我们知道. NET Core最大的特性之一就是跨平台,而对于跨平台,似乎大家印象中就是可以在非Windows系统上部署运行.而至于如何操作,可能就有所欠缺.那这一节我们就结合简单实例一步一 ...
- 容器化Docker原理和场景
1. 容器和Docker 1. 什么是容器化 日趋复杂的运维开发环境, 对虚拟服务器及应用服务的要求更加多元化, 我们需要更加容易扩展, 性能优越, 方便监控的管理服务, 容器化应用, 容器化运维应运 ...
- Rancher集群化docker管理平台部署、特性及破坏性测试。
http://8941355.blog.51cto.com/8931355/1712683 rancher是一个docker集群化管理平台,相对于mesos和k8s架构,rancher的部署管理非常简 ...
- Docker portainer-ce 汉化版安装(基于centos)
1.首先进行Docker的安装 (1)卸载旧版本 yum remove docker \docker-client \docker-client-latest \docker-common \dock ...
- 基于 Docker Compose 容器化搭建 Wordpress
基于 Docker Compose 容器化搭建 Wordpress 最近由于业务需求帮公司搞了几个 Wordpress 作为官网,中间也是踩了不少坑,倒不是搭建 wordpress 难,主要是 wor ...
最新文章
- 如何确定最初克隆本地Git存储库的URL?
- 西南交大计算机辅助制造a卷,计算机辅助制造 西南交大作业.doc
- 鸿星尔克因公司系统崩溃、恳请顾客退款;乔布斯首份手写求职信拍卖出222万;OpenAI 开源 Triton语言|极客头条...
- 使用qt多线程的一个简单方法
- 给 Android 应用开发者的十个建议
- 34款管理系统、ERP、CRM、OA等(冠唐\金蝶等)
- docker安装redis并挂载配置文件
- 数据库作业8:SQL练习5 - SELECT(嵌套查询EXISTS、集合查询、基于派生表的查询)
- YUV播放器支持10bit视频
- 数据仓库:维度分析和指标
- 清华计算机系与姚班,清华“姚班”,计算机专业学子们无比向往的班级
- 环境工程原理知识重点归纳
- Configuring Add-on Service
- STL之vector函数详解
- netty系列之:自建客户端和HTTP服务器交互
- 步进电机原理与驱动方式
- php脚注信息怎么删除,如何在Word2010中添加、删除脚注、尾注
- 微软中国裁员计划曝光:年底前裁完!补偿不变!
- 链接生成-链接生成器-免费批量在线链接生成器
- 高考填报志愿计算机操作技巧,2021高考填报志愿六个技巧
热门文章
- c语言1000内亲密对数,《C语言程序的设计上机指导》项目五函数及其应用.pptx
- 网络安全应急演练方案内容_开展应急演练,筑牢网络安全
- Linuxday01基础命令
- php不缓存直接输出,如何在PHP中禁用输出缓冲
- Python(4):条件控制
- echarts生成json地图最简单代码
- npm更换成淘宝镜像源以及cnpm
- 项目启动,数据库连接错误:SQLNonTransientConnectionException: Could not create connection to database server
- Python:Matplotlib 画曲线和柱状图(Code)
- 关于Eclipse安装Scala插件不显示