服务器迁移便捷式笔记
这周连续六天迁移服务器成就达成,本来踩的坑比较琐碎不想整理一下发 CodeSky 了,今天迁移 CodeSky 的时候遇到了以前单服务器配置时候没有遇到过的坑,所以还是记点东西好了。
supervisor
作为一个连续三天写了配置文件忘记重启的人不由得要大喊一声:supervisorctl reload
!
以前我一直以为大家说的 supervisor
是 node-supervisor
……直到看了旧机器的配置信息……
这种时候只要微笑就好了参考资料可以看:
这周连续六天迁移服务器成就达成,本来踩的坑比较琐碎不想整理一下发 CodeSky 了,今天迁移 CodeSky 的时候遇到了以前单服务器配置时候没有遇到过的坑,所以还是记点东西好了。
作为一个连续三天写了配置文件忘记重启的人不由得要大喊一声:supervisorctl reload
!
以前我一直以为大家说的 supervisor
是 node-supervisor
……直到看了旧机器的配置信息……
这种时候只要微笑就好了参考资料可以看:
最近干了一件特别勤劳的事情——把博客迁移到阿里云服务器,不过期间也出了一点有趣的小插曲。
关于 CentOS 里安装 PHP,这篇已经写过很多次了:http://codesky.me/archives/centos-lnmp-yum.wind
然后只需要绑定好域名,可以看这篇:http://codesky.me/archives/centos-ghost-install-introduce.wind,如果要有多个子域,直接复制黏贴一份进行对应修改就行了。
好了,这一篇我们顺着上面几篇的思路来说说rsync,所有的内容在参考链接中都可以看到更详细应该也是更有深度的说明……
如果你在寻找一个差异同步上传机制,那么rsync就是你想要的,在目录中选择性拷贝,安全保障,提供多种传输方式,具体的功能可以从之后的介绍和扩展阅读中看出。
酷壳有一篇介绍,不过一些名词介绍的比较让人郁闷,先给个总结:rsync = 分块hash check + 滑动窗口。
标题好长……这次被黑之后吸取了教训,大致说一下做的事情:
首先能不用root就不用root,除了由于普通用户拿不到权限的部分以外都使用普通用户(如Node.js程序的运行),不关闭SELINUX,开启iptables(这里需要说一下,只要开启了防火墙就会生成iptables),未开启则没有,所以才会出现找不到iptables的情况。
免密码具体就是用证书(非对称加密)来登录,处理起来其实也是蛮方便的(但如果一个手滑可能会导致登录不上去)。
如果过去没有生成过证书,则需要先运行 ssh-keygen -t rsa
,之后再~/.ssh/
目录会生成公钥和私钥,如果运行过了,就不要重复运行了。
之后把公钥(xxx.pub),传到服务器中的~/.ssh/
目录下,重命名为authorized_keys
,如果已经有该文件,则把公钥内容加入文末。
今天看到一篇安利iTerm2的文章,在文章介绍了mosh,支持断续连接,当时就很心动,果断进官网看看详情:
mosh使用UDP(ssh使用的是tcp),能够在网络环境差的情况下也保持稳定和基本的使用(在我使用之后觉得流畅了许多,终于有心情折腾了)。
安装方法相当简单,跨平台性也相当好(除了iPhone和Windows Phone):
先在OSX中安装命令:brew install mobile-shell
之后我们就能够使用mosh usr@host
代替ssh usr@host
,当然在服务端中也需要安装mosh。
前天有个朋友联系我说安装Ghost的时候遇到了问题(Nginx),想让我帮忙看看——我没配过啊,但是这正好是一次机会,玩玩除了PHP以外的东西。
好了,废话不多说,于是昨天我就尝试了一把,踩了一些坑,这里做个总结性发言,顺便表扬一下Ngnix反代大法。
看完本文,基本上你会知道Ghost的搭建,PM2的使用,Nginx的配置。
因为阿里云学生价的服务器每个月10块不到,就入手了,每次总是要装PHP的,当然不例外,这一次依旧配Nginx+PHP(因为平时本地总是配Apache)
比较懒,又不想编译安装,查了一下换源就能用yum了,挺方便的:
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
心累的发现数据库名填写似乎是正确的,但是提示找不到该数据库,什么鬼,然后看了一下phpmyadmin,明明有。
后来发现是多了一个空格……当然也可以选择导入数据库,但是这里我想直接重命名了。使用RENAME DATABASE name1 TO name2
失败了,似乎是从某一版本之后出于安全考虑取消了这个功能。于是只能选择修改文件夹名。
mysql -u username -p
链接到数据库。
接着输入:show variables like '%dir%';
找到
datadir | /usr/local/mysql/data/
用mv folder newfoldername
修改文件名。
为了避免各个不同的Linux/Unix系统的文件路径不一样,还是加了CentOS的前缀。
文件位置在\etc\php.ini
打开之后找到display_errors = On
改成Off关闭,On开启。
如果只是某一个文件需要关闭,那么只需要用error_reporting
函数就可以了。
<?php
// 关闭所有PHP错误报告
error_reporting(0);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// 报告 E_NOTICE也挺好 (报告未初始化的变量
// 或者捕获变量名的错误拼写)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// 除了 E_NOTICE,报告其他所有错误
// 这是在 php.ini 里的默认设置
error_reporting(E_ALL ^ E_NOTICE);
// 报告所有 PHP 错误 (参见 changelog)
error_reporting(E_ALL);
// 报告所有 PHP 错误
error_reporting(-1);
// 和 error_reporting(E_ALL); 一样
ini_set('error_reporting', E_ALL);
?>
具体见官方文档
需要注意的是,如果全局没有打开display_errors,那么error_reporting函数就算设置了也是没有用的。
这次由于APP需要搬家以及需要https的缘故,学校的服务器不能自由申请于是乎我们选择了绑定自己的域名,不过没想到还有这么多事情……略麻烦。
首先找到httpd.conf,我的在/etc/httpd/conf/httpd.conf
shift+G到最后
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/skyposter
ServerName www.csvwolf.com
ErrorLog logs/higpa.csvwolf.com-errorlog
CustomLog logs/higpa.csvwolf.com-access_log common
</VirtualHost>