• 售前

  • 售后

热门帖子
入门百科

docker 搭建lnmp环境的方法步骤

[复制链接]
forregistuse 显示全部楼层 发表于 2021-10-26 13:52:10 |阅读模式 打印 上一主题 下一主题
创建项目目次
  1. mkdir php
复制代码
创建如下项目结构
      
  • sites 目次放置项目文件  
  • services 目次放置服务相干配置  
  • script 放置自定义脚本
  1. ├── Readme.md
  2. ├── docker-compose.yml
  3. ├── script
  4. ├── services
  5. │ ├── mariadb
  6. │ │ └── Dockerfile
  7. │ ├── nginx
  8. │ │ ├── Dockerfile
  9. │ │ ├── conf.d
  10. │ │ │ └── default.conf
  11. │ │ └── nginx.conf
  12. │ ├── php
  13. │ │ └── Dockerfile
  14. │ └── redis
  15. │  └── Dockerfile
  16. └── sites
  17. ├── index.html
  18. └── index.php
  19. 8 directories, 10 files
复制代码
编辑docker-compose文件
  1. version: "3"
  2. services:
  3. php:
  4. build: ./services/php
  5. # ports:
  6. # - "9001:9000"
  7. container_name: lnmp-php
  8. restart: always
  9. volumes:
  10.   - ./sites:/www
  11. networks:
  12.   lnmp_net:
  13.   ipv4_address: 101.11.11.10
  14. nginx:
  15. build: ./services/nginx
  16. ports:
  17.   - "81:80"
  18.   - "444:443"
  19. container_name: lnmp-nginx
  20. restart: always
  21. volumes:
  22.   - ./sites:/www
  23.   - ./services/nginx/nginx.conf:/etc/nginx/nginx.conf
  24.   - ./services/nginx/conf.d:/etc/nginx/conf.d:rw
  25. networks:
  26.   lnmp_net:
  27.   ipv4_address: 101.11.11.11
  28. networks:
  29. lnmp_net:
  30. driver: bridge
  31. ipam:
  32.   config:
  33.   - subnet: 101.11.11.0/20
复制代码
编辑services/nginx文件
  1. FROM nginx:1.17.0-alpine
  2. # 更新安装源
  3. RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
  4. # 设置时区为上海
  5. RUN apk update && apk add --upgrade \
  6. && apk add tzdata \
  7. && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  8. && echo "Asia/Shanghai" > /etc/timezone \
  9. && apk del tzdata
复制代码
编辑services/php文件
  1. FROM php:7.3.6-fpm-alpine3.9
  2. # 更新安装源
  3. RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
  4. # 设置时区为上海
  5. RUN apk update && apk add --no-cache tzdata autoconf gcc g++ make zlib-dev curl-dev\
  6. && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  7. && echo "Asia/Shanghai" > /etc/timezone \
  8. && apk del tzdata \
  9. && docker-php-ext-install mysqli pdo_mysql opcache \
  10. && pecl install grpc protobuf xdebug yaf yar swoole \
  11. && docker-php-ext-enable xdebug yaf yar swoole grpc protobuf
复制代码
以上我们的lnmp情况根本搭建完毕,下面我们针对Php解析做相干的配置

修改services/nginx/nginx.conf,可根据需求自行修改
  1. user nginx;
  2. worker_processes auto;
  3. error_log /var/log/nginx/error.log warn;
  4. pid  /var/run/nginx.pid;
  5. events {
  6. worker_connections 1024;
  7. }
  8. http {
  9. include  /etc/nginx/mime.types;
  10. default_type application/octet-stream;
  11. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  12.       '$status $body_bytes_sent "$http_referer" '
  13.       '"$http_user_agent" "$http_x_forwarded_for"';
  14. access_log /var/log/nginx/access.log main;
  15. sendfile  on;
  16. #tcp_nopush  on;
  17. keepalive_timeout 65;
  18. #gzip on;
  19. include /etc/nginx/conf.d/*.conf;
  20. }
复制代码
修改services/nginx/conf.d目次下文件

该目次是各个项目标配置文件,可根据需求配置单个或多个服务
  1. server {
  2. listen  80;
  3. server_name localhost;
  4. #charset koi8-r;
  5. #access_log /var/log/nginx/host.access.log main;
  6.   #root /usr/share/nginx/html;
  7. root /www;
  8. index index.php index.html index.htm;
  9. #error_page 404    /404.html;
  10. # redirect server error pages to the static page /50x.html
  11. #
  12. error_page 500 502 503 504 /50x.html;
  13. location = /50x.html {
  14.   root /usr/share/nginx/html;
  15. }
  16. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  17. #
  18. #location ~ \.php$ {
  19. # proxy_pass http://127.0.0.1;
  20. #}
  21. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  22. #
  23. location ~ \.php$ {
  24. # root   html;
  25.   fastcgi_pass 101.11.11.10:9000;
  26.   fastcgi_index index.php;
  27.   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  28.   include  fastcgi_params;
  29. }
  30. # deny access to .htaccess files, if Apache's document root
  31. # concurs with nginx's one
  32. #
  33. #location ~ /\.ht {
  34. # deny all;
  35. #}
  36. }
复制代码
启动服务
  1. cd php && docker-compose up --build -d
复制代码
上述的步调根据网速的docker的配置实行时间个不雷同,因为php中编译了些许扩展,也可根据自身需求做响应的删减
通过浏览器访问http://127.0.0.1:81,假如看到了phpinfo的输出信息,那么恭喜你,你的lnmp情况已经摆设完成

以上就是本文的全部内容,渴望对各人的学习有所帮助,也渴望各人多多支持脚本之家。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作