基于docker搭建lnmp

1 篇文章 0 订阅
1 篇文章 0 订阅

目录

镜像拉取

启动php

启动nginx容器

启动msyql容器

安装php扩展


环境要求:nginx 1.21.5+ php7.4 + mysql 5.7

镜像拉取

docker pull nginx:1.21.5  
docker pull mysql:5.7.36  
docker pull php:7.4-fpm  

启动php

先启动php容器,后续启动nginx容器会使用 php容器

  1. 启动容器

# 常规端口方式
docker run -d --name php-fpm \
-p 9000:9000 \
-v /home/data/project:/var/www/html \  # 项目目录映射
-v /server/php:/usr/local/etc/php \
-v /home/data/log/php-fpm:/data/php-fpm/log \ # 日志目录映射
php:7.4-fpm  
​
​

​
​
# 使用unix:sock 方式链接
docker run --name  php-fpm  \
-v /home/data/docker/php-fpm/www.conf:/usr/local/etc/php-fpm.d/www.conf  \
-v /home/data/docker/php-fpm/php-fpm.conf:/usr/local/etc/php-fpm.conf  \
-v /home/data/docker/php-fpm/zz-docker.conf:/usr/local/etc/php-fpm.d/zz-docker.conf \
# sock挂载目录,用于后续nginx配置php(fastcgi_pass)
-v /home/sock:/sock \
-v /home/data/project:/var/www/html \
-d php:7.4-fpm 

启动nginx容器

  • 准备nginx配置


server {
        listen       80;
        server_name xxxxx.com;

​
        root /usr/share/nginx/html;
        charset utf-8;
​
        access_log  /var/log/nginx/access.log;
        error_log  /var/log/nginx/error.log;
​
        location / {
            index  index.html index.htm index.php;
            try_files $uri $uri/ /index.php?$query_string;
        }
​
        #error_page  404              /404.html;
​
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
​
        location ~ \.php$ {
            root /usr/share/nginx/html;        
            fastcgi_index index.php;
            # 使用php和nginx的sock挂载目录
            fastcgi_pass  unix:/sock/php-fpm.sock;
            # 必须和php-fpm容器的挂载目录一直
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
            include       fastcgi_params;
        }
​
        location ~ /\.ht {
            deny  all;
        }
}
  • 启动容器


docker run -d --name nginx \
-p 80:80 -p 443:443 \
# 必须和php容器的scok目录挂载一致
-v /home/sock:/sock \
-v /home/data/docker/nginx:/etc/nginx \
-v /home/data/project:/usr/share/nginx/html \
-v /home/data/log/nginx:/var/log/nginx \
--link php-fpm \ # 链接php容器,容器之间相互通信
nginx 

启动msyql容器

docker run -d --name mysql \
-p 3306:3306 \
-v /home/data/docker/mysql/conf:/etc/mysql/conf.d \
-v /home/data/docker/mysql/data:/var/lib/mysql \
-v /home/data/log/mysql:/var/log/mysql/ \
-e MYSQL_ROOT_PASSWORD=chuxincms123  
mysql:5.7.36  

安装php扩展

php脚本文件链接mysql,需要安装对应库的扩展,安装完成过后重启容器,进入容器

 cd /usr/local/etc/php  
 
 docker-php-ext-install mysqli
 
 docker-php-ext-install mysql
 
 docker-php-ext-install pdo pdo_mysql  
 
 docker-php-ext-install gd 

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值