docker搭建wordpress
搭建wordpress需要三个镜像,nginx,wordpress,mariadb。
编写docker-compose.yml文件。
version: '3.1' services: nginx: image: nginx:1.17.9 restart: always ports: - 80:80 - 443:443 volumes: - $PWD/nginx/yoursite.conf:/etc/nginx/conf.d/yoursite.conf - $PWD/nginx/blog.access.log:/var/log/nginx/blog.access.log - $PWD/nginx/blog.error.log:/var/log/nginx/blog.error.log - $PWD/wordpress:/var/www/html - $PWD/cert/challenges:/var/www/challenges - $PWD/cert/yoursite.com:/etc/letsencrypt/live/yoursite.com wordpress: image: wordpress:5.4.0-php7.4-fpm restart: always environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_NAME: dbname WORDPRESS_DB_USER: username WORDPRESS_DB_PASSWORD: password volumes: - $PWD/wordpress:/var/www/html db: image: mariadb:10.4.12 restart: always environment: MYSQL_DATABASE: dbname MYSQL_USER: username MYSQL_PASSWORD: password MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - $PWD/db:/var/lib/mysql
yoursite.conf编写你的站点的nginx配置文件
server { listen 80; listen 443 ssl; # ssl on; server_name yoursite.com; access_log /var/log/nginx/blog.access.log main; error_log /var/log/nginx/blog.error.log; ssl_certificate /etc/letsencrypt/live/yoursite.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yoursite.com/privkey.pem; ssl_session_timeout 5m; ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!ADH:!MD5; ssl_prefer_server_ciphers on; #301转移 #if ($server_port = 80) { # return 301 https://$server_name$request_uri; #} if ( $scheme = http ){ return 301 https://$server_name$request_uri; } location ^~ /.well-known/acme-challenge/ { alias /var/www/challenges/; # try_files $uri =404; } location / { root /var/www/html; index index.html index.htm index.php; autoindex off; try_files $uri $uri/ /index.php?q=$uri&$args; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/html; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /var/www/html; fastcgi_pass wordpress:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } }
接下来在当前目录运行docker-compose up -d即可运行你的网站。打开浏览器输入你的域名即可看到wordpress的安装页面。按照步骤配置信息即安装成功。