您现在的位置是:首页 > 教程 > WordPress教程WordPress教程

docker创建WordPress并强制使用https的方法

龙绍焱2025-03-28 15:50:05WordPress教程已有23人查阅

导读1、创建数据文件夹 mkdir /data ,所有文件都在此配置。2、安装docker,3、配置mysql:-p 3306:3306 端口映射--name mysql 自定义容器名-e MYSQL_ROOT_PASSWORD=yourpassword 配置mysql默认密码

1、创建数据文件夹 mkdir /data ,所有文件都在此配置。
2、安装docker,
3、配置mysql:
mkdir /data/mysql
cd /data/mysql
docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=yourpassword -m 512m --memory-swap -1 --oom-kill-disable -d mysql:5.7
说明:
-p 3306:3306 端口映射
--name mysql 自定义容器名
-e MYSQL_ROOT_PASSWORD=yourpassword 配置mysql默认密码
-m 512m --memory-swap -1 配置允许较大内存及交换空间-1表示无限
--oom-kill-disable 防止系统内存不足时自动杀进程
设置mysql允许外网访问
docker exec -it mysql bash #进入容器内部
mysql -u root -p #进入mysql,密码为刚设置的密码
grant all privileges on *.* to 'root'@'%' ; #允许远程登录
flush privileges; #刷新权限
exit #退出mysql
exit #退出容器
#重启mysql容器
docker restart mysql
4、配置WordPress:
mkdir /data/wordpress
cd /data/wordpress
docker run --name wordpress -p 8002:80 -e WORDPRESS_DB_HOST=172.17.0.1:3306 -v /data/wordpress/ /html/:/var/ /html/ -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=yourpassword -m 512m --memory-swap -1 --oom-kill-disable -d wordpress
说明:
-p 8002:80将主机8002端口映射到容器80端口
-e WORDPRESS_DB_HOST=172.17.0.1:3306 使用外部mysql
-e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=yourpassword 外部mysql用户名密码
-v /data/wordpress/ /html/:/var/ /html/ 映射WordPress的程序文件夹
-m 512m --memory-swap -1 配置允许较大内存及交换空间-1表示无限
--oom-kill-disable 防止系统内存不足时自动杀进程
5、配置nginx:
docker run -p 80:80 -p 443:443 --name nginx -v /data/nginx/ :/-v /data/nginx/conf.d:/etc/nginx/conf.d -v /data/nginx/cert:/etc/nginx/cert -v /data/nginx/logs:/ logs -m 64m --memory-swap -1 --oom-kill-disable -d nginx
说明:
-v /data/nginx/conf.d:/etc/nginx/conf.d 映射配置文件
-v /data/nginx/cert:/etc/nginx/cert 映射证书文件
证书可以选择使用阿里云的证书,免费一年,到期再申请一次就行了。
下载nginx证书,并上传到/data/nginx/cert目录
配置反向代理:
cd /data/nginx/conf.d
vi home.conf
server {
listen 80;
server_name.yoursite.com;
return 301 https:// .yoursite.com$request_uri; #自动跳转http到https
}
server {
listen 443;
server_name.yoursite.com;
ssl on;
ssl_certificate /etc/nginx/cert/3666270_yanglei.xyz.pem;
ssl_certificate_key /etc/nginx/cert/3666270_yanglei.xyz.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; #获取真实ip
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.17.0.1:8002;
client_max_body_size 10240m;
}
}
保存重启nginx: docker restart nginx
6、修改WordPress:
配置完之后发现无法加载js及css,解决办法如下:
进入WordPress程序目录 cd /data/wordpress/ /html ,修改配置 vi wp-config.php
在第一段注释后面增加以下代码:
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
之后访问WordPress并安装就可以了,而且已经全站https了,不需要再做其他额外配置。如果在修改前安装好了WordPress,不知道再这样改行不行。

本文标签:

很赞哦! (0)

暂无内容
暂无内容
暂无内容
暂无内容
留言与评论 (共有 0 条评论)
昵称:
匿名发表 登录账号
         
验证码: