服务器迁移便捷式笔记
这周连续六天迁移服务器成就达成,本来踩的坑比较琐碎不想整理一下发 CodeSky 了,今天迁移 CodeSky 的时候遇到了以前单服务器配置时候没有遇到过的坑,所以还是记点东西好了。
supervisor
作为一个连续三天写了配置文件忘记重启的人不由得要大喊一声:supervisorctl reload
!
以前我一直以为大家说的 supervisor
是 node-supervisor
……直到看了旧机器的配置信息……
这种时候只要微笑就好了参考资料可以看:
需要注意的是:当你添加或者修改 supervisor 的配置信息后请重启 supervisorctl 保平安,否则配置不会载入/生效。
node-bunyan DtraceProviderBindings error
旧的项目有使用 restify
的,在迁移时发现了这个报错,然后升级了一下 restify
的版本,npm install --no-optional
搞定(升级的时候还是挺忐忑的 2333,生怕 breaking changes)。
参考:https://github.com/trentm/node-bunyan/issues/216
MongoClient 链接多个数据库
在就项目里也有用 mongodb
库来做数据库连接而不是 mongoose
的,mongoose
出现验证错误,不过升级一个版本就好了,mongodb
却在多数据库时不能共享 mongoose
可用的连接字符串,后来人工加了副本集 ?rs=name
,搞定了这个问题。
参考:https://docs.mongodb.com/manual/reference/connection-string/
博客迁移
剩下的一些涉及到内部服务或者内部造轮之类的改造类问题就 Pass 了,今天晚上迁移博客还是踩到了一点坑的(主要还是踩的太少)。
fastcgi connection refused
安装并启动了 php-fpm,结果并没有发现监听的端口,在 /etc/php7.1/fpm/pool.d/www.conf
做一点微小的修改:
找到 listen
,去掉本来的 /var/run/php7.1-fpm.sock
改为 127.0.0.1:9000
后重启服务。
(另外说一下最简单停用 php-fpm 的方式是 pkill php-fpm
:cry)
参考:https://www.digitalocean.com/community/questions/nginx-error-111-connection-refused
MySQL 远程访问
安装完数据库之后发现局域网并连接不上,以前都是单机的,没有这个烦恼,需要做如下设置:
修改 /etc/mysql/my.cnf
或者在其他位置的配置文件(my.cnf
里可能是 include
信息)。
找到 bind-address 行,注释,重启服务。
在 mysql 中需要配置:
$ mysql -u root -p
mysql> GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> exit
之前没有生效是因为没有用 FLUSH PRIVILEGES
刷新配置,生效之后就可以连接了,%
也可以是局域网服务器的 ip 地址。(%
表示全部)
参考:
Typecho with PHP7.1
尽管配置好了,但还是提示连接不上数据库,因为在 PHP 7 中移除了 mysql 方法,需要改用 mysqli 或 pdo,对 config.inc.php
进行修改:
// $db = new Typecho_Db('Mysql', 'typecho_');
// 改为
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
参考:https://faq.xiaoz.me/archives/133.html
另外之后发现我的内页都挂了,是忘了安装 php-mbstring
和 php-curl
,嗯……毕竟 PHP 有些扩展都是全局。
vim 中文乱码
发现了很多乱码,刚开始以为是编码问题,但是 cat 并没有这个问题,还是需要配置一发 vim:/etc/vim/vimrc
,加上:
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set fileencoding=utf-8
set encoding=utf-8
植入部分
如果您觉得文章不错,可以通过赞助支持我。
如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。
docker镜像啊
=。=Docker 里面不还是要配一波