如果不想使用别人搭建好的环境,或者想使用一个相对比较纯净的环境,就需要自己搭建环境,搭建lnmp有两种方法,一种是在一个容器里搭建所有,另一种是通过容器互联的方式,前一种启动的时候较方便一些,但是多个应用之间会有影响,第二种,不同的容器之间负载的时候不会有影响,但是启动的时候,要处理先后关系。
下面是通过数据卷和容器互联的方式建立lnmp环境:
1.获取镜像:
docker pull PHP:7.2-fpm
docker pull MysqL:5.7
docker pull Nginx
2.设置MysqL,并运行容器
docker run -d -p 3309:3306 -e MysqL_ROOT_PASSWORD=root --name MysqLer MysqL:5.7
-e 设置环境变量,可以通过docker镜像去搜索MysqL容器的使用方法 地址点这里
3.运行PHP容器:
docker run -d -v /docker/Nginx/www/html/:/var/www/html -p 9001:9000 --name PHPer --link MysqLer PHP:7.2-fpm
数据卷/docker/Nginx/www/html,如果没有会自动创建。
docker exec -ti PHPer /bin/bash
进入容器后,安装pdo插件:
docker-PHP-ext-install pdo_MysqL
查看是否安装成功
PHP -m #出现pdo则说明安装成功
退出容器,重启容器
exit #退出命令 docker restart PHPer #重启容器
4.运行Nginx 容器
启动容器:
docker run -d -p 8088:80 --name myNginx -v /docker/Nginx/www/html/:/var/www/html --link PHPer:PHPer Nginx
进入Nginx:
docker exec -ti myNginx /bin/bash
修改配置:
拉取的Nginx并没有任何文本编辑器,需要手动下载vim
apt-get update
更换为国内的源:
进入到/etc/apt目录:
echo “deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse“ >> b.txt
将原来的源文件作为备份:
mv source.list source.list.bak mv b.txt source.list
进入/etc/Nginx模块:查看Nginx.conf,里面server模块,是通过include 同级目录下的conf.d加载的,修改conf.d
location ~ \.PHP$ { root /var/www/html; fastcgi_index index.PHP; fastcgi_pass PHPer:9000;//注意这个是一定要改的对应link时,对应PHP的名字 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
exit docker restart myNginx
测试,在本地的宿主机/docker/Nginx/www/html/上,新建test.PHP
<?PHP PHPinfo();
通过localhost:8088/test.PHP访问,出现PHP配置信息,lnmp环境搭建成功。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。