【环境搭建】docker+nginx部署PHP
目的
使用docker容器完成nginx的安装以及部署PHP网页
步骤
一、 安装nginx
1. 拉取Nginx镜像
docker pull nginx //拉取镜像
docker images //查看本地镜像
这里注意需要记一下nginx的IMAGE ID
,我这里的ID是605c
2. 创建Nginx容器
docker run --name nginx-test -p 80:80 -d nginx
- docker run : 是创建一个新容器并运行一个命令
- --name : 给容器起一个名字,指的是 nginx-test
- -p : 指定宿主机与容器内部端口的映射关系,-p [宿主机端口]:[容器内部端口],
- -d : 设置容器在在后台一直运行
- 最后面的 nginx 是镜像名称,也可以是镜像ID,例如上面提到的 “605c”
创建容器后使用docker ps
即可查看正在运行的容器,这里我的容器ID是 902f
访问这台机器的ip加上端口号,如果返回Welcom to nginx
则成功(如果设置映射的端口是80则可以不加端口)
3. 挂载文件
我们可以使用docker exec -it 902f /bin/bash
进入容器内部进行配置文件的管理(容器就是一台linux机器),但是比较麻烦,我们可以将这台容器的文件挂载到我们本机,这样我们只要在本机修改文件即可。
容器内部的文件路径如下
/etc/nginx //配置文件目录
/usr/share/nginx/html //默认html文件目录
/var/log/nginx //日志文件
在合适的路径下新建nginx目录,这里我选择在/home/kali/
下创建,进入/home/kali/nginx
,然后将容器内的nginx.conf
与default.conf
分别复制到/home/kali/nginx
和/home/kali/nginx/conf
docker cp 902f:/etc/nginx/nginx.conf ./
docker cp 902f:/etc/nginx/conf.d/default.conf ./conf/
注意容器ID不要填错,然后停止并删除这个容器,重新新建一个容器
docker stop 902f //停止容器
docker rm 902f //删除容器
新建容器,注意以下冒号前面的路径是刚才自己在本地新建的路径,冒号后面的是容器内的路径
docker run --name nginx-config -p 80:80 -v /home/kali/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/kali/nginx/logs:/var/log/nginx -v /home/kali/nginx/html:/usr/share/nginx/html -v /home/kali/nginx/conf:/etc/nginx/conf.d \
--privileged=true -d 605c //这里的605c是镜像ID
-v:挂载目录,-v[宿主机路径]:[容器内路径]
完成后本机的nginx路径下会有如下文件,说明成功
更改nginx文件夹的权限chmod -R 777 ./nginx
在/home/kali/nginx/html
目录下添加网页即可访问,到此Nginx的安装已经结束,删除此容器
docker stop 916
docker rm 916
二、 安装PHP
1. 拉取PHP镜像
docker pull php:7.4-fpm //拉取PHP镜像
docker images //查看本地镜像
记下PHP的IMAGE ID是 854
2. 创建PHP容器同时挂载文件
docker run --name php-test -v /home/kali/nginx/html:/www -p 9000:9000 -d 854
--name:给容器起名为php-test
-v :挂载目录
docker run --name nginx-test -p 80:80 -v /home/kali/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/kali/nginx/logs:/var/log/nginx -v /home/kali/nginx/html:/usr/share/nginx/html -v /home/kali/nginx/conf:/etc/nginx/conf.d \
--privileged=true --link php-test:php -d 605c //这里的605c是镜像ID
--link:把 php-test 容器的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-test
修改/home/kali/nginx/conf/default.conf
为以下内容
server {
listen 80;
server_name localhost;
location / {
root /www;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /www;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;
include fastcgi_params;
}
}
用docker restart [container_id]
重启容器,在html文件夹中添加php文件访问即可
【环境搭建】docker+nginx部署PHP的更多相关文章
- windows下vue+webpack前端开发环境搭建及nginx部署
一.开发环境搭建 1.前端框架一般都依赖nodejs,我们首先要安装node.js.请参考http://www.cnblogs.com/wuac/p/6381819.html. 2.由于许多npm的源 ...
- HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署
HHVM起源于Facebook公司,是一个开源的PHP虚拟机,使用JIT的编译方式以及其他技术,让PHP代码的执行性能大幅提升.HHVM提升PHP性能的途径,采用的方式就是替代Zend引擎来生成和执行 ...
- LNMP环境搭建:Nginx安装、测试与域名配置
Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件 2.编译安装Nginx (1)安装Nginx依赖函数库pcre pcre为“perl兼容正则表达 ...
- Linux学习之十--.Net Core环境搭建以及Nginx的搭建
一.Centos7下.Net Core 环境安装: 链接:https://www.microsoft.com/net/core#linuxcentos 按照步骤来: yum install libun ...
- 搭建 docker + nginx + keepalived 实现Web应用的高可用(亲测)
1. 环境准备 下载 VMware : https://www.vmware.com/go/getplayer-win 下载 Centos : https://mirrors.a ...
- Linux +Docker +Nginx 部署代理转发初探
很多开发人员仅仅只会码代码,如果让开发人员部署一些深入点的东西,或者做负载均衡等,很多开发人员估计就懵逼了,作为一个专业的开发还需要懂一些基本的运维知识:虽然说在互联网行业中,中小企业都有一个牛逼的运 ...
- 阿里云Ubuntu环境搭建Docker服务
经过昨天和今天的不断奋战,在阿里云里面搭建Docker并不easy. 所以我认为有必要记录下来,以供后人学习. 以及我自己的回想. 首先,查看我们的系统版本号: cat /etc/issue 的到的输 ...
- appium使用教程(一 环境搭建)-------------2.安装部署
1) 安装appium 2) SDK(不建议使用模拟器,占用内存很大,会造成机器卡顿.另外模拟器还存在兼容性问题:pc为x86架构,绝大多数的手机都是ARM架构,app的兼 ...
- centos7.x下环境搭建(二)—nginx安装
上篇文章是对mysql的安装,接着上篇文章,这篇文章安装nginx服务 添加yum源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添 ...
- NetCore2.2开发环境搭建和2008R2部署环境搭建
开发环境: 开发工具:VS2017 系统:Win10 64位 Skd下载地址: https://dotnet.microsoft.com/download 3个都下载下载,安装dotnet-sdk-2 ...
随机推荐
- Yapi及Swgger使用+注解
1.Yapi 1.1 介绍 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供 ...
- [Wechat]概念辨析:微信的生态平台/运管平台
0 引言 微信的各类XX社区.XX文档.XX平台,实在是太多,让人眼花缭乱.必须得理一理了. 1 微信公众平台 https://mp.weixin.qq.com/ 即 微信公众号(小程序 / 订阅号 ...
- MAPPO学习笔记(1):从PPO算法开始
由于这段时间的学习内容涉及到MAPPO算法,并且我对MAPPO算法这种多智能体算法的信息交互机制不甚了解,于是写了这个系列的笔记,目的是巩固知识,并且进行一些粗浅又滑稽的总结. 1.PPO算法的介绍 ...
- redission分布式redis锁使用
public void lock(String key, List<Long> idx) { if (CollectionUtils.isEmpty(idx)) { return; } i ...
- I-o-C 一篇概览
一.ioC 容器和 Bean介绍 IoC(Inversion of Control )也被称之为 DI(dependency injection),名称侧重点略有不同. 所谓控制翻转即对象通过构造函数 ...
- 1分钟了解C语言正确使用字节对齐及#pragma pack的方法
C/C++编译器的缺省字节对齐方式为自然对界.即在缺省情况下,编译器为每一个变量或是数据单元按其自然对界条件分配空间. 在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空 ...
- 关于vue3 上传图片到七牛云
引子:前端程序猿,很少写博客,担心有一些技术很牛逼的大佬看不上,还喜欢怼人,玻璃心容易影响心情,这个是我自己在项目上遇到的,也百度参考了很多大佬的文章,感觉多少有点不全,然后就自己整理一下,当一个笔记 ...
- 一篇文章搞定什么是nodeJs它和NPM关系与应用
现在前端的入门门槛越来越高了,不再是单纯 html+css+js,各种前端框架 层出不穷,各种ui组件库层出不穷. 模块化,打包化,各种工具库层出不穷,前端变成大前端 ,甚至前端可以搞定整个项目,通过 ...
- 2021-08-26:长度为N的数组arr,一定可以组成N^2个数字对。例如arr = [3,1,2],数字对有(3,3) (3,1) (3,2) (1,3) (1,1) (1,2) (2,3) (2
2021-08-26:长度为N的数组arr,一定可以组成N^2个数字对.例如arr = [3,1,2],数字对有(3,3) (3,1) (3,2) (1,3) (1,1) (1,2) (2,3) (2 ...
- phpstudy-sqlilabs-less-4
题目:GET - Error based - Double Quotes - String 基于错误的GET双引号字符型注入 可能的注入点(不全) ' " ) ') ...