准备工作:购买域名和服务器、数据库
云+校园学生优惠
助你快速入门云计算,畅游云端,成就高校创业家梦想
校园云服务器25岁以下免学生认证:https://curl.qcloud.com/19PPOOrx
限购1台,完成学生认证可获3次在优惠续费的资格,首单特惠产品不参与同价续费
腾讯云域名注册:https://curl.qcloud.com/FFPhPl9d
域名首购1元起,下单即送免费版证书和解析,“.com ”全球通用域名,“.cn” 中国企业互联网标识。
腾讯云轻量应用云服务器:https://curl.qcloud.com/elBIPaA9
轻量应用云服务器适用于大多数网站,相对于普通的CVM,优势是便宜,网络带宽够大,境外服务器无需备案,我们选择配置
轻量 2核2G30M 价格:345.6元 约28.8元/月384元实例套餐 2核2G30M(Linux)
新加坡/硅谷/多伦多/东京/法兰克福/孟买
30GB SSD盘 1024GB月流量 30M峰值带宽
轻量数据库MySQL 5.7:https://curl.qcloud.com/3DYuOOXt
为了数据安全和更好的性能,方便数据迁移和保护,可以单独购买数据库,而不是和主机安装在一起,万一服务器出现故障,还可以确保数据隔离和安全,最低配置价格一年168元,3年仅需要378元,可选广州、上海、北京、南京地区,以及香港、硅谷境外地区数据库。
特别注意:数据库与服务器必须处于同一个区域才能使用内网连接,不在同一区域的无法使用。
数据库版本 MySQL 5.7
实例套餐 1核1G 20GB(SSD)
时长 3年3折
搭建服务器
首先选择地区美国西部硅谷,镜像选择 Ubuntu 20.04 LTS
进入控制台轻量应用服务器
进入轻量应用服务器控制台:https://console.cloud.tencent.com/lighthouse/instance,点击密钥,生成一个登录密钥
点击服务器,远程登录这里选择绑定密钥
重置登录用户 ubuntu 登录密码:
现在可以登录服务器了,密钥登录方式:
密钥为blog20220918.pem(换成你自己的,密钥放在当前命令目录),xx.xx.xx.xx为公网IP(点服务器可以查看公网地址)
ssh -i "blog20220918.pem" ubuntu@xx.xx.xx.xx
指定密钥地址比如:
ssh -i "C:\Users\luochenzhimu\Documents\Esiry\Esiry_tencent.pem" ubuntu@xx.xx.xx.xx
这里使用 Windows PowerShell 登录,输入 yes 回车
密码登录方式:
ssh ubuntu@xx.xx.xx.xx
管理员 root 设置
为方便处理,我们来操作允许一下root管理员登录:
重置root用户密码:
sudo passwd root
编辑配置文件:
sudo vi /etc/ssh/sshd_config
点击键盘字母 i 进入 vim 编辑模式
#PermitRootLogin prohibit-password
改为 PermitRootLogin yes
找到将 #PasswordAuthentication yes
修改为 PasswordAuthentication yes
点击 esc 退出编辑模式,最后键入 :wq 保存并退出
重启ssh服务:
sudo service ssh restart
root 用户登录命令(xx.xx.xx.xx为IP地址):
ssh root@xx.xx.xx.xx
传输文件的软件 WinSCP
为方便传输文件,我们下载一个远程文件管理器 WinSCP,包含 Notepad++ 和 PuTTY 外置程序。
百度网盘:https://pan.baidu.com/s/1m8pU514ecU6qMbjiCYLOYw?pwd=lsua
落尘之木:https://dl.luochenzhimu.com/software/WinSCP/WinSCP.zip
主机名输入服务器 IP 地址,用户名为 ubuntu 或者 root,密码输入用户密码(若为密钥登录则留空)。
若使用密钥登录,则点击高级-SSH-验证-密钥文件-选中密钥,确定转换为 PuTTY 格式
配置 PuTTY位置:
配置 Notepad++位置:
搭建WordPress博客系统
接下来打开 Windows PowerShell 终端并 SSH 连接登录服务器,依次运行命令如下:
首先更新数据源,依次运行两条命令, 第二条需输入 Y 回车确认更新:
sudo apt-get update sudo apt-get upgrade
弹出什么,确认就好
安装Apache2, 输入 Y 回车确认:
sudo apt install apache2
安装MySQL数据库, 输入 Y 回车确认:
sudo apt-get install mysql-server mysql-client
安装PHP,依次运行三条命令, 输入 Y 回车确认:
sudo apt-get install php sudo apt-get install libapache2-mod-php sudo apt-get install php-mysql
安装 phpMyAdmin 数据库管理:
sudo apt-get install phpmyadmin
中途回车选择 apache2
配置 phpmyadmin,回车确认:
设置管理员密码:
再次确认密码:
开启 mod_rewrite 模块:
sudo a2enmod rewrite
重新启动 apache2 和 MySQL
sudo service apache2 restart sudo service mysql restart
配置数据库:
本地数据库:
新安装的 MySQL数据库没有密码,需要想办法设置数据库 root 用户密码,依次运行命令:
sudo systemctl start mysql cd /etc/mysql sudo cat /etc/mysql/debian.cnf
文件 /etc/mysql/debian.cnf
记录着 MySQL 临时用户密码
地址(host):localhost
用户名(user):debian-sys-maint
密码(password,每台服务器不同):nM2S9cTzlEvUZZ9J
我们来登录试下:
mysql -u debian-sys-maint -p
成功登录:
接下来设置数据库 MySQL 的 root 用户密码,依次在 MySQL 命令行里面运行
use mysql; select user,plugin from user; update user set plugin='mysql_native_password' where user='root';
接着运行,看到 plugin 值改变了
select user,plugin from user; flush privileges;
我们来更改 root 用户密码:
alter user 'root'@'localhost' identified by 'your_password'; flush privileges;
退出数据库
尝试用密码登录 MySQL:
mysql -u root -p use mysql show databases;
创建一个数据库 blog_db:
create database blog_db; show databases;
因为我们数据库是8.0以上的版本,很多博客给的输入方式是针对于MySQL 5.7版本的,已经过时了,因此我们这里直接使用MySQL 8.0以上的语法就好。
先创建用户,user 和 password 改成你自己的:
create user 'user'@"localhost" IDENTIFIED BY 'Password';
然后分别按下面的操作执行, blog_db,user 改成你自己的::
# 授权 grant all on blog_db.* to "user"@"localhost" with grant option; # 使配置生效 flush privileges; # 显示所有用户 SELECT DISTINCT User FROM mysql.user; # 退出MySQL。 exit;
云数据库:
找到 MySQL 的内网地址,将以上代码的 localhost 换成 内网 IP,可以通过腾讯云后台进行数据库管理和数据库用户维护。
接着下载安装 WordPress:
WordPress下载地址:https://wordpress.org/download/releases/
WordPress 中文下载地址:https://cn.wordpress.org/download/releases/
curl -O https://wordpress.org/wordpress-5.7.7.tar.gz tar xzvf wordpress-5.7.7.tar.gz
WordPress 中文版安装命令:
curl -O https://cn.wordpress.org/wordpress-5.7.7-zh_CN.tar.gz tar xzvf wordpress-5.7.7-zh_CN.tar.gz
由于默认访问 /var/www/html/ 文件夹,所以我们需要把 wordpress 文件夹复制到 /var/www/html/ 文件夹
sudo mv wordpress /var/www/html/
设置权限:修改一下 /var/www/html/ 目录权限:
sudo chmod -R 777 /var/www/html/
接着一些文件操作:
# 删除下载的文件 sudo rm -r wordpress-5.7.7-zh_CN.tar.gz # 删除默认 Apache2 主页文件 sudo rm -r /var/www/html/index.html # 复制 WordPress 主页文件 sudo cp /var/www/html/wordpress/index.php /var/www/html/
修改主页文件
sudo vi /var/www/html/index.php
将 /wp-blog-header.php 改为 /wordpress/wp-blog-header.php:
点击键盘字母 i 进入 vim 编辑模式
点击 esc 退出编辑模式,最后键入 :wq 保存并退出
重启 Apache 服务:
sudo service apache2 restart
重启服务器:
sudo reboot
打开公网 IP 地址:
跳转到安装目录:http://xx.xx.xx.xx/wordpress/wp-admin/setup-config.php,点击 Let’s go! 按钮
填写刚才创建的数据库,Database Name数据库名称,Username用户名,Password用户密码,Database Host数据库地址(本地则为localhost),Table Prefix数据表前缀不用动。
The name of the database you want to use with WordPress. | ||
Your database username. | ||
Your database password. | ||
You should be able to get this info from your web host, if localhost doesn’t work. | ||
If you want to run multiple WordPress installations in a single database, change this. |
准备就绪,开始旅程!
创建 WordPress 管理员用户,包括站点名称、用户名、密码、邮箱,Search engine visibility不要勾选:
安装成功!
更新 WordPress需要填写FTP? 我们来解决一下这个小问题:
在WordPress
目录下找到wp-config.php
文件并编辑,在最后一行加上:
define('FS_METHOD', "direct");
命令行如下:
sudo vi /var/www/html/wordpress/wp-config.php
点击键盘字母 i 进入 vim 编辑模式,加上一句 define('FS_METHOD', "direct");
如图所示
# 原来是英文版,加这句可以更新为中文版 define('WPLANG', 'zh_CN'); # 加上这句 define('FS_METHOD', "direct");
点击 esc 退出编辑模式,最后键入 :wq 保存并退出
WordPress后台界面:
配置域名 https 加密访问
域名解析:
登录DNSPod控制台:https://console.dnspod.cn/dns/,
添加你的域名,点开域名添加两条 A 记录的解析到服务器 IP xx.xx.xx.xx
主机记录 | 记录类型 | 线路 | 记录值 |
@ | A | 默认 | xx.xx.xx.xx |
www | A | 默认 | xx.xx.xx.xx |
安装依赖包
用 IP 地址或者 http 访问是不安全的,现在我们来配置 https 加密访问。
依次输入以下命令安装依赖:
sudo apt-get install openssl sudo a2enmod ssl sudo apt-get install socat sudo service apache2 restart
安装 acme.sh 脚本
GitHub 项目地址: https://github.com/Neilpang/acme.sh
进入管理员模式:
sudo su
安装 acme.sh,email 改为你自己的:
curl https://get.acme.sh | sh -s email=admin@email.com
备用地址:https://dl.luochenzhimu.com/software/acme/acme.sh
curl https://dl.luochenzhimu.com/software/acme/acme.sh | sh -s email=admin@email.com
安装完成后必须关闭 PowerShell 终端,否则不生效,重新打开管理员 root 终端命令,看一下有没有安装成功:
sudo su acme.sh -h
我们来生成证书(-d domain.com -d www.domain.com 换成自己的域名):
acme.sh --issue -d domain.com -d www.domain.com --apache
生成 https 证书位置:
新建一个文件夹保存证书:
mkdir /etc/apache2/certs
安装证书到目录(这是一条转行命令,domain.com 编辑成自己的域名直接粘贴到命令窗口):
acme.sh --install-cert -d domain.com \ --cert-file /etc/apache2/certs/domain.com.crt \ --key-file /etc/apache2/certs/domain.com.key \ --ca-file /etc/apache2/certs/ca.crt \ --reloadcmd "service apache2 force-reload"
配置 https 证书
上文安装完后,会在 /etc/apache2/sites-available/ 目录下生成一个缺省的 default-ssl.conf 文件。缺省的网页目录仍然是/var/www/。我们可以创建一个链接到 site-enabled 目录。
退出管理员 root
exit
方式一:生成软链接
sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/enables-ssl
编辑配置:
sudo vi /etc/apache2/sites-available/default-ssl.conf
方式二:如果不想用软链接,可以从 sites-available 中复制 default-ssl.conf 到 sites-enabled文件夹(表示启用的配置)
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled
然后修改default-ssl.conf,分别找到SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFile 修改配置
(点击键盘字母 i 进入 vim 编辑模式,点击 esc 退出编辑模式,最后键入 :wq 保存并退出)
sudo vi /etc/apache2/sites-enabled/default-ssl.conf
修改参数为
SSLCertificateFile /etc/apache2/certs/domain.crt SSLCertificateKeyFile /etc/apache2/certs/domain.key SSLCertificateChainFile /etc/apache2/certs/ca.crt
重启 Apache2 生效:
sudo service apache2 restart
登录 WordPress 网站配置域名:
地址:http://xx.xx.xx.xx/wordpress/wp-admin/options-general.php
配置为:
WordPress地址(URL):https://www.domain.com/wordpress
站点地址(URL):https://www.domain.com/
现在可以通过https加密域名访问:
WordPres 后台管理:https://www.domain.com/wordpress/wp-admin/
网站主页:https://www.domain.com/
acme.sh 查看域名证书信息:
sudo su acme.sh --info -d domain.com
更新数字证书
sudo su acme.sh --renew -d domain.com --force
后续更新acme.sh方法
sudo su acme.sh --upgrade
设置http重定向为https
1.启动重定向
启动 rewrite mod
sudo a2enmod rewrite 或者 sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
2.设置 http 端口重定向
方式一(推荐):
打开 /etc/apache2/sites-available/000-default.conf ,
(点击键盘字母 i 进入 vim 编辑模式,点击 esc 退出编辑模式,最后键入 :wq 保存并退出)
sudo vi /etc/apache2/sites-available/000-default.conf
在 <\VirtualHost *:80><\VirtualHost> 标签内随便一个地方加入以下三行
RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R=301]
方式二:
或者在网站目录处新建.htaccess,依次输入三条命令:
cd /var/www/html ll sudo vi .htaccess
新建.htaccess 编辑内容:
(点击键盘字母 i 进入 vim 编辑模式,点击 esc 退出编辑模式,最后键入 :wq 保存并退出)
RewriteEngine on RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.* https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
3. 修改 Apache2 配置
修改 Apache2 的配置文件 Apache2.conf
sudo vi /etc/apache2/apache2.conf
编辑 AllowOverride none
改为 AllowOverrid All
4. 最后重启 Apache2
sudo service apache2 restart
防止 WordPress 自动更新,编辑 /var/www/html/wordpress/wp-config.php
sudo vi /var/www/html/wordpress/wp-config.php
加上这句:
define("WP_AUTO_UPDATE_CORE", false);
安装完博客系统,重启一下服务器:
sudo reboot
配置邮件系统
WordPres 后台插件系统搜索:SMTP,选择 WP SMTP 安装
启用插件,打开插件设置邮箱:
获取SMTP授权码:
登录 QQ 邮箱:https://mail.qq.com/
腾讯企业邮箱(可免费自定义域名):https://exmail.qq.com/login
主要参数信息如下,其他配置请保持默认。
- SMTP 主机:填写
smtp.qq.com
。 - 加密:选择 “SSL”。
- SMTP 端口:填写
465
。 - SMTP 用户名:填写您的邮箱地址。
- SMTP 密码:填写授权码,不是 QQ 邮箱的密码。
- 发件人名称:可填写您的博客名称。
- 发件人:可填写管理员的邮件地址。需为有效的邮件地址,否则会报错。
获取授权码:点击设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-生成授权码
服务器数据迁移(可选):
以腾讯云为例,制作服务器镜像,跨区域复制镜像,然后使用镜像恢复到新的服务器。
mysqldump -h xxx.xx.xx.x -uroot -p blog_db --set-gtid-purged=off > blog_db.sql
mysql -h xxx.xx.xx.x -u root -p drop database blog_db;
create database blog_db;
mysql -h xxx.xx.xx.x -u root -p blog_db< blog_db.sql
mysql -h localhost -u root -p blog_db< blog_db.sql
修改 WordPress 配置文件 wp-config.php 中的 /** MySQL hostname */
小Tips:
PowerShell 登录同一服务器 IP 地址时会记录密钥,服务器发生变化时密钥对不上无法登录
step1: 在 PowerShell 中输入 cd ~/.ssh/
, 进入.ssh
文件夹
step2: 执行 start ./know*
, 打开存储着 host 信息的文件, 找到对应 ip 的 sample.xxx.xxx.xxx 的那一行,删掉这一行,然后保存文件
感谢发现,全网没找到几个可以用的
感谢楼主分享