Twitter完全不顾中国人民的强烈谴责,正式关闭了Http Basic Auth,只好建这个开源项目叫BoTwi:Break OAuth Twitter——帮你自建一个继续使用Basic方式的代理API。
怎么使用:
需要一个支持curl/.htaccess/无广告的PHP5空间,可以不做任何设置,上传即可用,API地址指向上传目录下的/t。
可以运行check.php检查一下主机是否支持。
为啥要用:
如果你的Twitter客户端可以自定义API,可以试试自己搭建一个,这个东西相当于自动代理oAuth的Twip,效果等于Twitter没有关闭Basic,无视oAuth,直接发送用户密码就可以获得Twitter内容。
Twip也有oAuth版本,但只支持有限的几个用户,设置麻烦,所以自己写一下。感谢Twip的作者@yegle,同时也借鉴了dabr的代码。
服务器+网站
35服务器:目前是日新的主服务器,日新的绝大部分应用在35服务器上:
- Filesystem Used Mounted on
- /dev/da0s1a 3.0G /
- devfs 1.0K /dev
- /dev/da0s1d 81M /var
- /dev/da1s1g 21G /data
- /dev/da1s1d 19G /usr/home
- /dev/da1s1e 6.3G /var/log
- /dev/da1s1f 28G /www
- /dev/da2s1d 53G /backup
网站程序建议放在/www或者相应帐号的home目录;mysql数据都在/data中;备份文件在/backup中,数据库是每天会自动备份一次的;日志文件在/var/log中,已经给每个网站设置好了日志定时切割。
Web服务方面35服务器很畸形地用了Nginx+FastCGI+Apache共存的方式,Nginx占80端口,php-cgi占139端口,Apache占888端口,相对稳定和不常修改的程序在Nginx+FastCGI下跑着,一些老成员的站点在Apache下跑着并由Nginx反向代理。由于在PHP 5.2以上启用safe_mode or an open_basedir会导致CURLOPT_FOLLOWLOCATION失败,所以在Apache下的php是没有打开open_basedir的,需要使用相应功能的站点可以放在Apache下跑,而FastCGI下相应的限制更严格。
35服务器使用ipf防火墙,对公网仅开放80端口,对办公室所处的网段全端口开放,另外对部分IP段开放22、8081端口。SSH占用22端口,Webmin占用8081端口。外网登录服务器需要使用90服务器的代理服务。
登录服务器后提示如下:
- You can edit your website configure in following files:
- /usr/local/etc/apache22/extra/httpd-vhosts.conf (apache)
- /usr/local/etc/nginx/vhost.conf (nginx)
- Then you can use this to apply your settings:
- "nginx -s reload"
- "apchectl restart"
- And you can modify the website files in /www all!
- BUT YOU MUST BACKUP IT BEFORE YOU DO ANYTHING!
- PS:The old data is still in the /usr/home/oldhome/.
- Now the Nginx+FastCGI is working on ecjtu.net,try it in the files:
- /usr/local/etc/nginx/ecjtu.conf.
35服务器一般只给成员开放www组和ftp组权限,如何添加自己的网站以及相应的权限如上,已经解释得很清楚,需要注意的是如果使用日新的域名务必以{yourname}.u.ecjtu.net格式,如果是使用自己的域名必须先备案才可以绑定到日新服务器,严禁绑定未备案的域名到日新的服务器上!
90服务器:日新唯一一台Windows服务器,主要运行着一些ASP站点和日新投稿系统。
未完待续……
马上要准备彻底闭关备战考研,可能就目前的情况有必要对目前日新技术部的整体工作进行一下总结并交付给接下来的TX们了。
日新的基础是整个好几代前辈一起不断努力的结晶,这其中包括新闻部、技术部、互动社区的诸多前辈之心血。首先技术部的TX们需要明确:技术一种工具——或是达到目标的工具,或是展示你能力的工具等,技术的存在终究是为了能够更好地工作,如果以纯技术为全部的话结果可能会是自己最终沦为“工具”。在技术部的TX可能更多的是以磨练技术的想法为主,以学习和研究技术为主固然是好事,在此之外建议大家适当地去关注一下非技术的因子,比如找到自己真正合适的爱好、关注关注互联网大事记、在日新多交一些合适的朋友、多了解非技术人士的想法等。此外大家应该明白日新是一个整体,技术部是日新的一部分,与其他非技术部门的TX更多地交流可以让你的视野和思维更加的广阔:不同圈子的人有不同的大学经历,不同圈子的人交流往往更能碰撞出火花。
好梦网的创始人ZhangWei前辈一直是技术部里的神话,我们一直在期待技术部可以出更多的zhangwei,更多的“好梦网”,但说实话就目前技术部的整体实力还是有些令人无奈的。虽然说除了努力之外学技术多少还是要讲究一些天份,但是绝大部分你需要掌握的技术内容都是更需要你付出努力和时间的,走过之前给TX们各式各样填鸭式培训的探索之路后我最终还是觉得应该:“师傅领进门,修行在个人”。加油吧! TX们!
明天,2010年8月27日,将公布2010年6月大学英语四六级考试成绩。
可登陆 http://9911.ms/9OvA 查询成绩。 印象中上次六级考得还可以,虽然没有任何准备。看结果吧,过没过还不知道……
因为安全原因一般对服务器的访问都是有非常严格的IP限制的,但是为了方便随时随地的迅速响应我在防火墙上开放了通过手机CMNET网段访问服务器SSH的权限。这么一来由PPC上的PoketPutty直接访问和操作服务器或者是通过手机CMNET带动笔记本访问服务器都要方便很多。
由于以前在freebsd下使用SSH远程登录时基本上都是良好的网络环境,很少出现非正常中断的现象。但是使用CMNET访问服务器之后,由于CMNET的带宽和不稳定性(瞬时带宽不足或者基站切换都可能会导致导致CMNET连接IP更换)连接非正常中断的概率要大大提高。而如果一旦连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的 session,最终将导致服务器系统上遗留了不少失效的Session。
- Holmesian pts/0 Aug 26 09:42 (117.136.21.200)
- Holmesian pts/1 Aug 26 09:45 (117.136.21.219)
- liaux pts/3 Aug 25 12:43 (202.101.208.90)
- Holmesian pts/7 Aug 26 10:17 (117.136.21.162:S)
- Holmesian pts/8 Aug 26 10:18 (117.136.21.162:S)
虽然可以通过设置SSH的超时来自动清理这些无效的Seesion,但是无效的Session遗留在系统上总会感觉不爽。这个时候screen命令就华丽丽地登场了:Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。
通过Screen工具在ssh搞东西时,就不需要以前那样额外多增加一个终端来保持登录状态了。
通过PORTS安装Screen
# cd /usr/ports/sysutils/screen
# make install clean
使用简述
# screen
//以下^A表示同按“Ctrl + A”键
- # ^A c //Create,开出新的 window
- # ^A n //Next,切换到下个 window
- # ^A p //Previous,前一个 window
- # ^A ^A //在两个 window 间切换
- # ^A w //Windows,列出已开启的 windows 有那些
- # ^A 0…9 //切换到第 0..9 个 window
- # ^A t //Time,显示目前的时间,与系统的 load
- # ^A K //kill window,强制关掉目前的 window
- # ^A ? //Help,显示简单说明
- # ^A d //detach,将目前的 screen session (可能含有多个 windows) 丢到背景执行
# screen -ls //显示所有的 screen sessions
# screen -r [keyword] //选择一个 screen session 回来 (捡回来) , 恢复离线的screen作业, 单独输入 screen -r 也行的,通过这个功能就可以捡回之前断线的Session
在Ngnix中如果用变量作为反向代理的地址时,容易出现“no resolver defined to resolve xxx.xxx”的问题,例如:
- server
- {
- listen 80;
- server_name ~^(.*).lib.ecjtu.net$;
- access_log /var/log/nginx/access-lib_ecjtu.log;
- set $key $1;
- location /{
- auth_basic "What's your password?";
- auth_basic_user_file /www/lib_ecjtu_net/htpasswd;
- proxy_pass http://$key;
- }
- }
回到学校的TX越来越多,一小撮人独霸学校的日子即将结束……
近来发觉越来越自己越来越有“返璞归真”的倾向,重操起了中学时代那种不愿近人不愿交流的思想,直到前几天在S.H的同事面前爆发才知道现在已经不是中学时代有太多的事情是不得不做的。
都是些个人碎碎念,赶时间的TX就别耽误时间了
升级ports用portsnap(CVSUP已成历史)
portsnap fetch update 升级PORTS #如果是第一次使用portsnap来升级,则输入:portsnap fetch extract
通过portmaster升级FreeBSD下所有已安装软件相当方便 (portupgrade已成历史)
安装好portmaster之后运行/usr/local/sbin/portmaster -Da即可
不过需要注意的是看看是不是所有的软件都需要升级,是不是都合适升级。一般来说没有多大的问题
此外上次提到一个open_basedir不能与PHP一些参数共存的问题找到一个解决方法,因为是Nginx+FastCGI+Apache的环境
把不能打开Open_basedir的PHP程序放在Apache下跑,在php.ini中注释掉open_basedir部分
再在启动FastCGI的后添加-d open_basedir=/www:/tmp:/var/tmp:/usr/home,如下:
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 139 -u www -C 20 -f "/usr/local/bin/php-cgi -d open_basedir=/www:/tmp:/var/tmp:/usr/home"
这样在Nginx+FastCGI下跑的程序就会受到open_basedir的限制,而Apache下跑的PHP不受此限制。




