Typecho安装笔记
背景
近几年来,自己断断续续的使用了很多VPS,学习了Linux的简单操作,学习了html,css,js,php等网络相关的东西,在进一步的使用远程服务器中,我接触了如何申请域名,如何CDN,如何使用Nginx做代理服务器实现自己编写的html脚本。
随着使用的深入,我想了解目前主流的网站是如何实现的,通过搜索,我发现Dajango的存在,由于之前有学习Python的基础知识,所以我很快学会了Dajango的使用,也在自己VPS上用Nginx,uwsgi托管了Dajango代码,看到网络上自己的网站第一次实现,真的有一种成就感。
有一个自己的blog一直是我的目标,之前想过使用Dajango来做,但是通过查找,发现相应的开源项目很少,所以一直没有去做,此事就一直耽搁了下来,近些天工作上的事情比较轻松,于是我又一次着手查找解决方案,发现了一个比较好的解决方案:PHP-MySQL-Typecho。
关于Tpeocho
Typecho是一款免费开源的动态博客系统,运行在PHP环境下,界面简洁干净是他的特点。
文章支持markdown语法,很方便排版。
官网:http://typecho.org/
安装环境要求:
- PHP 5.1以上
- Mysql, PostgreSQL, SQLite 任意一种数据库支持,并在PHP中安装了相关扩展
- CURL或者Socket扩展支持
- mbstring或者iconv扩展支持
开始搭建
系统环境:ubantu14.04
安装Nginx
我使用的是Nginx代理,所以第一步安装nginx。
apt 安装:
apt-get update
apt-get install nginx
也可以从官网安装最新版,安装教程参考:https://niekun.net/index.php/archives/30.html
编辑配置文件:
vim /etc/nginx/nginx.conf
user 改为 www-data:
user www-data;
在server段添加如下代码:
server {
listen 80;
listen [::]:80;
server_name your.domain;
keepalive_timeout 70;
root /www/path;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
启动服务:
service nginx reload
service nginx start
添加开机启动:
vim /etc/init.d/rc.local
在文件最后添加:
sudo service nginx start
访问你的域名,如果显示Nginx欢迎画面表示Nginx搭建成功。
在nginx.conf文件里定义的root目录编写测试index.html文件,刷新页面查看是否显示自定义页面。
如果一直显示nginx欢迎画面可能是:/etc/nginx/sites-enable/defalut需要删掉默认的配置
安装PHP
我安装的是PHP5.6版
apt-get install php5.6-fpm php5.6-mysql
修改php.ini:
find / -name php.ini
vim /etc/php/5.6/fpm/php.ini
文本内搜索
/cgi.fix_pathinfo
修改字段
cgi.fix_pathinfo=0 ;设置为1可能会引起安全问题。
修改www.conf:
vim /etc/php/5.6/fpm/pool.d/www.conf
listen.owner = www-data
listen.group = www-data
重启php-fpm服务
service php5.6-fpm restart
配置Nginx的php
打开nginx.conf
server段内修改如下
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ [^/]\.php(/|$) {
try_files $fastcgi_script_name =404;
fastcgi_split_path_info ^(.+?\.php)(.*)$;
fastcgi_pass unix:/run/php/php5.6-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
重启nginx服务
service nginx reload
service nginx restart
测试php是否代理成功,在网站root目录新建文件index.php,访问主页。
<?php
phpinfo();
?>
如果显示access denied可能是权限问题
nginx 和php-fpm不再一个用户下运行,查看上面的说到的配置(默认都是www-data)
- ps -aux | grep nginx
- ps -aux | grep php
网站目录权限不对
- chmod -R 755 /www/path
- chown -R www-data /www/path
安装MySQL
apt-get install mysql-server
安装会自动创建一个root用户,期间会提示创建用户密码
进入MySQL
mysql -uroot -p....
创建数据库(每条命令行尾加分号;)
create database blog;
grant all privileges on blog.* to "root"@"localhost" identified by "password";
show databases;
quit;
安装Typecho
进入网站根目录
cd /www/path
下载源码并解压,我下载的是开发板
git clone https://github.com/typecho/typecho.git
mv typecho/. /www/path
浏览器访问:domain.you/install.php开始安装,一步步跟随提示就OK了。
MySQL部分输入上面创建的密码和数据库名。
以上就是 Typecho 的安装过程,期间遇到访问 其他页面 404 的问题,通过修改 cgi.fix_pathinfo=1 临时解决了,但是有安全隐患,后通过学习 FastCGI 详细资料,通过修改 nginx config 中 php 的 location 段解决了问题。
关于 fastCGI 参考我的 wordpress 安装教程:https://niekun.net/index.php/archives/204.html
标签:typecho
makedown --> markdown
已修复