WordPress建站教程 2️⃣

24次阅读
没有评论

wordpress 安装

采用docker + Nginx Proxy Manager部署

SSL/TLS 加密 当前加密模式:完全(严格)配置方法

一、准备工作

目录结构如下:

wordpress/
├── docker-compose.yml
└── uploads.ini
nginx-proxy-manager/
└── docker-compose.yml

1、 创建目录
首先在服务器上创建一个目录用于存放 WordPress 的相关配置文件:

mkdir -p ~/wordpress
mkdir -p ~/wordpress

2、 文件准备
在 wordpress 目录下,需要准备以下文件与目录:

docker-compose.yml
uploads.ini

在 nginx-proxy-manager 目录下,需要准备以下文件与目录:

docker-compose.yml

三、Docker 容器配置文件

1、在 wordpress/docker-compose.yml 中写入以下内容:

services:
    db:
        image: mysql:5.7
        volumes:
            - './db_data:/var/lib/mysql'
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: your_mysql_password
            MYSQL_DATABASE: wordpress
            MYSQL_USER: wordpress
            MYSQL_PASSWORD: your_wordpress_password
        networks:
            - npm_net

    redis:
        image: redis:latest
        restart: always
        entrypoint: redis-server --appendonly yes --requirepass your_redis_password --maxmemory 512mb --maxmemory-policy allkeys-lru
        ports:
            - "6379"
        volumes:
            - './redis_data:/data'
            - '/etc/timezone:/etc/timezone:ro'
        networks:
            - npm_net

    wordpress:
        depends_on:
            - db
            - redis
        image: wordpress:latest
        ports:
            - "8000:80"
        restart: always
        environment:
            WORDPRESS_DB_HOST: db:3306
            WORDPRESS_DB_USER: wordpress
            WORDPRESS_DB_PASSWORD: your_wordpress_password
            WORDPRESS_DB_NAME: wordpress
            WORDPRESS_CONFIG_EXTRA: |
                /* Redis configuration */
                define('WP_REDIS_HOST','redis');
                define('WP_REDIS_PORT','6379');
                define('WP_REDIS_PASSWORD','your_redis_password');
                define('WP_CACHE_KEY_SALT','your_salt_key');
                define('WP_CACHE',true);
            REDIS_HOST: redis
        volumes:
            - './wp_content:/var/www/html/wp-content'
            - './uploads.ini:/usr/local/etc/php/conf.d/uploads.ini'
        networks:
            - npm_net

networks:
    npm_net:
        external:
            name: npm_net

2、在 wordpress/uploads.ini 中写入以下内容:

file_uploads = On
memory_limit = 256M
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 300
max_input_time = 300

3、在 nginx-proxy-manager/docker-compose.yml 中写入以下内容:

services:
    nginx-proxy-manager:
        image: jc21/nginx-proxy-manager:latest
        restart: always
        ports:
            - "80:80"     # http
            - "81:81"     # 管理后台
            - "443:443"   # https
        volumes:
            - ./data:/data
            - ./letsencrypt:/etc/letsencrypt
        networks:
            - npm_net

networks:
    npm_net:
        external:
            name: npm_net

四、创建共享网络

两个项目通过 npm_net 网络互通,因此需要在首次启动前手动创建:

docker network create npm_net

五、启动服务

启动 WordPress

cd wordpress
docker-compose up -d

启动 Nginx Proxy Manager

cd ../nginx-proxy-manager
docker-compose up -d

六、配置 Nginx Proxy Manager 实现 HTTPS

打开 Nginx Proxy Manager 管理后台:http://<服务器IP>:81

默认账号:admin@example.com

默认密码:changeme

修改密码后,添加 Proxy Host:

Domain Names:填写你的域名(确保已解析到服务器 IP)

Forward Hostname/IP:填写 wordpress

Forward Port:80

Scheme:http

SSL:申请并强制启用 Let’s Encrypt 证书

访问 https://yourdomain.com 即可进入 WordPress,并且自动开启 HTTPS。

七、总结

通过这种方式:

WordPress、数据库、Redis 独立运行

Nginx Proxy Manager 单独管理代理和证书

二者通过共享网络 npm_net 通信

这样不仅让服务解耦清晰,而且便于后续扩展更多站点或服务。

正文完
 0
评论(没有评论)