嗨,新朋友,很高兴认识你,欢迎来到我的博客。

TortoiseSVN 提交时 hook 的 post-commit.bat 不执行的解决方法

TortoiseSVN 提交到 VisualSVN Server 时 hook 的 post-commit.bat 不执行的解决方法:
这是因为 bat 文件执行需要权限,而 VisualSVN Server 默认用的是 NETWORK 用户组,该组没有执行 bat 的权限,导致了 post-commit.bat 文件不能执行,解决方法如下:

我的电脑-管理-服务:
VisualSVN_Server Service
将 VisualSVN Server 服务运行于超级管理员权限,然后重启这个服务。
问题到此解决了~!

RunAsDate – 破解有时间限制软件的小工具

RunAsDate 是一个用来破解有时间限制软件的小工具,这款软件可以将有时间使 用限制的共享软件“冻结”起来,让软件启动时始终运行在特定时间,如此一来就可以让共享软件“永葆青春”了。
软件截图如下:

该软件的使用那是相当的简单:
1、首先点 “browse…” 选择目标软件的启动程序。
2、在 “Date / Time:” 栏选择一个时间。
3、点击 “Run” ,就可以启动目标程序了,看看是不是又可以试用了。
4、在 “Create Desktop Shortcut” 后面的框内输入要建立的桌面快捷方式名称,然后点击 “Create Desktop Shortcut” ,桌面快捷方式就建立好了,以后直接在桌面上点击快捷方式就可以让目标软件运行在特定日期时间了。

下载地址(英文原版,汉化版有病毒):http://www.nirsoft.net/utils/runasdate.zip

MYSQL远程访问速度缓慢的解决方法

问题发生的场景:
MYSQL安装在Linux下,本地和远程都有应用访问MYSQL,本地访问MYSQL很流畅,但是远程访问非常之缓慢,基本上到了几分钟才响应的地步。SSH连接稳定,ping了下发现无丢包,排除网络问题。那么可能就是MYSQL的设置问题了。

查阅资料发现可以这么配置:

[mysqld]
skip-name-resolve

该选项用于禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

MYSQL参考手册:

你可以用–skip-name-resolve选项启动mysqld来禁用DNS主机名查找。然而,在这种情况下,你只可以使用MySQL中的授权表中的IP号。
如果你有一个很慢的DNS和许多主机,你可以通过用–skip-name-resolve禁用DNS查找或增加HOST_CACHE_SIZE定义(默认值:128)并重新编译mysqld来提高性能。

mysql批量修改表前缀

批量修改表名的操作方法:

Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO ', table_name,';' )
FROM information_schema.tables
Where table_name LIKE 'uc_%';

执行后得到如下的结果:

('ALTER TABLE uc_aaa RENAME TO uc_aaa;'),
('ALTER TABLE uc_bbb RENAME TO uc_bbb;')

导出结果到SQL文件中,然后去掉括号和引号,只保留如下的数据:

ALTER TABLE uc_aaa RENAME TO uc_aaa;
ALTER TABLE uc_bbb RENAME TO uc_bbb;

然后选择要修改的数据库,执行上面得到的SQL语句就可以了。
附:1、批量删除指定前缀的表

Select CONCAT( 'drop table ', table_name, ';' )
FROM information_schema.tables
Where table_name LIKE 'uc_%';

2、“dbtable_name”改成“db_table_name”

Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO db_', substring(table_name,3),';' )
FROM information_schema.tables
Where table_name LIKE 'db%';

参考资料:http://www.islandcn.com/post/855.html

Ubuntu/Debian 域名解析(NameServer)设置

Ubuntu/Debian 服务器如果解析域名失败的常见原因是服务器上的域名解析设置问题。

#vi /etc/resolv.conf
#添加域名解析服务器,可以自己搜一下
nameserver *.*.*.*

保存退出就可以了。
附:测试域名解析命令

#ping www.baidu.com -c 5

scws php 调用代码示例

安装 scws 之后,就可以在 php 代码中直接调用 scws 使用了,下面是一个代码示例,整理出来给大家做参考。

$scws = scws_new();
$scws->set_charset('utf8');
$scws->send_text($keyword);
$words = array(); 
while ($tmp = $scws->get_result()) $words = array_merge($words, $tmp);

用 Google 做站内搜索的代码

有时候图方便,用 Google 做站内搜索,代码如下:

<form action="http://www.google.com/search" method="get" target="_blank">
    <input name="q" type="text" />
    <input name="sitesearch" value="im87.net" type="hidden" />
    <input type="submit" value="查询" />
</form>

只是把核心代码写出来了,没做任何 form 的美化,使用的时候再美化下就可以。

计算 PHP 代码段执行时间

有的时候需要查看某段 PHP 代码的执行时间,现整理下方法:

$Time_begin = microtime(TRUE);
//要计算时间的代码段
$Time_end = microtime(TRUE);
$runtime = $Time_end - $Time_begin;
echo "执行了".$runtime."s";

Debian/Ubuntu 服务器与 NTP 同步时间

安装一个小工具:ntpdate,可以从ntp服务器同步时间.
#apt-get install ntpdate

手动和 api.bz 的 ntp 服务器对时.
#ntpdate ntp.api.bz

如果出现“the NTP socket is in use, exiting”的错误,执行一次下面的命令就好了:
service ntpd stop

自动对时:
安装完以后使用crontab来自动更新时间
#crontab -e
添加如下行:
*/30 * * * * /usr/sbin/ntpdate ntp.api.bz
这行的意思是每30分钟自动与时间服务器 ntp.api.bz 来进行同步

附:国家授时中心的 ntp 服务器 IP 210.72.145.44

Nginx 开启 stub_status 模块

Nginx中的stub_status模块主要用于查看Nginx的一些状态信息.
本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定:
./configure –with-http_stub_status_module

一、查看已安装的 Nginx 是否包含 stub_status 模块
#/usr/local/nginx/sbin/nginx -V

如果包含 stub_status 模块,那么就可以进行下面的步骤了:

二、修改 Nginx 配置文件

server {
         #添加如下配置
	location /nginx-status {
            stub_status on;
            access_log  off;
	   #加入访问限制
            allow 60.195.252.106;
	   allow 60.195.249.83;
	   deny all;
        }
}

三、重启 Nginx
#/usr/local/nginx/sbin/nginx -s reload

四、相关数据说明
Active connections: 对后端发起的活动连接数.
Server accepts handled requests: Nginx总共处理了38810620个连接,成功创建38810620次握手(证明中间没有失败的),总共处理了298655730个请求.
Reading: Nginx 读取到客户端的Header信息数.
Writing: Nginx 返回给客户端的Header信息数.
Waiting: 开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是Nginx已经处理完成,正在等候下一次请求指令的驻留连接.
所以,在访问效率高,请求很快被处理完毕的情况下,Waiting数比较多是正常的.如果reading +writing数较多,则说明并发访问量非常大,正在处理过程中.