Twip 刷不出 Mentions

twitter for iOS 莫名其妙的就刷不出 mentions 了,但是 iPad 科学上网后却没问题,看来是 API 挂了,折腾下发现原来是 twitter 改版后把 @Mentions 改成了 @Connect, 相应的 API 也跟着变了 i/activity/about_me ,这样在 Twip 中会被构造成 1/i/activity/about_me 。

打开 twip.php 搜索这段:第260行左右

strpos($this->request_uri,'oauth/') === 0

在后面添加一段:

strpos($this->request_uri,'i/activity/') === 0

后来 Google 发现这个问题在去年就存在了,奇怪为什么我这现在才出现。

解决Jooma的open_basedir paths 问题

折腾Windows Server 2008上的IIS7,半天才把PHP跑起来,然后装Joomla, 最后发现安装不上任何的模板和组件 -_-!!!

这个该死的Windows Server和万恶的IIS7,虚拟目录的设置实在是匪夷所思。

在不更改任何Server配置的情况下只能修改Joomla相关的文件了

修改libraries\joomla\filesystem\folder.php

注释掉

$obd = ini_get('open_basedir');

利用Twip架设自己的Twitter API

感谢+问候GFW以及其全家,上个推还要翻墙。host大法已然失效,SSH还能扛一段时间,无奈Touch和BB不能SSH穿墙,找了几个api还要看RP。遂想,还不如自己架个API。

Google一斧子,发现了几个,基于Python的birdnest,基于PHP的tweetr和twip,喜欢python的东西,但貌似birdnet是架在Google App Engine上的,估计早被GFW盯上了,转战熟悉的PHP,tweetr不返回header信息,没有将客户端类型的POST值传至服务器,还是选择twip. Continue reading 利用Twip架设自己的Twitter API

不要使用 PHP 5.30 版本来运行 Joomla

最近发现Joomla后台的article manager里面一堆堆的waring,外加article没复选框,部分菜单也不显示。本来以为是重装xampp的时候database没倒好,重新手动import后问题依旧,折腾了半天才发现原来是PHP 5.30的问题。

按道理来说版本的提高应该解决更多的bug,无奈5.30是个例外,和Joomla核心不兼容,更有甚者测试发现不光是1.5.x有问题,就算是还在alpha的Joomla 1.6也逃不了。

用XAMPP的用回1.7.1吧~自个儿编译的降一级就okay了。

最近和监控对上了……

以前对NB运行状态的监控一直就是在Panel上加个System Monitor就OK了。可是最近看Snowz在弄CACTI做服务器的监控,手痒就也装了一个,结果就变成了cacti+mrtg+conky……

先来看看MRTG吧~基本要放弃了!每次重启后就没用了!
安装还是比较简单的,所有的包都apt-get,主要是依赖snmp这个协议,按照wiki的说明配了一下apache,接着就是修改一下snmp的配置:
sudo vi /etc/snmp/snmpd.conf
查找到类似的行,修改为:
# sec.name source community
# com2sec paranoid default public
com2sec readonly default public
#com2sec readwrite default private

重启snmpd服务: sduo /etc/init.d/snmpd restart

生成mrtg的配置文件: sudo cfgmaker public@localhost > /etc/mrtg.cfg

生成mrtg的主页: indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html

安装CPU负载监视: sudo apt-get install sysstat
建立CPU脚本:
sudo mkdir /opt/mrtg
sudo vim /opt/mrtg/mrtg.cpu
#!/bin/bash
cpuusr=`/usr/bin/sar -u 1 3 | grep Average | awk ‘{print $3}’`
cpusys=`/usr/bin/sar -u 1 3 | grep Average | awk ‘{print $5}’`
UPtime=`/usr/bin/uptime | awk ‘{print $3″”$4″”$5}’`
echo $cpuusr
echo $cpusys
echo $UPtime
hostname

使脚本可以执行: sudo chmod 755 /opt/mrtg/mrtg.cpu

修改 /etc/mrtg.cfg 在文件最后加入cpu项目
Target[cpu]: `/opt/mrtg/mrtg.cpu`
MaxBytes[cpu]: 100
Options[cpu]: gauge, nopercent, growright
YLegend[cpu]: CPU loading (%)
ShortLegend[cpu]: %
LegendO[cpu]: CPU us;
LegendI[cpu]: CPU sy;
Title[cpu]: CPU Loading
PageTop[cpu]: CPU Loading

重新生成索引页面: sudo indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html


内存使用监视:
建立RAM脚本:
sudo mkdir /opt/mrtg
sudo vim /opt/mrtg/mrtg.ram
#!/bin/bash
# run this script to check the mem usage.
totalmem=`/usr/bin/free |grep Mem |awk ‘{print $2}’`
usedmem=`/usr/bin/free |grep Mem |awk ‘{print $3}’`
UPtime=`/usr/bin/uptime | awk ‘{print $3″”$4″”$5}’`
echo $totalmem
echo $usedmem
echo $UPtime
hostname

