标签: phpmyadmin

  • 使用docker安装wordpress套装

    1.前期准备

    1.准备一个域名,并解析至cloudflare,设置好A记录及AAAA记录。

    2.申请证书

    在cloudflare中申请此域名的证书(包括域名*.yourdomain.com和www.yourdomain.com),并将公钥和私钥保存好。

    2.docker-compose.yml配置

    services:
      test_mysql:
        container_name: test_mysql
        image: mysql:latest
        volumes:
          - mysql_data:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
          MYSQL_DATABASE: wordpress
          MYSQL_USER: wordpress
          MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD}
        networks:
          - test_network
    
      test_wordpress:
        container_name: test_wordpress
        image: wordpress:latest
        volumes:
          - wordpress_data:/var/www/html/wp-content
        environment:
          WORDPRESS_DB_HOST: test_mysql
          WORDPRESS_DB_USER: wordpress
          WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD}
          WORDPRESS_DB_NAME: wordpress
        networks:
          - test_network
        depends_on:
          - test_mysql
    
      test_phpmyadmin:
        container_name: test_phpmyadmin
        image: phpmyadmin:latest
        environment:
          PMA_HOST: test_mysql
          PMA_ARBITRARY: 1 # 允许用户选择服务器并手动登录
        networks:
          - test_network
        depends_on:
          - test_mysql
    
      test_redis:
        container_name: test_redis
        image: redis:latest
        networks:
          - test_network
    
      test_nginx:
        container_name: test_nginx
        image: nginx:latest
        volumes:
          - /etc/nginx/ssl:/etc/nginx/ssl
          - ./nginx.conf:/etc/nginx/nginx.conf
        ports:
          - "80:80"
          - "443:443"
        networks:
          - test_network
        depends_on:
          - test_wordpress
          - test_phpmyadmin
    
    networks:
      test_network:
        name: test_network
    
    volumes:
      mysql_data:
      wordpress_data:
    

    3.nginx.conf配置文件

    user nginx;
    worker_processes auto;
    
    error_log /var/log/nginx/error.log warn;
    pid /var/run/nginx.pid;
    
    events {
        worker_connections 1024;
    }
    
    http {
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
    
        log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log /var/log/nginx/access.log main;
    
        sendfile on;
        keepalive_timeout 65;
    
        # 默认 server 块
        server {
            listen 443 ssl;
            server_name _;
            ssl_certificate /etc/nginx/ssl/yourdomain.crt;
            ssl_certificate_key /etc/nginx/ssl/yourdomain.key;
            return 444;
        }
    
        # HTTP 到 HTTPS 重定向
        server {
            listen 80;
            server_name yourdomain.com www.yourdomain.com
            return 301 https://$host$request_uri;
        }
    
        # 主网站 (WordPress)
        server {
            listen 443 ssl;
            server_name yourdomain.com www.yourdomain.com;
            ssl_certificate /etc/nginx/ssl/yourdomain.crt; #公钥
            ssl_certificate_key /etc/nginx/ssl/yourdomain.key; #私钥
    
            location /phpmyadmin/ {
                proxy_pass http://site_phpmyadmin/;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_redirect off;
                proxy_buffering off;
            }
    
            location / {
                proxy_pass http://site_wordpress;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
    
    }
    

    4.运行安装所有docker

    docker-compose up -d
    

    5.进入www.youdomain.com安装wordpress。

    6.进入www.youdomain.com/phpmyadmin可直接操作数据库