腾讯云服务器docker部署WordPress
很多人其实是想有个自己的网站的,网站程序有流行的免费WordPress,差的只是一台服务器。
偶然看到腾讯云服务器的优惠活动,首次购买3年只需要280元,1核CPU,1G内存,对于个人建站之类的完全足够了,超值,立马买了,强烈推荐。
有了服务器,也有免费好用的WordPress,但是对于不懂编程没有经验的人来说,要顺利安装部署WordPress任然是个很大的挑战。这里跟大家介绍一种最简单的方式在服务器上安装WordPress——docker。
docker简介
关于docker大家可自行搜索。简单而言就是通过它可以最大程度的复用功能,而不是程序。
比如说MySQL数据库,普通的使用方式就是,你需要在一台电脑上,安装MySQL这个程序,还要安装它需要的依赖程序,安装后你需要启动,配置开机启动等,虽然说MySQL本身这个程序是可复用的,但真正让它跑起来还是需要做很多工作的。
然而通过docker运行MySQL就简单很多了。
我们可以把普通运行MySQL的整个完整过程包装好,打成一个镜像,这个镜像里包括了所有运行MySQL的一切东西,你只需要拿到这个镜像,通过docker运行一个容器就好了,非常方便简单快捷。
详细的安装WordPress步骤
安装docker
运行MySQL容器
运行Nginx容器
运行WordPress容器
安装docker
为顺利安装,请用root账号登录服务器
用阿里云的镜像,这样安装会快一些
yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum install -y docker-ce
启动并加入开机自动启动
yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum install -y docker-ce
启动并加入开机自动启动
systemctl start docker
systemctl enable docker
验证是否安装成功
docker version
能看到一些相关版本信息就说明成功了。
运行MySQL容器(mysql 8)
在本机的/etc/mysql新建my.cnf文件,加入MySQL配置
[mysqld]
datadir = /var/lib/mysql/data
socket = /var/lib/mysql/mysql.sock
#8.0默认的认证方式不再是这个了,修改这个客户端才能正常连接
default_authentication_plugin= mysql_native_password
secure-file-priv= NULL
sort_buffer_size = 2M
join_buffer_size = 3M
max_connections=300
tmp_table_size = 5M
innodb_buffer_pool_size = 64M
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置客户端默认字符集
default-character-set=utf8
执行以下命令
mkdir /var/lib/mysql
chown -R polkitd:input /var/lib/mysql
docker run –name mysql -p 3306:3306 –restart=always -e MYSQL_ROOT_PASSWORD=root -v /var/lib/mysql/:/var/lib/mysql/ -v /var/lib/mysql-files:/var/lib/mysql-files/ -v /etc/mysql/my.cnf:/etc/mysql/my.cnf -d mysql
这样就启动了一个用户和密码都为root的MySQL容器了。
默认下云服务都有安装MySQL客户端,没有就自己安装一个。
我们用MySQL客户端可以连接MySQL服务。
mysql -uroot -proot
运行Nginx容器
实际上,这步不是必须。但对于一台独立的云服务器,后续可能会部署多个网站或服务,而对于个人大多是使用同一个域名,这样通过Nginx的反向代理就很方便,因此强烈建议安装Nginx。
在/etc/nginx新建nginx.conf文件,内容如下:
ser nginx;
worker_processes 1;
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;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name xxx;#这里改成你的域名
#proxy to WordPress docker
location / {
proxy_pass http://127.0.0.1:1080/; #这里反向代理到WordPress端口
#必须加这句,否则首页会重定向到127.0.0.1
proxy_set_header Host $host;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
##https配置,如不需要https,去掉下面这个server部分
server {
listen 443 ssl; # 1.1版本后这样写
server_name xxx; #填写绑定证书的域名
ssl_certificate /etc/nginx/key/bumishi.cn.pem; #证书所在的文件
ssl_certificate_key /etc/nginx/key/bumishi.cn.key; #证书key所在的文件
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
#这里反向代理到WordPress端口
proxy_pass http://127.0.0.1:1080/;
}
}
}
以host网络模式运行Nginx容器:
docker run –name nginx –network=host –restart=always -v /var/log/nginx/:/var/log/nginx/ -v /etc/nginx/key/:/etc/nginx/key -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf -d nginx
如果没有HTTPS证书,不需要HTTPS,nginx.conf配置文件中去除相应HTTPS的配置:
docker run –name nginx –network=host –restart=always -v /var/log/nginx/:/var/log/nginx/ -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf -d nginx
运行WordPress容器
docker run -d –name wordpress –restart=always -e WORDPRESS_DB_HOST=172.17.0.10:3306 -e WORDPRESS_DB_PASSWORD=root -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_CONFIG_EXTRA=”define(‘WP_HOME’,’http://bumishi.cn’); define(‘WP_SITEURL’,’http://bumishi.cn’);” -p 1080:80 wordpress
将以上命令中的几处修改成适合自己的信息:
WORDPRESS_DB_HOST=172.17.0.10:3306将IP地址换成云服务器的内网地址
WORDPRESS_CONFIG_EXTRA=”define(‘WP_HOME’,’http://bumishi.cn’); define(‘WP_SITEURL’,’http://bumishi.cn’);”将域名替换成你自己的域名。
如果一切正常,那么网站就可以访问了。