DNMyCar(By ZendFramework 2)项目迁移记

前几个月微信认证开发者过期了,DNMyCar挂了,虽然重新认证了开发者,但是项目还是跑不起来,各种折腾后,发现问题层出不穷,这里做个记录。

一、原来的服务器已经升级到 Ubuntu 16.04 PHP 也到了 7.0,基于 ZendFramework 2开发的 DNMyCar 怎么也跑不起来,Debug 了好久,发现原来的老库对 PHP 7.0 各种不兼容,需要各种 composer update ,但是各种模块间的依赖和冲突又导致 update 不了,只能放弃,打算迁移到一台 Ubuntu 14.04 PHP 5.5.9 的备用服务器。

二、迁移到 Ubuntu 14.04 PHP 5.5.9 的备用服务器也不轻松,也是各种冲突。
1、安装 curl。
2、不知道什么原因,也许是PHP使用了FasCGI模式,session 文件无法写入,把 php.ini 的 session.save_path 设置为 “0;777;/home/user/tmp” 也不行。
最后把 SuexecUserGroup 关闭,使用 www-data 用户执行 php ,然后把 /home/user/tmp owner 设置为 www-data 才能正常写入 session 文件。
3、安装加密模块 mcrypt。

sudo apt-get install php5-mcrypt php5-dev
sudo php5enmod mcrypt

至此,折腾了几天,DNMyCar 忠于迁移完毕。

Ubuntu 14.04 升级到 16.04 后,Gitlab、MySql 无法启动的问题

 

Gitlab 无法启动的解决

这个很简单重新配置一下就可以了,gitlab-ctl reconfigure,然后 gitlab-ctl start 。注意可能刚刚开始有一段时间会处于 502 http 错误状态,等一段时间以后就可以了

 

MySql 无法启动的解决

不知道在升级 Ubuntu 过程中选错了哪一步,导致使用了旧的 MySql 配置文件来配置新的,因此MySql 无法启动。此时的 my.cnf 文件链到了 /etc/mysql/my.cnf.migrated ,也就是旧版迁移过来的,其实这个文件开头部分已经说明了解决办法:

# 1. Move your customisations from this file to /etc/mysql/conf.d/ and
# to /etc/mysql/<variant>.conf.d/ as appropriate.
# 2. Run “update-alternatives –remove my.cnf /etc/mysql/my.cnf.migrated”
# 3. Remove the file /etc/mysql/my.cnf.migrated

如果没有什么特殊设置的话,直接执行 update-alternatives –remove my.cnf /etc/mysql/my.cnf.migrated 就可以解决问题了。