zoukankan      html  css  js  c++  java
  • docker 搭建debian+nginx+php(含composer的扩展)+mysql+mongo+redis

    需要使用docker和docker-compose (自行安装)

    1.目录结构

     debian 

      - Dockerfile 

      - start.sh //启动脚本

    nginx

      - conf

        -   default.conf //默认配置文件(含laravel配置项)

      - nginx.conf //nginx配置文件

    mongo

      - mongod.conf.orig  //mongo配置文件

      - sources.list //更换系统源为国内镜像(下同)

    redis

      - redis.conf //redis配置文件

      - sources.list //同上

    mysql

      - mysqld.cnf //mysql配置文件

      - sources.list //同上

    php

      - php.ini //php配置文件

    www

      - default 

        - index.php  //默认文件 <?php phpinfo(); ?>

    2.文件详情

      debian/Dockerfile 

    FROM debian:latest
      
    RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak && 
        echo "" >/etc/apt/sources.list && 
        echo "deb http://mirrors.aliyun.com/debian/ buster main non-free contrib" >>/etc/apt/sources.list && 
        echo "deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib" >>/etc/apt/sources.list && 
        echo "deb http://mirrors.aliyun.com/debian-security buster/updates main" >>/etc/apt/sources.list && 
        echo "deb-src http://mirrors.aliyun.com/debian-security buster/updates main" >>/etc/apt/sources.list && 
        echo "deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib" >>/etc/apt/sources.list && 
        echo "deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib" >>/etc/apt/sources.list && 
        echo "deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib" >>/etc/apt/sources.list && 
        echo "deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib" >>/etc/apt/sources.list
    
    RUN apt-get update && apt-get install vim curl zip wget git php7.3 php7.3-fpm php7.3-mysql php7.3-mbstring php7.3-dom php7.3-gd php7.3-mongodb php7.3-redis composer nginx sysv-rc-conf -y
    RUN sysv-rc-conf nginx on && sysv-rc-conf php7.3-fpm on
    RUN sed  -i  '79,79s/set mouse=a/set mouse-=a/g' /usr/share/vim/vim81/defaults.vim
    ADD start.sh /start.sh
    RUN chmod +x /start.sh
    
    CMD /bin/bash -c /start.sh
    View Code

      

      debian/ start.sh

    #!/bin/bash
    service nginx start
    service php7.3-fpm start
    tail -f /dev/null
    View Code

      nginx/conf/default.conf

      1 server
      2     {
      3         listen 81 default_server reuseport;
      4         #listen [::]:80 default_server ipv6only=on;
      5         server_name _;
      6         index index.html index.htm index.php;
      7         root  /app/www/default;
      8 
      9         #error_page   404   /404.html;
     10 
     11         # Deny access to PHP files in specific directory
     12         #location ~ /(wp-content|uploads|wp-includes|images)/.*.php$ { deny all; }
     13 
     14         #include enable-php.conf;
     15 
     16         location /nginx_status
     17         {
     18             stub_status on;
     19             access_log   off;
     20         }
     21 
     22         location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
     23         {
     24             expires      30d;
     25         }
     26 
     27         location ~ .*.(js|css)?$
     28         {
     29             expires      12h;
     30         }
     31 
     32         location ~ /.well-known {
     33             allow all;
     34         }
     35 
     36       # pass PHP scripts to FastCGI server
     37       #
     38       location ~ .php$ {
     39             include snippets/fastcgi-php.conf;
     40             # With php-fpm (or other unix sockets):
     41             fastcgi_pass unix:/run/php/php7.3-fpm.sock;
     42             # With php-cgi (or other tcp sockets):
     43             #fastcgi_pass 127.0.0.1:9000;
     44         }
     45 
     46         location ~ /.
     47         {
     48             deny all;
     49         }
     50 
     51         #access_log  /home/wwwlogs/access.log;
     52     }
     53 
     54 server
     55     {
     56         listen 80;
     57         #listen [::]:80 default_server ipv6only=on;
     58         server_name _;
     59         index index.html index.htm index.php;
     60         root  /app/www/boss/business/public;
     61 
     62         #error_page   404   /404.html;
     63 
     64         # Deny access to PHP files in specific directory
     65         #location ~ /(wp-content|uploads|wp-includes|images)/.*.php$ { deny all; }
     66 
     67         #include enable-php.conf;
     68 
     69         location /nginx_status
     70         {
     71             stub_status on;
     72             access_log   off;
     73         }
     74 
     75         location / {
     76             try_files $uri $uri/ /index.php?$query_string;
     77         }
     78 
     79         location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
     80         {
     81             expires      30d;
     82         }
     83 
     84         location ~ .*.(js|css)?$
     85         {
     86             expires      12h;
     87         }
     88 
     89         location ~ /.well-known {
     90             allow all;
     91         }
     92 
     93         # pass PHP scripts to FastCGI server
     94         #
     95         location ~ .php$ {
     96             include snippets/fastcgi-php.conf;
     97             # With php-fpm (or other unix sockets):
     98             fastcgi_pass unix:/run/php/php7.3-fpm.sock;
     99             # With php-cgi (or other tcp sockets):
    100             #fastcgi_pass 127.0.0.1:9000;
    101         }
    102 
    103         location ~ /.
    104         {
    105             deny all;
    106         }
    107 
    108         #access_log  /home/wwwlogs/access.log;
    109     }
    View Code

      

      nginx/nginx.conf 

     1 user www-data;
     2 worker_processes auto;
     3 pid /run/nginx.pid;
     4 include /etc/nginx/modules-enabled/*.conf;
     5 
     6 events {
     7   use epoll;
     8   worker_connections 768;
     9   multi_accept on;
    10 }
    11 
    12 http {
    13 
    14   ##
    15   # Basic Settings
    16   ##
    17 
    18   sendfile on;
    19   tcp_nopush on;
    20   tcp_nodelay on;
    21   keepalive_timeout 65;
    22   types_hash_max_size 2048;
    23   # server_tokens off;
    24 
    25   # server_names_hash_bucket_size 64;
    26   # server_name_in_redirect off;
    27 
    28   include /etc/nginx/mime.types;
    29   default_type application/octet-stream;
    30 
    31   ##
    32   # SSL Settings
    33   ##
    34 
    35   ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    36   ssl_prefer_server_ciphers on;
    37 
    38   ##
    39   # Logging Settings
    40   ##
    41 
    42   access_log /var/log/nginx/access.log;
    43   error_log /var/log/nginx/error.log;
    44 
    45   ##
    46   # Gzip Settings
    47   ##
    48 
    49   gzip on;
    50 
    51   # gzip_vary on;
    52   # gzip_proxied any;
    53   # gzip_comp_level 6;
    54   # gzip_buffers 16 8k;
    55   # gzip_http_version 1.1;
    56   # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    57 
    58   ##
    59   # Virtual Host Configs
    60   ##
    61 
    62   include /etc/nginx/conf.d/*.conf;
    63   #include /etc/nginx/sites-enabled/*;
    64 }
    65 
    66 
    67 #mail {
    68 # # See sample authentication script at:
    69 # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
    70 #
    71 # # auth_http localhost/auth.php;
    72 # # pop3_capabilities "TOP" "USER";
    73 # # imap_capabilities "IMAP4rev1" "UIDPLUS";
    74 #
    75 # server {
    76 #   listen     localhost:110;
    77 #   protocol   pop3;
    78 #   proxy      on;
    79 # }
    80 #
    81 # server {
    82 #   listen     localhost:143;
    83 #   protocol   imap;
    84 #   proxy      on;
    85 # }
    86 #}
    View Code

      mongo/mongod.conf.orig

     1 # mongod.conf
     2 
     3 # for documentation of all options, see:
     4 #   http://docs.mongodb.org/manual/reference/configuration-options/
     5 
     6 # Where and how to store data.
     7 storage:
     8   dbPath: /var/lib/mongodb
     9   journal:
    10     enabled: true
    11 #  engine:
    12 #  mmapv1:
    13 #  wiredTiger:
    14 
    15 # where to write logging data.
    16 systemLog:
    17   destination: file
    18   logAppend: true
    19   path: /var/log/mongodb/mongod.log
    20 
    21 # network interfaces
    22 net:
    23   port: 27017
    24   bindIp: 127.0.0.1
    25 
    26 
    27 # how the process runs
    28 processManagement:
    29   timeZoneInfo: /usr/share/zoneinfo
    30 
    31 #security:
    32 
    33 #operationProfiling:
    34 
    35 #replication:
    36 
    37 #sharding:
    38 
    39 ## Enterprise-Only Options:
    40 
    41 #auditLog:
    42 
    43 #snmp:
    View Code

      

      mongo/sources.list

     1 deb http://mirrors.aliyun.com/ubuntu/ xenial main
     2   
     3 deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
     4 
     5 
     6 
     7 deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
     8 
     9 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
    10 
    11 
    12 
    13 deb http://mirrors.aliyun.com/ubuntu/ xenial universe
    14 
    15 deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
    16 
    17 deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    18 
    19 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    20 
    21 
    22 
    23 deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
    24 
    25 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
    26 
    27 deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    28 
    29 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    View Code

      redis/redis.conf

     1 bind 0.0.0.0
     2 protected-mode no
     3 port 6379
     4 tcp-backlog 511
     5 timeout 0
     6 tcp-keepalive 300
     7 
     8 ################################# GENERAL #####################################
     9 daemonize no
    10 supervised no
    11 pidfile /var/run/redis_6379.pid
    12 loglevel notice
    13 logfile ""
    14 databases 2
    15 
    16 ################################ SNAPSHOTTING  ################################
    17 save 1 1
    18 #save 900 1
    19 save 300 10
    20 save 60 10000
    21 stop-writes-on-bgsave-error yes
    22 rdbcompression yes
    23 rdbchecksum yes
    24 dbfilename dump.rdb
    25 dir /data
    26 
    27 ################################# REPLICATION #################################
    28 slave-serve-stale-data yes
    29 slave-read-only yes
    30 repl-diskless-sync no
    31 repl-diskless-sync-delay 5
    32 repl-disable-tcp-nodelay no
    33 slave-priority 100
    34 
    35 ################################## SECURITY ###################################
    36 requirepass redis
    37 
    38 ################################### LIMITS ####################################
    39 maxclients 10000
    40 
    41 ############################## APPEND ONLY MODE ###############################
    42 appendonly yes
    43 appendfilename "appendonly.aof"
    44 # appendfsync always
    45 appendfsync everysec
    46 # appendfsync no
    47 no-appendfsync-on-rewrite no
    48 auto-aof-rewrite-percentage 100
    49 auto-aof-rewrite-min-size 64mb
    50 aof-load-truncated yes
    51 
    52 ################################ LUA SCRIPTING  ###############################
    53 lua-time-limit 5000
    54 
    55 ################################ REDIS CLUSTER  ###############################
    56 cluster-enabled no
    57 
    58 ################################## SLOW LOG ###################################
    59 slowlog-log-slower-than 10000
    60 slowlog-max-len 128
    61 
    62 ################################ LATENCY MONITOR ##############################
    63 latency-monitor-threshold 0
    64 
    65 ############################# EVENT NOTIFICATION ##############################
    66 notify-keyspace-events ""
    67 
    68 ############################### ADVANCED CONFIG ###############################
    69 hash-max-ziplist-entries 512
    70 hash-max-ziplist-value 64
    71 list-max-ziplist-size -2
    72 list-compress-depth 0
    73 set-max-intset-entries 512
    74 zset-max-ziplist-entries 128
    75 zset-max-ziplist-value 64
    76 hll-sparse-max-bytes 3000
    77 activerehashing yes
    78 client-output-buffer-limit normal 0 0 0
    79 client-output-buffer-limit slave 256mb 64mb 60
    80 client-output-buffer-limit pubsub 32mb 8mb 60
    81 hz 10
    82 aof-rewrite-incremental-fsync yes
    View Code

      redis/sources.list

     1 #
     2   
     3 # deb cdrom:[Debian GNU/Linux 10.1.0 _Buster_ - Official amd64 NETINST 20190908-01:07]/ buster main
     4 
     5 # deb cdrom:[Debian GNU/Linux 10.1.0 _Buster_ - Official amd64 NETINST 20190908-01:07]/ buster main
     6 
     7 deb http://mirrors.aliyun.com/debian/ buster main non-free contrib
     8 deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib
     9 deb http://mirrors.aliyun.com/debian-security buster/updates main
    10 deb-src http://mirrors.aliyun.com/debian-security buster/updates main
    11 deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
    12 deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
    13 deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
    14 deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
    15 #deb [arch=amd64] https://download.docker.com/linux/debian buster stable
    16 
    17 # buster-updates, previously known as 'volatile'
    18 
    19 # This system was installed using small removable media
    20 # (e.g. netinst, live or single CD). The matching "deb cdrom"
    21 # entries were disabled at the end of the installation process.
    22 # For information about how to configure apt package sources,
    23 # see the sources.list(5) manual.
    24 # deb-src [arch=amd64] https://download.docker.com/linux/debian buster stable
    View Code

      mysql/mysqld.cnf

     1 # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
     2 # 
     3 # This program is free software; you can redistribute it and/or modify
     4 # it under the terms of the GNU General Public License as published by
     5 # the Free Software Foundation; version 2 of the License.
     6 #
     7 # This program is distributed in the hope that it will be useful,
     8 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    10 # GNU General Public License for more details.
    11 #
    12 # You should have received a copy of the GNU General Public License
    13 # along with this program; if not, write to the Free Software
    14 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
    15 
    16 #
    17 # The MySQL  Server configuration file.
    18 #
    19 # For explanations see
    20 # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
    21 
    22 [mysqld]
    23 pid-file  = /var/run/mysqld/mysqld.pid
    24 socket    = /var/run/mysqld/mysqld.sock
    25 datadir   = /var/lib/mysql
    26 #log-error  = /var/log/mysql/error.log
    27 # By default we only accept connections from localhost
    28 #bind-address = 127.0.0.1
    29 # Disabling symbolic-links is recommended to prevent assorted security risks
    30 symbolic-links=0
    View Code

      mysql/sources.list

    1 deb http://mirrors.163.com/debian/ stretch main non-free contrib
    2 deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
    3 deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
    4 deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
    5 deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
    6 deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
    7 deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
    8 deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
    View Code

      php/php.ini //文件过大,代码胜率 自行查询

      www/default/index.php //代码自行插入

      

  • 相关阅读:
    Android系统启动过程分析
    android的logcat 用法整理
    git 使用详解(10) 远程分支
    android的logcat 用法整理
    android Binder工作流程
    android Binder工作流程
    git log 小结
    linux patch 命令小结
    windows 中 \r\n 区别于 类unix中的\n 疑问 迎刃而解
    Mysql Error Code : 1436 Thread stack overrun
  • 原文地址:https://www.cnblogs.com/phpk/p/12400956.html
Copyright © 2011-2022 走看看