手动安装配置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,如果显示如下就配置成功了。
安装配置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已经没了。
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];
}