docker部署WordPress

By | 2024 年 5 月 13 日

1.docker run –name wordpress -p 80:80 -v /home/wordpress:/var/www/html -dit wordpress
2.启动后web访问内网服务器8080端口完成配置
3.登录后台 设置->常规->WordPress地址(URL)&站点地址(URL)配置自己的https域名

将内网端口穿透到云服务器对应端口后

云服务器nginx配置:

upstream wp {
    server 127.0.0.1:8080 ;
}
server {
    listen    80;
    server_name wp.demo.com;
    # 重定向到 https 站点
    rewrite ^(.*)$ https://$host$request_uri;
}
## Normal HTTP host
server {
    listen          443 ssl;
    server_name wp.demo.com; ## 修改成自己的域名
    ssl_certificate /etc/nginx/cert/wp.demo.com.pem;
    ssl_certificate_key /etc/nginx/cert/wp.demo.com.key;
    # 配置服务器可使用的加密算法
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
    # 指定服务器密码算法在优先于客户端密码算法时,使用 SSLv3 和 TLS 协议
    ssl_prefer_server_ciphers on;
    # ssl 版本 可用 SSLv2,SSLv3,TLSv1,TLSv1.1,TLSv1.2
    # ie6 只支持 SSLv2,SSLv3 但是存在安全问题, 故不支持
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ## See app/controllers/application_controller.rb for headers set
    ## Individual nginx logs for this GitLab vhost
    access_log  /var/log/nginx/access.log; # 根据实际情况修改
    error_log   /var/log/nginx/error.log; # 根据实际情况修改
    location / {
        root   html;
        index index.php index.html index.htm;
        proxy_redirect off; # 禁止跳转
        proxy_set_header Host $host;    # 域名转发
        proxy_set_header X-Real-IP $remote_addr;    # IP转发
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://wp;
   }
}

PS:ios手机可以在App Store中下载 WordPress/jetpack应用软件进行关联管理

QA:

1.当您的一个WordPress网站配置Https后,登录WordPress管理后台出现“抱歉,您不能访问此页面” 或者 “将您重定向的次数过多”的问题时,可以使用此供方法快速解决。

在你的网站根目录下,找到 wp-config.php 文件,并加入以下代码:

$_SERVER['HTTPS'] = 'ON';
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
define( 'CONCATENATE_SCRIPTS', false );

关键说明:以上代码添加时,必须添加在if ( !defined(‘ABSPATH’) ) 代码之前才能生效!

2.修复中国大陆wordpress上Gravatar头像无法显示问题

打开wp-includes文件夹下functions.php
将以下代码粘贴至主题文件夹内的 functions.php 最下方

/*修复wordpress上Gravatar头像无法显示问题*/
if ( ! function_exists( 'get_cravatar_url' ) ) {
    /**
     *替换Gravatar头像为Cravatar头像
     *
     * @param string $url
     *
     * @return string
     */
    function get_cravatar_url( $url ) {
        $sources = array(
            'www.gravatar.com',
            '0.gravatar.com',
            '1.gravatar.com',
            '2.gravatar.com',
            'secure.gravatar.com',
            'cn.gravatar.com'
        );
        return str_replace( $sources, 'cravatar.cn', $url );
    }
    add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
    add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
    add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}

3.配置redis缓存(插件:Redis Object Cache

wp-config.php 文件,并加入以下代码:

// adjust Redis host and port if necessary
define( 'WP_REDIS_HOST', '172.17.0.3' );
define( 'WP_REDIS_PORT', 6379 );

// change the prefix and database for each site to avoid cache data collisions
define( 'WP_REDIS_PREFIX', 'blog' );
define( 'WP_REDIS_DATABASE', 0 ); // 0-15

// reasonable connection and read+write timeouts
define( 'WP_REDIS_TIMEOUT', 1 );
define( 'WP_REDIS_READ_TIMEOUT', 1 );

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注