无意中看到一个博客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
  1. 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
  1. unzip php
  2. copy php.ini-development to php.ini
  3. search extension_dir, make ;extension_dir = "ext" to extension_dir = "ext"
  4. search pathinfo, make ;cgi.fix_pathinfo=1 to cgi.fix_pathinfo=1
  5. search extension=php_mysql.dll, make ;extension=php_mysql.dll to extension=php_mysql.dll
  6. search extension=php_mysqli.dll, make ;extension=php_mysqli.dll to extension=php_mysqli.dll
  7. run php via php-cgi.exe -b 127.0.0.1:9000 -c php.ini
install mysql

skip.

install typecho
  1. copy the package into $NGINX_HOME%/html, and unzip it
  2. access http://127.0.0.1/typecho, to install the typecho
  3. access http://127.0.0.1/typeecho/ for visit
  4. acess http://127.0.0.1/typeecho/admin for administration