异想天开

What's the true meaning of light, Could you tell me why

记录一些本地搭建博客后台的问题

日期:2017-07-16 22:25:57
  
最后更新日期:2017-07-19 10:49:52
周末的时候,把原本在阿里云跑的博客后台代码在本地搭建了一个测试环境,搭建过程中记录问题如下。
1.mysql日期字段不能为0。原来在阿里云安装的mysql 5.1可以准许时间字段为'0000-00-00 00:00:00'。本地ubuntu 16.04系统安装的mysql 5.7默认情况下会报错。最后为了先不修改代码,stackoverflow网友建议修改配置文件mysql.conf添加配置:
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
去掉NO_ZERO_DATE,NO_ZERO_IN_DATE配置。

2. php版本,最开始直接apt-get安装了php-fpm7.0,后面测试php连接数据库时,总不对。后面了几个简单的测试php脚本才发现php-fpm7.0里面,已经没有mysql这种连接方式了,换了改进版本的mysqli( improved ),还有另外两种连接方式,php data object和类的形式连接。后面重新源码编译了一份php-5.4.29版本
./configure --prefix=/usr/local/php --enable-fpm --with-mysql

3. 发现了一个脚本,仍然还是将数据库名字这些硬编码了。这次全改正了。

4. 发现了鉴权逻辑由于疏忽留的bug,虽然基本没人访问,还是吓得赶紧修补了。

5. 将nginx配置文件模板,之前有2个改动没有提交,这次将install.sh改为了install.py,变成了直接用命令行生成nginx配置文件。

6. 将Smarty-3.1.14的源码压缩包也一并提交到github。smarty模板仅使用变量替换功能,若将来Smarty-3.1.14不可用了,则用sed替换。

7. 后台用python接口的jieba分词进行对文章进行倒排索引,本地搭建时,该库有临时缓存文件,容易由于目录权限问题导致异常。后面是先用登录用shell测试,再把php的用户名改为登录用户。

解决这些琐碎的问题,还是花费了几个小时的代价。历史系统会把问题积累在一起,而导致根本解决问题时花费的代价会放大。解决这些问题,就是让它持续滚动起来,后面考虑定期,将这套流程跑一下,平滑处理问题。比较赞同豆瓣网-永远BETA版的态度。