如何在Nginx服务器上成功安装和配置Typecho博客程序?

1、准备工作

如何在Nginx服务器上成功安装和配置Typecho博客程序?

系统环境: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源

如何在Nginx服务器上成功安装和配置Typecho博客程序?

```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 {

如何在Nginx服务器上成功安装和配置Typecho博客程序?

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,从而实现伪静态化。