VPS
从 cloudcone 购买的 VPS,地址:https://cloudcone.com/vps/
搭建环境
Typecho、PHP、MySQL、Nginx、CentOS 7。
# 安装 yum-utils 工具,下面后用到
yum install yum-utils -y
MySQL
下载 mysql yum 源,网址:https://dev.mysql.com/downloads/repo/yum/,选择 CentOS 7 版本的
cd ~
wget https://repo.mysql.com/mysql80-community-release-el7-9.noarch.rpm
安装这个 rpm,实际上是在 /etc/yum.repos.d/ 下创建了几个 mysql 的 repo 文件
rpm -ivh mysql80-community-release-el7-9.noarch.rpm
查看 mysql 版本,此 yum 源中包含了多个版本的 mysql,默认启用最新的版本,也就是 mysql 8.0,这里我们使用 mysql 5.7,需要改一下 repo 文件
# 查看 mysql 版本
yum repolist all | grep mysql
# 修改 repo 文件,将 5.7 版本的 enabled 字段改为 1,8.0 的改为 0
vim /etc/yum.repos.d/mysql-community.repo
# 当然,也可以使用以下命令
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
# 使用 enabled 参数看下是否修改成功
yum repolist enabled | grep mysql
正式安装 mysql
yum install -y mysql-community-server
# 开机自启
systemctl enable mysqld.service
# 查看开机自启是否设置成功
systemctl list-unit-files | grep mysqld
# 启动 mysql
systemctl start mysqld
# 查看初始密码
grep 'temporary password' /var/log/mysqld.log
# 登录
mysql -u root -p
# 修改默认密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
# 刷新权限
flush privileges;
# 设置账号远程访问
use mysql;
update user set host='%' where user='xxx';
# 查看端口是否被占用
netstat -nltp | grep mysql
PHP
下载 rpm
cd ~
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
安装 rpm
rpm -ivh remi-release-7.rpm epel-release-latest-7.noarch.rpm
启用 php 7.4 repo
yum-config-manager --enable remi-php74
安装 php 及其扩展
yum install -y php php-fpm php-mysql php-mbstring
启动 php-fpm
systemctl enable php-fpm
systemctl start php-fpm
Nginx
cd ~
# 下载 nginx rpm
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 安装 rpm 获得 nginx repo 文件
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 或者一步到位,直接从远端下载安装 rpm
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 正式安装
yum install -y nginx
# 开机自启
systemctl enable nginx
systemctl start nginx
部署 Typecho
去官网下载安装包,这里是 1.21 版本的,https://typecho.org/download。
将其解压得到 typecho 根目录,放到 /usr/share/nginx/html
目录下,可以将此目录下默认的文件删除或备份到其他目录。注意设置 typecho 目录的权限,默认应该是 777,设置写权限方便安装程序安装。
chmod 777 typecho
在 /etc/nginx/conf.d
目录下创建一个名为 typecho.conf 的配置文件。记得将该目录下默认的 default.conf 文件删除或换个名字,如 default.conf.bak,因为里面有个默认的 80 端口的 server,回合我们接下来的配置冲突。
typecho.conf
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html/typecho;
index index.php;
location ~ .*\.php(\/.*)*$ {
root /usr/share/nginx/html/typecho;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+?.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
执行检查,并重启 Nginx
nginx -t
nginx -s reload
回到浏览器,输入 xxx.xxx.xxx.xxx,即可看到安装步骤。其中数据库可以使用 sqlite 或 mysql,如果使用 mysql 则需要额外配置连接信息,并且还要事先在数据库中创建一个 typecho 数据库(具体名称由步骤中的配置决定)。CREATE DATABASE typecho default character set utf8mb4 collate utf8mb4_general_ci;
然后等待安装完毕即可(记住管理账号和密码)。
安装过程中可能会出现没有目录权限的问题,原因是 nginx 和 php-fpm 不是同一个用户运行的,这里我们统一使用 www 用户运行。
groupadd www
useradd -g www -s /sbin/nologin www
# 然后将 /usr/share/nginx/html/typecho 目录的所属改为 www 用户
chown -R www:www /usr/share/nginx/html/typecho
安装完毕后访问页面,会发现每个页面都带着一个 index.php,如果想要显示为 .html,则需要配置伪静态。
步骤如下:
在 server 块中输入如下配置
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
浏览器输入 xxx.xxx.xxx.xxx/admin 进入管理页面,点击 “设置 - 永久链接”,选中 “启用地址重写功能 - wordpress风格”,点击保存即可。
然后再访问页面,可以看到 index.php 没了,取而代之的是 xxx.html 文件。
OK,教程完毕,如有问题和不足,欢迎指出并在评论区友好探讨。