Author Archives: baizoo

制作bt5的U盘启动盘

以前做bt4和bt3时参考了很多网上的教程和工具都没成功制作U盘启动盘,今天找到一个用Universal USB Installer 制作BT5的U盘启动盘方法,尝试了下很容易成功了,记录下来分享。

教程详见:制作BT5可保存U盘系统

看看 Universal USB Installer 介绍:Universal USB Installer is a Live Linux USB Creator that allows you to choose from a selection of Linux Distributions to put on your USB Flash Drive.

Universal USB Installer 下载地址 http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

采集时执行执行时间太长的问题

做采集时,一般使用file_get_contents 或者 curl

1、curl可以使用 CURLOPT_TIMEOUT 设置超时时间,如
curl_setopt($ch, CURLOPT_TIMEOUT, 5); 表示5秒钟后停止获取指定页面。
这个问题可以参考 同步的方式执行还是异步的?CURLOPT_TIMEOUT有什么作用

2、使用file_get_contents 没有很好的参数,网上有部分代码可以参考

当你批量抓取的时候经常会出现网络的问题。可以尝试多次抓取
这也提醒我们,做特别需要稳定性的程序是一定要考虑网络的不稳定性
$html = false;
$try_count = 3;
for($i=0; $i<3 and $html === false; $i++){ $html = file_get_contents($url); }

file_get_contents设置响应时间timeout的方法

利用MaxMind根据IP地址对访问者定位

困扰了好久的问题,获取IP对应的详细信息,可以分析IP,根据IP的经纬度定位谷歌地图
详见:http://blog.csdn.net/sitonn/archive/2010/10/28/5973028.aspx

摘要:
分别下载GeoIP.dat.gz(国家)和GeoLiteCity.dat.gz(城市)
实例文件下载:http://www.maxmind.com/download/geoip/api/php/
google map api 申请地址:http://code.google.com/apis/maps/signup.html

nginx 反向代理技术

我花了一天时间寻找nginx伪静态时地址栏不跳转的方法,后来终于知道通过nginx的反向代理可以实现。于是又去学了nginx的反向代理和负载均衡。摘记一下要点。
参考 Nginx 常见应用技术指南[Nginx Tips] 第二版

负载均衡,英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行。
nginx的负载均衡主要是通过 proxy_pass 实现的。

location ~ ^/(test|images|styles)/
{
proxy_redirect off;
proxy_set_header Host www.test.com;
proxy_pass http://192.168.1.2:8080;
}

上面代码服务端用http://192.168.1.2:8080分担了当前www.test.com页面的test|images|styles目录访问。

经过研究发现 rewrite中 包含http://情况做的转向,地址栏中的地址都是会显示跳转后地址的。
用proxy_pass事先地址不跳转的例子,详见:nginx rewrite 实现二级域名跳转

另外,做反向代理时,常常需要用 proxy_set_header和X-Forwarded-For 传递访问者真实的IP

这里用的方法是 加入下面参数。

proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;

iis+apache不能连接mysql的问题

网上找了很多资料,调试了好久,终于解决了这个难题。

修改php.ini里的
extension_dir = “./” 为 extension_dir = “D:\PHP5\ext”

注:D:\PHP5 是我的php目录。

在环境变量Path里面添加 D:\PHP5\;D:\PHP5\ext;

网上说的将 lib文件拷到windows/system32目录下 这个是没必要的,设置好Path环境变量就可以了。
我因为误将 Mysql/bin 目录下的libmySQL.dll复制到了windows/system32目录下,导致php链接mysql时
出现 0x0075ac50 内存不能为read 的错误。后来还是进了安全模式,删除几个system32目录下的几个dll才解决了这个难题。

Continue reading

彻底删除语言栏中EN英语选项

最近不知道装了什么软件导致语言栏中的 EN英语 选项删除不掉,看着挺别扭的,也很纠结。后来网上找到一款工具“彻底删除语言栏EN英语(美国)的小工具”,下载后发现是个两个加密的bat文件,对其解密后,找到删除EN英语的方法。

去除EN英语


reg add "HKCU\Keyboard Layout\Preload" /v 1 /t reg_sz /d 00000804 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000409" /v "Layout File" /t reg_sz /d 0 /f

恢复EN英语

reg add "HKCU\Keyboard Layout\Preload" /v 1 /t reg_sz /d 00000804 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000409" /v "Layout File" /t reg_sz /d "KBDUS.DLL" /f

mysql 出现 PID file not found 错误

今天vps访问速度很慢,我用/root/lnmp restart 命令给lnmp重启了一下,重启之后发觉mysql链接不上了。
ssh里面运行 service mysql restrat 出现 MySQL is running but PID file could not be found 错误。
用mysql -u root -p 命令运行mysql时出现 Can’t connect to MySQL through socket mysql.sock 错误。

后来网上找到一篇不错的文章 mysql PID file not found and Can’t connect to MySQL through socket mysql.sock

虽然后来我是直接重启vps(reboot)解决这个问题,不过上面文章里的很多内容还是挺有用的。

记录几个以前不知道的知识:
1、grep 是查找命令 可做文件内的字符串查找,使用如: ps aux | grep mysql
2、ps 命令 显示所有进程 跟windows系统的 tasklist 命令相似 aux 显示所有包含其他使用者的行程
比如我运行 ps aux | grep mysql 命令后能够找到
–datadir=/usr/local/mysql/var–pid-file=/usr/local/mysql/var/li220-124.pid
3、kill -9 [PID] 终止进程命令 通过ps 找到进程pid 然后用kill -9 [PID]终止进程(-9表示强迫进程立即停止)
4、hostname 命令显示当前主机名 uname -a 命令显示当前系统内核版本
5、service命令
通过 service mysql status 可以查看 mysql的状态。但是其他服务名称如何查找?
发现通过 ls /etc/init.d/ 目录下面可以找到各个服务名称。
6、top命令 查看内存和cup使用情况
< shift+m 按内存使用排序>
<1 显示cpu使用情况>
7、chown 更改属主和属主组
chown [OPTION]… [OWNER][:[GROUP]] FILE…
如:chown mysql:mysql redhat.pid 更改redhat.pid 的ownner为mysql 所属组为mysql