使脚本可以执行: sudo chmod +755 /opt/mrtg/mrtg.ram

修改 /etc/mrtg.cfg 在文件最后加入ram项目
Target[ram]: `/opt/mrtg/mrtg.ram`
#Unscaled[ram]: dwym
MaxBytes[ram]: 2048000
Title[ram]:Memory
ShortLegend[ram]: &
kmg[ram]:kB,MB
kilo[ram]:1024
YLegend[ram]: Memory Usage :
Legend1[ram]: Total Memory :
Legend2[ram]: Used Memory :
LegendI[ram]: Total Memory :
LegendO[ram]: Used Memory :
Options[ram]: growright,gauge,nopercent
PageTop[ram]:Memory

重新生成索引页面: sudo indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html

硬盘读写监视:
建立硬盘读写脚本:
sudo mkdir /opt/mrtg
sudo vim /opt/mrtg/mrtg.disk
#!/bin/bash
hd=sda
disk=/dev/$hd
UPtime=`/usr/bin/uptime |awk ‘{print $3″”$4″”$5}’`
KBread_sec=`iostat -x $disk|grep $hd |awk ‘{print 8$}’`
KBwrite_sec=`iostat -x $disk|grep $hd |awk ‘{print 9$}’`
echo $KBread_sec
echo $KBwrite_sec
echo $UPtime
hostname

使脚本可以执行: sudo chmod +755 /opt/mrtg/mrtg.disk

修改 /etc/mrtg.cfg 在文件最后加入硬盘读写
Target[disk]: `/opt/mrtg/mrtg.disk`
Title[disk]: Disk HDA I/O Utilization Report
#Unscaled[disk]: dwym
MaxBytes[disk]: 10240000
PageTop[disk]:Disk I/O Utilization Report
kmg[disk]: KB,MB,GB
LegendI[disk]: Disk I/O KBread/sec
LegendO[disk]: Disk I/O KBwrite/sec
Legend1[disk]: Disk I/O KBread/sec
Legend2[disk]: Disk I/O KBwrite/sec
YLegend[disk]: Megabytes
ShortLegend[disk]: &
Options[disk]: growright,gauge,nopercent

重新生成索引页面: sudo indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html

只要 sudo env LANG=C mrtg /etc/mrtg.cfg运行一下mrtg的配置文件,再访问: http://localhost/mrtg/就可以看到机器运行状态。

不过偶现在碰到的最大问题是一旦关机或者重启后mrtg就不再运行了?!重新运行:
sudo env LANG=C mrtg /etc/mrtg.cfg 后一直提示:
ERROR: Creating templock /var/lock/mrtg/_etc_mrtg.cfg_l_10391: No such file or directory at /usr/bin/mrtg line 1761.
到底问题出在哪呢?在论坛上发的贴也是石沉大海……

再来看看CACTI,用到现在还是蛮稳定的。
cacti是一套PHP程序,它用snmpget来采集数据,再用rrdtools绘图,功能和MRTG类似,不过貌似更强大点,不过就是要用到MySQL~~
本着能懒则懒的原则,所有相关包都去apt-get,然后先按照wiki的方法架apache+MySQL+PHP的环境,再按照cacti上的指南开始操作,结果问题来了;建好一个cacti表后竟然找不到SQL文件,然后就是cacti的配置文件config.php竟然是空的?!!百思不得其解??Google了好久都没什么结果,最后用最原始的方法:下源码包装,把

cacti直接放到apache的web目录下,然后编辑cacti的数据库连接文件:
sudo vim /var/www/cacti/include/config.php
如下这段根据你的数据库设置更改
$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “beetle”;
$database_password = “*******”;
$database_port = “3306”;

还要修改/etc/crontab,给cacti的数据抓取添加一个定时Job:
*/5 * * * * root php /var/www/cacti/poller.php > /dev/null 2>&1
然后登录http://localhost/cacti/ 第一次进入会让你进行一个简单的配置,主要是一些工具的路径,如果系统找不到,还要手动指定。第一次登录的密码默认是admin,登录后会让你更改密码。

直到后来才发现为什么一开始一直不对,原来apt自作聪明了,她把这些软件按照系统的一贯要求全部拆开存放到各个文件夹下,寻找起来还是比较麻烦的……

最后来瞄瞄conky,一个桌面级的监控程序。ubuntu的源里有,直接apt就可以了,偶也就不贴图了,把配置文件放上来share一下,感觉比System Monitor强大,唯一不解的是启动比较慢~~

.conkyrc