使用docker搭建lnmp环境

前言:之前每次搭建都现成百度,有时候还会出奇奇怪怪的错误,这次有时间把搭建的过程记录下来。

nginx

1.批量创建文件夹

[root@localhost ~] mkdir -pv /lnmp/nginx/{conf/conf.d,data,logs}

2.在/lnmp/nginx/conf/conf.d下放置default.conf,否则容器内不会存在default.conf文件
点我下载

3.启动容器

[root@localhost ~] docker pull nginx
[root@localhost ~] docker run -d --name nginx \
-p 80:80 \
-v /lnmp/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /lnmp/nginx/html:/usr/share/nginx/html \
-v /lnmp/nginx/logs:/var/log/nginx \
nginx

注意:如果conf目录不做映射,那么就无需手动在物理机创建default.conf文件

此时ip地址可已可访问



mysql

1.批量创建文件夹

[root@localhost ~] mkdir -pv /lnmp/mysql/{conf,data,logs}

2.启动容器

[root@localhost ~] docker pull mysql:5.7
[root@localhost ~] docker run -d -p 3306:3306 --name mysql \
-v /lnmp/mysql/conf:/etc/mysql/conf.d \
-v /lnmp/mysql/logs:/logs \
-v /lnmp/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7



php-fpm

1.创建文件夹

[root@localhost ~] mkdir /lnmp/php-fpm/

2.物理机上放置www.conf文件

vim /lnmp/php-fpm/www.conf

点我下载

3.启动容器

[root@localhost ~]docker pull php-fpm:7.2-fpm
[root@localhost ~]docker run -d --name php-fpm \
-p 9000:9000 \
-v /lnmp/php-fpm/www.conf:/usr/local/etc/php-fpm.d/www.conf \
-v /lnmp/nginx/html:/usr/share/nginx/html \
php:7.2-fpm

4.修改default.conf,使其支持php解析(将#去掉,修改fastcgi_pass的ip,fastcgi_param的路径)

location ~ \.php$ {
        root           html;
        fastcgi_pass   192.168.99.26:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }

此时ip地址/index.php可已可访问(手动提前创建php文件)



额外配置

1.进入php-fpm容器安装mysqli(否则php没法连接mysql,mysql_connect函数已弃用)

[root@localhost ~]docker exec -it php-fpm /bin/bash
[root@localhost ~]docker-php-ext-install mysqli

2.将phpfpm容器导出成镜像文件,以便后续使用

[root@localhost ~]docker commit -m "php-fpm add extension mysqli" php-fpm php-fpm:7.2

版权声明:本文为xiantianga6883原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。