简介
在互联网时代,拥有一个个性化网站是展示自我、拓展业务的重要方式。WordPress作为全球最受欢迎的内容管理系统(CMS),凭借其易用性、灵活性和强大的社区支持,成为众多用户的首选。
WordPress基于PHP开发,搭配MySQL数据库,通过简洁高效的架构,支持多种主题和插件,可快速搭建博客、企业网站、电商网站等多种类型站点。部署WordPress网站,需要准备服务器空间(“土地”)和域名(“门牌号”),安装WordPress程序并配置好数据库,选择主题和插件进行个性化设置,即可完成搭建。
WordPress的灵活性和可扩展性是其亮点。用户可以根据需求更换主题,改变网站外观和布局;通过海量插件库,轻松实现SEO、社交媒体分享、在线支付等功能,无需复杂编程。同时,WordPress社区庞大且活跃,提供丰富的学习资源和技术支持,帮助用户快速解决问题。
我的WordPress站点:https://byteooo.cn
域名申请
如果你做国内的博客,申请域名需要备案,你可以去腾讯
或者阿里
申请,大概需要7到14天走完流程;国外免备案域名申请,可以看看godaddy
;当然你用了国外的域名,国内的人访问就很慢,且要翻不出去,国内域名就不存在这个问题。
注意:如果你只是自己部署玩玩,可以不用申请域名;如果你想放到互联网则申请域名
服务器配置
虚拟机名字 | cpu | 内存 | 磁盘 | 备注 |
---|---|---|---|---|
wordpress01 | 4核 | 4GB | 50GB | 因测试环境,系统盘和数据盘共用,建议选择高性能磁盘 |
如果你是vmware 虚拟机部署,确保本地电脑能访问到虚拟机,后面访问WordPress站点要用
如果你是公有云虚拟机,请记住EIP,后面访问WordPress站点要用,本教程采用公有云虚拟机
部署形态
本教程采用超融合部署,前后端未分离的方式,也就是nginx服务和wordpress服务、mysql服务都是在一台虚拟机上;
安装部署
安装docker服务
我这里是centos服务器下安装,如果没有yum源请自己设置一下yum源
yum install docker
容器部署 mysql数据库
docker run -d --name wordpressdb --restart=always \
-e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress \
-e TZ=Asia/Shanghai -e MYSQL_INITDB_ARGS="--lower_case_table_names=1" \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/log:/var/log swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:5.7
注意!
MYSQL_ROOT_PASSWORD:指定数据库的密码
MYSQL_DATABASE:指定创建数据库wordpress
-v /opt/mysql/data:/var/lib/mysql :数据库的数据存储路径存挂载到宿主机,请做好容量和性能的评估。
容器部署wordpress
docker run -d --name wordpress -p 80:80 -p 443:443 --restart=always \
-e TZ=Asia/Shanghai -e WORDPRESS_DB_HOST=172.17.0.2 \
-e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 \
-v /opt/wordpress:/var/www/html \
-v /opt/apache2:/etc/apache2 \ # 需要先把容器/etc/apache2目录下的文件拷贝到宿主机/opt/apache2目录,不然容器起不来
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/wordpress:6.2.2
注意!
WORDPRESS_DB_HOST:是用mysql容器的IP,可通过docker inspect wordpressdb 查看到;
WORDPRESS_DB_USER:数据库用户,用root就好
WORDPRESS_DB_PASSWORD:是数据库的密码
-v /opt/wordpress:/var/www/html :wordpress根目录挂载到宿主机
-p 80:80:这里使用宿主机80端口与wordpress容器80端口做nat映射射
注意!我这里没有用nginx,直接用wordpress容器里面的apache2服务
访问wordpress界面并配置
访问地址和端口
在浏览器输入:http://宿主机IP:80
宿主机IP就是虚拟机或物理机IP或者是EIP
wordpress初始化配置
出现这个页面表示已经创建成功。wordpress基础功能已经配置好了。
上传主题
下载主题包:https://gitee.com/MUCEO/qzdy
注意: 下载好主题包,进行解压压缩,文件夹重命名为
qzdy
,再压缩包之后,后台上传安装主题即可
配置 apache https
使用 Certbot 申请免费的 SSL 证书
使用 Certbot 申请和自动续签 Let’s Encrypt 的免费 SSL 证书
配置wordpress apache服务ssl和域名
80端口apache 服务配置文件
$ cat /opt/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerName www.byteooo.cn
ServerAlias byteooo.cn
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
RewriteEngine On # http请求都跳转到https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
443端口apache 服务配置文件
$ cat /opt/apache2/sites-available/default-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName www.byteooo.cn
ServerAlias byteooo.cn
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/cert/fullchain.pem
SSLCertificateKeyFile /etc/apache2/cert/privkey.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory "/var/www/html/wp-admin"> # 限制公网ip访问wp-admin接口
Require all denied
Require ip 110.130.0.0/16
Require ip 223.124.16.257
</Directory>
</VirtualHost>
</IfModule>
确保启用了 SSL 模块和加载default-ssl 配置
wordpress 容器里面执行
$ sudo a2enmod ssl
$ sudo a2enmod rewrite
$ sudo a2ensite default-ssl.conf
$ sudo systemctl reload apache2
修改需要密码解锁文章
修改需要密码解锁文章的提示
$ cp /opt/wordpress/wp-includes/post-template.php opt/wordpress/wp-includes/post-template.php-bak
$ vim /opt/wordpress/wp-includes/post-template.php +1810
# 修改这段内容
<p>' . __( 'This content is password protected. To view it please enter your password below:' ) . '</p>
# 修改成这样,可以根据需求修改修改
<p style="color:#ff0000;">' . __( '收集和整理知识实属不易,请付费解锁原创内容,感谢支持知识创作!<a href="https://byteooo.cn/wp-content/uploads/2025/07/bcaaeefef600a6d1dbcf80.jpg" target="_blank">【点击
联系我付费20元解锁本站所有付费文章】</a>' ) . '</p>
测试验证https
浏览器打开地址:https://www.byteooo.cn 自动跳转到https并成功打开界面代表成功。
故障问题记录
上传主题文件报错
echo php_value upload_max_filesize 500M $'\n'php_value post_max_size 500M >> /opt/wordpress/.htaccess
从数据库修改WordPress 6.2 的 后台登录地址
# 查看'siteurl', 'home'地址
mysql> SELECT option_name, option_value FROM wp_options WHERE option_name IN ('siteurl', 'home');
+-------------+-----------------------------+
| option_name | option_value |
+-------------+-----------------------------+
| home | http://192.168.115.129:8080 |
| siteurl | http://192.168.115.129:8080 |
+-------------+-----------------------------+
2 rows in set (0.00 sec)
# 修改 'siteurl'地址
mysql> update wp_options SET option_value = 'http://192.168.31.94:8080' WHERE option_name = 'siteurl';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
# 修改'home'地址
mysql> update wp_options SET option_value = 'http://192.168.31.94:8080' WHERE option_name = 'home';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
设置限制ip访问 wp-admin接口
# 2选1
# 在wordpress根目录下的wp-admin目录下创建.htaccess文件
$ cat >> /opt/wordpress/wp-admin/.htaccess < EOF
Order Deny,Allow
Deny from all
Allow from 213.204.192.12
Allow from 140.230.73.24
EOF
# 或者修改apache2配置文件 建议用这个
vim /opt/apache2/sites-available/default-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName www.byteooo.cn
ServerAlias byteooo.cn
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/cert/fullchain.pem
SSLCertificateKeyFile /etc/apache2/cert/privkey.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory "/var/www/html/wp-admin"> # 添加这部份去限制ip访问
Require all denied
Require ip 110.130.10.0/16
Require ip 213.204.26.157
</Directory> #这里结束
</VirtualHost>
</IfModule>
使用 CSS 修改整体网站文字大小
如果你的主题不提供文字大小設定的功能的話,那自己设定 CSS 应该是最好的方法了,在主题>自定义的功能中,通常會有一個附加的 CSS 設定,在此处你就可以任意修改文字的大小。
比如說,我想把文章內文的字型大小改為 18 px,那我就可以加入以下設定:
.text {
font-size: 15px !important;
}
如果是想要修改 H2 標題呢,你可以使用以下的設定:
h2 {
font-size:36px;
}
实用的插件
- Import Markdown:markdown文件导入插件
- Markup Markdown: markdown编辑器插件,安装后文章编辑器用的是markdown编辑器
- nicen-localize-image:markdown文件导入后远程图片可自己下载转存入本地图库库
- The Paste:粘贴图片到编辑器,图片自己存入本地图库中
- WP Statistics:可以统计访问网站的用户数量、IP数量、引荐网站,浏览器,搜索引擎,操作系统,国家和城市。