bitnami搭建php网站,第一篇 Docker搭建Nginx+MySql+PHP环境

自从认识到Docker这个工具,很多服务都希望通过Docker来搭建,毕竟不会把我的服务器环境弄得乱七八糟的,所以nginx的部署自然也琢磨着怎么用Docker来搭建。(在此声明,本人的docker和nginx的技术水平,就是简单的入门,只会根据实际需要去进一步了解。)

1 Docker的安装

1.1 docker安装

Docker的安装网上有很多教程,我常用的操作系统是CentOs7.x,推荐参考这个教程。

1.2 docker-compose安装

有些教程推荐安装docker-compose,好像是更易于打包docker镜像,可直接参考这个教程,非常简单,执行下面几条命令即可:

$ curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

$ chmod +x /usr/local/bin/docker-compose

实际安装的时候,直接下载最新版即可,也就是上面命令中的版本号。

2 php环境的部署

php环境的部署,也是通过docker部署,因为本系列大部分是部署php模板网站,所以需要用到这个环境。

很简单,请直接按照下面的命令运行就是了(PS:对于php版本,可根据自己的需求指定不同版本)

$ docker pull bitnami/php-fpm:7.0 --这个7.0就是指php版本

$ docker run -d -p 9000:9000 \ ##-d指定后台运行,-p指定系统9000端口映射到nginx容器默认的9000端口

> -v /data/nginx/www:/usr/share/nginx/html \ ##将我们自建的网站文件夹路径,替换成nginx默认的路径

> --name m_phpfpm bitnami/php-fpm:7.0 ##起一个别名m_phpfpm,这个别名我们后面会用得到

3 Nginx的部署

3.1 拉镜像和运行

我直接拉取最新的镜像,如果有特殊版本需求的话,请自行指定。执行下面的命令就行了:

$ docker pull nginx

$ docker run -d -p 80:80 --name m_nginx nginx

## --- -d:表示后台运行

## --- -p:指定端口号,nginx默认是80,前一个80是指把当前系统的80端口映射到nginx容器的80端口上,你也可以根据需求选择其他端口

## --- -name:起一个别名

## 最后一个nginx就是镜像的名称,如果你系统中不止一个nginx镜像的话,要指定具体哪一个nginx

3.2 创建资源文件夹

因为一般不会直接用容器内部的文件夹来存放东西,并且有时候Nginx的配置文件也希望能灵活修改,所以我们会在系统内新建一些文件夹,用来挂载到不同的容器,结合我们将会用到的Nginx的文件,我设计了下面的文件夹:

~ #系统根目录

--/data ##自建文件夹

----/nginx ##nginx相关的文件夹

------/www ##网站文件夹,对应nginx的/usr/share/nginx/html文件夹

------/logs ##nginx日志文件夹,对应nginx的/var/log/nginx文件夹

------/conf.d ##自定义配置文件夹,对应nginx的/etc/nginx/conf.d

------/conf ##配置文件夹,对应nginx的/etc/nginx/conf

3.3 从Nginx容器拷贝文件

我们主要是拷贝nginx.conf和default.conf两个文件,分别存储到我们能前面建立的文件夹里,命令如下:

$ docker cp ID:/etc/nginx/nginx.conf /data/nginx/conf

$ docker cp ID:/etc/nginx/conf.d/default.conf /data/nginx/conf.d

## ID就是通过docker ps命令查看得到的

3.4 停止并删除容器

文件拷贝后,接下来我们会以挂载的方式重新运行nginx,所以需要把已经运行起来的容器进行删除,执行下面的命令:

$ docker stop ID ##必须先停止容器,才能删除

$ docker rm ID

##--注:如果想要删除镜像,执行过上面两步后,再执行“docker rmi nginx”,nginx是镜像名称,可以通过docker images查看得到

3.5 挂载运行Nginx

挂载运行Nginx就是为了把我们自定义的配置文件、网站文件、日志文件,替换Nginx本身对应的文件,便于我们做各种处理。执行下列命令即可:

$ docker run \

> -d \

> -p 80:80 \

> -v /data/nginx/www:/usr/share/nginx/html \

> -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \

> -v /data/nginx/conf.d:/etc/nginx/conf.d \

> -v /data/nginx/logs:/var/log/nginx \

> --link m_phpfpm:phpfpm \ ##link是指与另一个容器建立联系,这样的话,上面的配置文件里,才可以用m_phpfpm

> --name m_nginx nginx

4 Mysql的部署

Mysql基本上是所有PHP模板网站所使用的数据库了,所以必须要安装,而且依据我的经验,建议安装5.6版本,也是目前能找到的docker镜像的最低版本,安装建议看这个教程。

Mysql镜像的运行建议按照下面的命令执行(当然最好参考Mysql在docker hub上的官方说明,有时候一些文件位置可能会不同版本不一样)

$ docker run -p 3306:3306 --name mymysql \

> -v $PWD/conf/my.cnf:/etc/mysql/my.cnf \ ###默认配置文件,可选

> -v $PWD/conf/custom:/etc/mysql/conf.d \ ###自定义配置文件所在的文件夹

> -v $PWD/logs:/logs

> -v $PWD/data:/var/lib/mysql \

> -e MYSQL_ROOT_PASSWORD=123456 \

> --security-opt seccomp:unconfined \

> -d mysql:5.6

到这里nginx、MySql、php环境都已经部署了,后续搭建php模板网站就在此基础上进行,每次部署php网站可能都需要重启nginx,如果有条件建议直接购买云服务商的数据库服务,数据丢了真的很疼,本来钱就少买不了那么多服务器做数据备份。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值