1、准备工作

系统环境:CentOS 7.3
所需组件:Nginx、MySQL、PHP
2、安装Nginx
下载并安装Nginx
```bash
rpm -ivh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-1.el7.ngx.x86_64.rpm
```
启动Nginx
```bash
systemctl start nginx
```
验证Nginx是否启动成功
打开浏览器,访问服务器公网IP,若出现"Welcome to nginx!"则表示Nginx启动成功。
设置Nginx开机自启
```bash
systemctl enable nginx
```
3、安装MySQL
下载并安装MySQL社区版
```bash
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
```
改变文件属主和属组
```bash
chown mysql:mysql -R /var/lib/mysql
```
初始化并启动MySQL
```bash
mysqld --initialize
service mysqld start
```
修改root用户密码并登录MySQL
```bash
mysqladmin -u root password "your-password"
mysql -u root -p
```
输入密码后进入MySQL命令行界面,表示登录成功。
4、安装PHP
安装EPEL源
```bash
yum install epel-release
```
安装WEBTATIC源

```bash
rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
```
安装PHP及其扩展
```bash
yum install php71w php71w-fpm
php71w-cli php71w-common php71w-devel php71w-gd
php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath
php71w-pecl-redis
```
启动PHP
```bash
systemctl start php-fpm
```
查看PHP是否开启
```bash
ps -ef | grep php
```
设置PHP开机自启
```bash
systemctl enable php-fpm
```
5、搭建Typecho站点
创建站点目录
```bash
mkdir -p /var/www/example.com
```
下载并解压Typecho
```bash
cd /var/www/example.com
wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar -xzvf 1.1-17.10.30-release.tar.gz
```
将解压出的文件移动至站点根目录
```bash
mv /var/www/example.com/build/* /var/www/example.com
rmdir build && rm 1.1-17.10.30-release.tar.gz
```
创建站点的Nginx配置文件
```bash
cd /etc/nginx/conf.d
vim example.com.conf
```
配置文件内容如下:
```nginx
server {

listen 80;
server_name example.com;
location / {
root /var/www/example.com;
index index.html index.htm index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
```
重启Nginx以应用新配置
```bash
systemctl restart nginx
```
6、安装Typecho
访问http://www.example.com/install.php进行安装,按照提示填写数据库信息。
相关问题与解答
1、问题一:为什么安装完Typecho后只有首页能访问,其他页面报404错误?
解答:这种情况通常是因为Typecho需要pathinfo功能,而Nginx默认没有开启此功能,解决办法是修改Nginx配置文件(例如example.com.conf),将其中的location ~ .*\.php$改为location ~ .*\.php(\/.*)*$,在某些老版本的PHP中,还需要在php.ini文件中将cgi.fix_pathinfo设置为1。
2、问题二:Nginx服务器无法实现伪静态化怎么办?
解答:这主要是由于Nginx的rewrite规则没有设置正确,可以在Nginx配置文件中的server段内添加以下配置:
```nginx
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
```
这将确保所有未找到的文件请求都被重写到index.php,从而实现伪静态化。