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
debian/ start.sh
#!/bin/bash service nginx start service php7.3-fpm start tail -f /dev/null
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 }
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 #}
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:
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
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
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
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
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
php/php.ini //文件过大,代码胜率 自行查询
www/default/index.php //代码自行插入
纵然世间炎凉百态!我自依旧初心不改!!