WordPress 是世界上最流行的博客系统之一,并且功能强大,使用简单,插件丰富。
著名的网购产品推荐网站「什么值得买」最初就是基于 WordPress 进行搭建的。
这篇文章,就简单记录一下自己的网站是怎么 Hello World 的。
| 一、搭建前的准备
• 一个域名
• 一个服务器
• 配置 DNS
为了省心,服务器和域名我都在腾讯云上购买了,因为要求不高,所以只花了百来块钱。通过 DNSPod 添加 A 记录,将域名指向服务器所在 IP。
| 二、手动搭建 LNMP 环境(CentOS 7)
LNMP 是 Linux、Nginx、MariaDB 和 PHP 的缩写,这个组合是最常见的 Web 服务器的运行环境之一。而 WordPress 就是基于 LNMP 来搭建的。
搭建过程可参考腾讯云的技术文档 《手动搭建 LNMP 环境(CentOS 7)》:
https://cloud.tencent.com/document/product/213/38056
| 三、手动搭建 WordPress 个人站点(Linux)
在上述两步完成后接下来就可以开始搭建 WordPress 个人站点了。
搭建过程可参考腾讯云的技术文档 《手动搭建 WordPress 个人站点(Linux)》:
https://cloud.tencent.com/document/product/213/8044
我自己使用的 WordPress 版本与技术文档中提及的有所不同。
| 四、为 WordPress 配置个人域名访问
1. 去到 Nginx 默认所在的文件夹,修改配置文件 nginx.conf,找到参数server_name 将 IP 改为自己的域名,使用命令 nginx -s -load 重载 Nginx。
2. 在 WordPress 的管理后台,按路径“设置–常规”,将 WordPress 地址(URL)和 站点地址(URL)都改为 http://example.com/wordpress ,其中 wordpress 为 WordPress 安装目录(每个人命名可能会不同,按实际情况填写,下同)然后保存更改。
完成上述两个步骤后就可以通过 http://example.com/wordpress 来访问网站了。
| 五、将 WordPress 设置为网站根目录
那我想通过 http://example.com/ 也可以访问网站,那么就需要将 WordPress 设置为网站的根目录。可参考 WordPress 官方文档《Giving WordPress Its Own Directory》:
需要做以下这三步:
1. 在网站的根目录创建 .htaccess 文件,将下面的内容写入该文件(按实际情况修改 example.com 和 my_subdir)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/my_subdir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /my_subdir/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ my_subdir/index.php
</IfModule>
2. 将 WordPress 文件夹中的 index.php 文件拷贝到网站根目录,同时将文件里的
require(dirname(__FILE__).‘/wp-blog-header.php’)
改为
require(dirname(__FILE__).‘/wordpress/wp-blog-header.php’)
3. 在 WordPress 的管理后台,按路径“设置–常规”,将站点地址(URL)改为 http://example.com
完成上述三个步骤后就可以通过 http://example.com 来访问网站了。
| 六、给网站配置HTTPS访问
1. 申请 SSL 证书
腾讯云可以申请域名型免费版(DV)
2. 开启80,443端口
3. 证书安装及设置 HTTP 强制跳转 HTTPS
可参考腾讯云技术文档 《Nginx 服务器证书安装》
https://cloud.tencent.com/document/product/400/35244:
1) 在腾讯云 SSL 证书管理控制台 中下载并解压缩 www.domain.com 证书文件包到本地目录,解压后得到 1_www.domain.com_bundle.crt 证书文件和 2_www.domain.com.key 私钥文件。
2) 将证书放到 Nginx 默认的文件夹下,编辑 nginx.conf 文件,对照原 server 配置进行修改:
#HTTPS访问设置
server {
listen 443 ssl;
#填写绑定证书的域名
server_name www.domain.com;
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root /var/www/www.domain.com;
index index.html index.htm;
#证书文件名称
ssl_certificate 1_www.domain.com_bundle.crt;
#私钥文件名称
ssl_certificate_key 2_www.domain.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
index index.html index.htm;
}
}
#HTTP强制跳转HTTPS
server {
listen 80;
#填写绑定证书的域名
server_name www.domain.com;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
3) 修改后用 nginx -t 验证配置文件问题,没有问题后用 nginx -s reload重载nginx
4. 设置页面
在 WordPress 的管理后台,按路径“设置–常规”,将站点地址(URL)改为 https://example.com ,同时将 WordPress 地址(URL)改为 https://example.com/example.com/wordpress
完成上述四个步骤后就完成了证书安装及设置 HTTP 强制跳转 HTTPS 。
| 七、主题设置
主题设置有两种方法,一种是直接通过 WordPress 自带的主题商城 访问安装,另外一种是通过上传主题包来安装。
1. WordPress 自带的主题商城安装
在选好主题后准备安装时会遇到一个问题 — —“要执行请求操作,wordpress 需要访问您网页服务器的权限”。
通过编辑 /etc/php-fpm.d/www.conf 可以解决,将 user 和 group 都修改为 nginx:
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
然后用 chmod -R 755 /usr/share/nginx/html/wordpress 和 chown -R nginx.root /usr/share/nginx/html/wordpress 来对网站目录文件夹进行授权。
2. 本地上传主题安装
会遇到以下几个问题:
1) “413 Request Entity Too Large”
这是 Nginx 和 PHP 对文件上传大小有限所导致的,所以可以通过修改相关配置文件来解决。
在 nginx.conf 中添加一行代码 client_max_body_size 20M;,
可以选择在 http{ } 中设置:client_max_body_size 20m;
也可以选择在 server{ } 中设置:client_max_body_size 20m;
还可以选择在 location{ } 中设置:client_max_body_size 20m;
三者有所区别:
设置到 http{} 内,控制全局 nginx 所有请求报文大小
设置到 server{} 内,控制该 server 的所有请求报文大小
设置到 location{} 内,控制满足该路由规则的请求报文大小
同时记得修改 php.ini 内的上传限制:upload_max_filesize = 20M 。通过命令 php –ini 可以确定 php.ini 文件的位置。修改完成后用命令systemctl reload php-fpm 和 systemctl restart php-fpm 重启和重载php-fpm
完成上述操作后重载 Nginx 。
2) “WordPress 没有上级目录的写权限”
通过命令 chmod -R 777 wordpress/wp-content 可以解决该问题
3) “要执行请求操作,WordPress 需要访问您网页服务器的权限”
解决方法与上述 1. WordPress 自带的主题商城安装 相同。
| 最后
现在开始,可以愉快地折腾自己的网站啦。