无意中看到一个博客http://typecho.org/,被它漂亮的界面打动了,又转过来看下自己博客的界面,不忍直视啊。索性就在本地运行它,然后把它的样式弄过来。
安装Typecho
安装Typecho,(从一个java后端来说)需要Typecho安装包、php环境、nginx、mysql数据库。我使用的版本如下:
- nginx (V1.14.0)
- php (V5.6.37)
- mysql (V5.7)
- Typecho (V1.1)
Typecho从官网下载的是最新版的(此时日期是2018-07-20),nginx和mysql是一个后端常用工具,所以也没多大问题。php环境就比较恶心了,我先安装的是官方最新版V7.1,在配置mysql时出现问题没能解决,就改为V5.7的了。
安装后若出现访问除首页外的页面均出现404就要检查一下nginx的php配置。 安装完毕后,新建几篇博文后,就把列表页面和详情页面另存为html,接下来就把这些html对应的代码整合到自己的项目中吧。
最终完成了。但途中出现的几个问题不得不记录:
- 想让系统支持多主题(即原来的界面仍然保留,新的界面添加上去,使用不同参数访问不同的界面)
- 后端代码中多主题的配置及实现(暂使用参数实现,但感觉比较low,不知是否可以从Spring的ThemeResolver和国际化两个方面借鉴一下),我在InternalViewResovler上遇到了坑,prefix中造成不要配置变量,而应该让业务自己去处理(我在prefix中配置了主题类型,但导致无法正常切换主题,步步跟踪代码才发现是该处配置有误)
- 安装php时,不要老是使用最新版,完成功能才是最主要的。
附上安装过程
Install Typecho in Windows 7
prerequisite softwares
- nginx (V1.14.0)
- php (V5.6.37)
- mysql (V5.7)
- typecho (V1.1)
install step
install nginx
- unzip nginx, add following after around line 66 (about
#location ~ \.php$ {
)
location ~ .*\.php(\/.*)*$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
install php
- unzip php
- copy php.ini-development to php.ini
- search extension_dir, make
;extension_dir = "ext"
toextension_dir = "ext"
- search pathinfo, make
;cgi.fix_pathinfo=1
tocgi.fix_pathinfo=1
- search extension=php_mysql.dll, make
;extension=php_mysql.dll
toextension=php_mysql.dll
- search extension=php_mysqli.dll, make
;extension=php_mysqli.dll
toextension=php_mysqli.dll
- run php via
php-cgi.exe -b 127.0.0.1:9000 -c php.ini
install mysql
skip.
install typecho
- copy the package into $NGINX_HOME%/html, and unzip it
- access
http://127.0.0.1/typecho
, to install the typecho - access
http://127.0.0.1/typeecho/
for visit - acess
http://127.0.0.1/typeecho/admin
for administration