PHP Dev程序员tools

docker 安装lnmp环境

2017-02-15  本文已影响697人  cfygaoyang

由于当前多数服务器都是Linux的原因,本文只讲ubuntu下的安装!

第一步:安装docker

安装教程:http://www.runoob.com/docker/ubuntu-docker-install.html

第二步:拉取ubuntu:16.04镜像

docker pull ubuntu:16.04

拉取成功后,查看所有镜像

docker images

第三步:将该镜像在一个容器中运行,并进入容器

docker run -dit --name my-lnmp ubuntu:16.04

docker exec -it my-lnmp /bin/bash

第四步:更新容器 apt 源,安装curl,vim

apt-get update

apt-get install curl

apt-get install vim

第五步:安装nginx

apt-get install nginx

# 配置文件位置#>

 /etc/nginx/nginx.conf

 /etc/nginx/conf.d/*.conf

# 默认主目录#> 

/usr/share/nginx/html/

# 管理nginx服务

service nginx start       // 启动

service nginxstop        // 停止

service nginx restart   // 重启

测试 curl localhost

第六步:安装php7 

apt-get install php

apt-get install-y php7.0-mysql php7.0-curl php7.0-xml php7.0-mcrypt php7.0-json 

php7.0-gd php7.0-mbstring php-mongodb php-memcached php-redis

# 测试 (如果有结果,则表示安装成功)

php-v

配置php.ini

vim /etc/php/7.0/fpm/php.ini

# 将cgi.fix_pathinfo=1这一行去掉注释,将1改为0

#>  / 是vi查找的命令

配置php-fpm

vim /etc/php/7.0/fpm/pool.d/www.conf

# 修改 listen = /var/run/php/php7.0-fpm.sock

配置nginx

vim /etc/nginx/sites-enabled/default

将index index.html index.htm;改成index index.php index.html index.htm;

在service里面,location /{}下面增加以下配置

location ~ \.php$ {

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

# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

# With php5-cgi alone:

# fastcgi_pass 127.0.0.1:9000;

# With php5-fpm:

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

运行

# 启动  php-fpm 

service php7.0-fpm start

# 重启 Nginx ,检测配置是否成功

service nginx restart

# 新建 index.php 测试文件

<?php

echo "Hello World";

# 执行

curl localhost

如果看到`hello world!`表示运行成功

第七步:安装mysql

apt-get install mysql-server

#测试

service mysql start

mysql -uroot -p

第八步:设置容器开机启动项

# 在.bashrc写入开机启动项

vim~/.bashrc

写入以下内容,保存

# 开机启动项

service php7.0-fpm start

service mysql start

service nginx start

# tail -f /var/log/nginx/error.log

将配置好的Docker容器,打包上传阿里云

退出 docker

exit

查看容器对应的 CONTAINER ID

docker ps -as

将容器打包成新镜像

docker commit  [CONTAINER ID]  new-lnmp

停止正在运行的容器

docker stop my-lnmp

# 使用刚打包的镜像,创建容器,-p 端口映射# -v 本地目录映射到容器内

docker run -dit -p 80:80 -p 3306:3306 -v /var/www/:/var/www/  --name nginx-mysql-php7 

new-lnmp /bin/bash

在浏览器通过访问localhost响应成功,则大功告成

下面的是打包和拉取容器到阿里云的方法:

登录阿里云docker registry:

$ sudo docker login --username=laopo890220 registry.cn-hangzhou.aliyuncs.com

登录registry的用户名是您的阿里云账号全名,密码是您开通namespace时设置的密码。

你可以在镜像管理首页点击右上角按钮修改docker login密码。

从registry中拉取镜像:

$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/gaven/nginx-mysql-php7:[镜像版本号]

将镜像推送到registry:

$ sudo docker login --username=laopo890220 registry.cn-hangzhou.aliyuncs.com

$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/gaven/nginx-mysql-php7:[镜像版本号]

$ sudo docker push registry.cn-hangzhou.aliyuncs.com/gaven/nginx-mysql-php7:[镜像版本号]

其中[ImageId],[镜像版本号]请你根据自己的镜像信息进行填写。

上一篇 下一篇

猜你喜欢

热点阅读