linux快速搭建lnmp开发环境

首先写一个脚本创建需要用到的目录

#定义lnmp环境配置根目录 和网站根目录
basedir="/lnmp"
wwwroot="/wwwroot"
#首先检查下存不存在这两个目录

if [ -e $baseroot ]
then
  echo "lnmp dir is exits"
  exit 0
fi
if [ -e $wwwroot]
then
  echo "wwwroot dir is exits"
  exit 0
fi
#创建根目录
mkdir $baseroot
mkdir $wwwroot
#进入lnmp环境根目录
cd $basedir

#创建mysql目录存放mysql 配置和data
mysqlcnf="mysql/conf"
mysqldata="mysql/data"

mkdir -p $mysqlcnf
mkdir -p $mysqldata

#创建php目录 存放php.ini php-fpm.conf php-fpm.d(配置文件) phplog(存放日志) 
phpconf="php"
mkdir -p $phpconf

#创建nginx配置目录
nginxconf="nginx/conf"
#nginx 日志目录
nginxlog="nginx/logs"
#nginx 其他目录根据情况创建
#例如cert 存放证书
nginxcert="nginx/cert'
mkdir $nginxconf
mkdir $ngxinlog
mkdir $nginxcert

#为了省事,给跟目录充分的权限
chmod -R 777 $wwwroot
chmod -R 777 $basedir
echo "dir build ok!"

运行此脚本生成目录

生成目录后先运行容器,然后使用docker cp命令将容器中的配置文件拷贝出来(docker cp 容器名:/容器中配置文件完整路径  本地创建的配置文件路径)

将容器中的默认配置文件copy出来
#docker run -d --name=php php:fpm     //启动php容器

#docker cp php:/usr/local/etc/php/php.ini-production /lnmp/php/php.ini  

#docker cp php:/usr/local/etc/php-fpm.d /lnmp/php/

#docker cp php:/usr/local/etc/php-fpm.conf /lnmp/php/

copy完成文件后停止并删除容器
#docker stop php

#docker rm php

。。。
。。。
。。。
同理 去copy mysql nginx 的配置文件

注意mysql容器启动需要提供一个环境变量(这里的root为root账户的密码)
 #docker run -d --name=mysql -e MYSQL_ROOT_PASSWORD=root  mysql

 #docker cp mysql:/var/lib/mysql /lnmp/

 #docker cp mysql:/etc/mysql/my.cnf /lnmp/mysql/conf
 #docker stop mysql

然后编写docker-compose.yml文件

version: '3'
services:
  php:
    container_name: php
    image: php:fpm
    volumes:
      - /wwwroot:/www
      - /lnmp/php/php.ini:/usr/local/etc/php/php.ini
      - /lnmp/php/php-fpm.conf:/usr/local/etc/php-fpm.conf
      - /lnmp/php/php-fpm.d:/usr/local/etc/php-fpm.d
  mysql:
    container_name: mysql
    image: mysql:latest
    volumes:
      - /lnmp/mysql/data:/var/lib/mysql
      - /lnmp/mysql/conf/my.cnf:/etc/mysql/my.cnf
    ports:
      - '3306:3306'
    environment:
      - MYSQL_ROOT_PASSWORD=root
  nginx:
    container_name: nginx
    image: nginx:latest
    volumes:
      - /wwwroot:/www
      - /lnmp/nginx/conf/conf.d:/etc/nginx/conf.d
      - /lnmp/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - /lnmp/nginx/logs:/var/log/nginx
      - /lnmp/nginx/cert:/var/cert
      - /lnmp/nginx/conf/fastcgi_params:/etc/nginx/fastcgi_params
    links:
      - 'php:php-fpm'
    ports:
      - '443:443'
      - '80:80'

进入docker-compose.yml所在的文件夹,启动容器

docker-compose up -d

 

最后修改nginx配置文件是php文件可以被解析

...
...
...
#主要修改如下部分
location ~ \.php$ {
#此出/www 是你映射到容器中的网站跟目录等价于wwwroot
        root           /www/;
#这里使用php-fpm的原因是,docker-compose.yml中links了php容器并且为php容器设置了一个别名php-fpm
        fastcgi_pass   php-fpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www$fastcgi_script_name;
        include        /etc/nginx/fastcgi_params;    # 此处建议使用绝对路径
 }
...
...
...

至此lnmp搭建完成,大家还想使用docker 搭建什么环境,留言告诉我,我给你们出教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值