返回

Ubuntu18手动安装nginx+typecho

这两天寻思着弄一个动态网站作为个人日常的博客,又不太想用wordpress这过于重量级的cms,想起了以前也用过的typecho,但是安装过程中遇见了一些困难,发现现在网上极其缺少手动安装typecho的教程,不是过时的教程就是宝塔一键脚本;所以我还是分享一下我是如何安装typecho的吧。

手动安装配置lnmp+typecho

这两天寻思着弄一个动态网站作为个人日常的博客,又不太想用wordpress这过于重量级的cms,想起了以前也用过的typecho,但是安装过程中遇见了一些困难,发现现在网上极其缺少手动安装typecho的教程,不是过时的教程就是宝塔一键脚本一起上…所以我还是分享一下我是如何安装typecho的吧。

安装lnmp

我们首先准备typecho的环境,lnmp即(linux + nginx + mysql + php)。我使用的系统是Ubuntu 1804,所有Debian系的系统操作应该都类似,其他系的系统需要修改一下指令。

安装php

sudo apt install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl

如果要修改php的配置如上传文件限制内存上限等等,编辑 sudo nano /etc/php/7.2/fpm/php.ini 文件即可。

nginx安装并配置php/https

apt install nginx

配置https

安装好nginx后,我们编辑站点配置文件,把里面的server_name的example.com修改成你自己的域名(当然域名要设置好A记录解析到当前服务器上)

nano /etc/nginx/sites-available/default

然后使用certbot自动申请配置ssl证书,采取certbot的官方教程(官方有各个发行版的详细教程)。

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-nginx
sudo certbot --nginx

运行certbot后,会先要求你输入邮箱,如果之前对站点配置文件没配置错的话,那应该就能看见你的域名,选择该域名,certbot便会自动申请配置证书,最后还会选择是否要把http重定向为https,选择redirect即可。完成之后再访问你的域名,理论上能以https的方式访问到nginx的默认index.html。

配置php

同样编辑站点配置文件 /etc/nginx/sites-available/default ,在server的大括号中添加如下内容。

    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass             unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

之后重启一下nginx,在 /var/www/html 目录下创建一个info.php文件,写入

再访问你的域名/info.php,如果显示如下就配置成功了。

info.php
info.php

安装配置mysql

typecho其实还支持sqlite,直接安装php的sqlite扩展以及sqlite3就可以使用了,但是由于我使用的插件在使用sqlite时会出错,所以我还是改用了mysql。

sudo apt install mysql

接着我们需要创建typecho的用户以及相应的数据库并赋权。

mysql -u root -p
CREATE DATABASE typecho;
CREATE USER 'typecho'@'localhost' IDENTIFIED BY '123456';
GRANT ALL ON typecho.* TO 'typecho'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
EXIT;

安装Typecho

之前的步骤做完后我们已经准备好了lnmp环境了,接着就是安装typecho。

前往Typecho的网站获取下载链接。

# 在/var/www/html 里面执行
wget https://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar -zxvf 1.1-17.10.30-release.tar.gz
mv build typecho
chown -R www-data:www-data
chmod -R 755 typecho

另外还建议修改 /etc/nginx/sites-available/default 将站点根目录修改为 _/var/www/htm_l/typecho 并重启一下nginx。

之后访问 https://yourdomain/install.php (如果没改根目录的话就是/typecho/install.php)

配置时,数据库名字,用户名,密码都改成之前创建数据库时使用的参数就好,如果没有什么其他的问题,完成几步操作之后便安装成功了。

伪静态设置

默认的typecho网页链接中总带着一个index.php,那么有没有办法把这个链接美化一下呢?我们需要开启typecho的伪静态。首先编辑nginx的站点文件,在server大括号中加入

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;
}

并前往typecho控制面板的设置/永久链接中打开启用地址重写功能(可能会提示不可用,还是选择应用即可)然后重启一下nginx。再看,index.php已经没了。

image.png
image.png

CDN保留真实ip

在Typecho站点根目录里的config.inc.php添加如下内容.

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 
{
    $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
    $_SERVER['REMOTE_ADDR'] = $list[0];
 }
comments powered by Disqus
本站访客数:
Built with Hugo
Theme Stack designed by Jimmy