Archive for the 笔记 Category

使用justhost服务器时 大mysql数据库的导入方法

Posted on 星期天, 九月 16th, 2012 at 01:48

最近开始用justhost服务器,不过我有一个网站有很大的数据库,大概有600M,

当初购买justhost也就是看中了他的不限制容量的方案,不过买过来后发现,坑爹的来了,导入数据库的phpmyadmin最大限制了sql文件就是50M, 我的600M根本不够传。

这时候首先想到了ssh权限,如果有ssh权限,我就可以用mysql命令直接导入了,不过,蛋疼的是,联系了客服后发现,需要我提供我的身份证复印件,靠,又不是天朝,我才不会把身份证复印给你嘞,

于是开始想其他方法,在cpanel里找来找去,忽然发现了一丝曙光,cronjob!!!

当当当当,这个东西是个好东西,我试着用他执行了一下wget 命令发现能正常运行,说明他没有禁用这些工具命令,于是我猜测,应该也没有禁用更加常见的mysql命令吧(确实没有)。

这样我可以通过wget命令把我的sql文件从我的原服务器上下载过来,然后用mysql命令直接导入数据库不就行了!

具体做法如下,

1.利用cronjob下载sql文件到justhost服务器上

在控制面板最下面,找到cron jobs,选择Add New Cronjob

选择Common Settings,选择第一个every minutes,这样可以创建一个每分钟都执行的cron jobs, 修改一下第一个* 改为接下来5分钟后将要到达的分钟数,比如 8 点 10分  就写10 ,再修改Command 为:  wget http://原始服务器的地址/你的sql文件.sql  点击Add new Cron job  按钮,即可保存,然后耐心等待到8点10分,这个差不多就多等一会儿,看你的sql文件大小而定,我500M差不多用了5分钟。

2.获得sql的绝对路径名:
到cpanel 下面打开file manager ,进入你的 Home Directory,在这个目录下,找到你的文件  比如xxxxx.sql,然后看一下左上角,那个小房子的地方,写着你的home 目录的路径,比如/home4/xmxxx目录,这样,你的sql文件绝对路径就是:/home4/xmxxx/xxxxx.sql
3.利用cronjob导入sql文件
具体步骤和上面第一步很类似,只是本次把Command改为:mysql -u你的服务器登录名 -p你的服务器登录密码 -hlocalhost 要导入的数据库完整名字 < /home4/xmxxx/xxxxx.sql
确定后,耐性等待一段时间,我的500M差不多也就5分钟,就导入成功了。
4.进入phpmyadmin检查数据库是否导入成功。

选择Common Settings,选择第一个every minutes,这样可以创建一个每分钟都执行的cron jobs, 修改一下第一个* 改为接下来5分钟后将要到达的分钟数,比如 8 点 10分  就写10 ,再修改Command 为:  wget http://原始服务器的地址/你的sql文件.sql  点击Add new Cron job  按钮,即可保存,然后耐心等待到8点10分,这个差不多就多等一会儿,看你的sql文件大小而定,我500M差不多用了5分钟。

2.获得sql的绝对路径名:

到cpanel 下面打开file manager ,进入你的 Home Directory,在这个目录下,找到你的文件  比如xxxxx.sql,然后看一下左上角,那个小房子的地方,写着你的home 目录的路径,比如/home8/xmxxx目录,这样,你的sql文件绝对路径就是:/home8/xmxxx/xxxxx.sql

3.利用cronjob导入sql文件

具体步骤和上面第一步很类似,只是本次把Command改为:mysql -u你的服务器登录名 -p你的服务器登录密码 -hlocalhost 要导入的数据库完整名字 < /home8/xmxxx/xxxxx.sql
确定后,耐性等待一段时间,我的500M差不多也就5分钟,就导入成功了。

4.进入phpmyadmin检查数据库是否导入成功。

5.修改您的登录密码。这个步骤,可选,由于这个导入动作很可能会在服务器上里留下执行记录,如果担心个人资料安全,建议修改密码。

php里preg_match错误的解决方法

Posted on 星期六, 五月 29th, 2010 at 21:27

最近使用preg_match,正则表达式分析抓取数据,一开始几条还好,但一会儿就不行了,没有任何错误报出,很是奇怪,就把数据改成几个字,成功执行,于是猜想php里的preg_match应该有长度限制问题。
网络上查了一下,确实有这个限制
找到php.ini把
pcre.backtrack_limit=-1
就可以了。
修改后重启php
成功执行!

FreeBSD快速安装PHP+eaccelerator,nginx,spwn-fcgin

Posted on 星期六, 四月 17th, 2010 at 12:06

FreeBSD使用nginx+PHP可以达到非常优秀的访问速度。

以下介绍如何快速安装一个可以使用的PHP服务器。

 

请先确认: /usr/ports/目录存在,如果不存在,请先安装ports。

1.安装PHP

cd /usr/ports/lang/php5

make install clean

 

2.安装PHP扩展

cd /usr/ports/lang/php5-extensions
make config
make install clean

 

3.安装MySQL支持(如果在安装PHP的时候选择了MySQL支持,这里可以不用设置)

cd /usr/ports/databases/php5-mysql
make install clean

 

4.安装lighttpd(安装lighttpd是为了取得他的spawn-fcgi程序,所以在安装的时候务必要选上)

cd /usr/ports/www/lighttpd
make install clean

 

5.删除lighttpd保留spwn-fcgin程序

cp /usr/local/bin/spawn-fcgi /tmp/
/usr/sbin/pkg_delete -v lighttpd-1.4.26
cp /tmp/spawn-fcgi /usr/local/bin/spawn-fcgi

 

6.制作PHP 配置文件

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

 

7.编写fastcgi的启动脚本

ee /usr/local/etc/rc.d/php-fcgi
PROVIDES=php-cgi
LIGHTTPD_FCGI=/usr/local/bin/spawn-fcgi
SERVER_IP=127.0.0.1
SERVER_PORT=9000
SERVER_USER=www
SERVER_GROUP=www
PHP_CGI=/usr/local/bin/php-cgi
PGREP=/bin/pgrep
KILLALL=/usr/bin/killall
### No editing below ####
cmd=$1

pcgi_start(){
      echo "Starting $PROVIDES…"
     $LIGHTTPD_FCGI -a $SERVER_IP -p $SERVER_PORT -u $SERVER_USER -g $SERVER_GROUP -C 100 -f $PHP_CGI
}

pcgi_stop(){
    echo "Killing $PROVIDES…"
    $KILLALL $PROVIDES
}

pcgi_restart(){
    pcgi_stop
    pcgi_start
}

pcgi_status(){
        $PGREP $PROVIDES > /dev/null
    [ $? -eq 0  ] && echo "$PROVIDES running" || echo "$PROVIDES NOT running"

}

pcgi_help(){
      echo "Usage: $0 {start|stop|restart|status}"
}

case ${cmd} in
[Ss][Tt][Aa][Rr][Tt]) pcgi_start;;
[Ss][Tt][Oo][Pp]) pcgi_stop;;
[Rr][Ee][Ss][Tt][Aa][Rr][Tt]) pcgi_restart;;
[Ss][Tt][Aa][Tt][Uu][Ss]) pcgi_status ;;
*)      pcgi_help ;;
esac

 

8.启动脚本的执行权限

chmod +x /usr/local/etc/rc.d/php-fcgi 

 

9.安装nginx

cd /usr/ports/www/nginx
make install clean

 

10.允许自动启动nginx

ee /etc/rc.conf
增加 :nginx_enable="YES"

保存

 

11.允许自动启动php-fcgi

ee /etc/rc.local

增加:/usr/local/etc/rc.d/php-fcgi   start

保存

 

12.安装 eaccelerator加速

cd /usr/ports/www/eaccelerator

make install clean

 

13.建立eaccelerator的临时目录

mkdir /tmp/eaccelerator

chown www /tmp/eaccelerator

chmod 0700 /tmp/eaccelerator

 

 

14.PHP中启用eaccelerator

ee /usr/local/etc/php/extensions.ini

紧挨
extension=session.so

下面加上
extension=eaccelerator.so

即可

保存

 

15.配置eaccelerator

ee /usr/local/etc/php.ini

增加:
[eaccelerator]
eaccelerator.shm_size="64"
eaccelerator.shm_prune_period="60"
eaccelerator.shm_ttl="1800"

保存

 

16.建立网站目录

mkdir /www

 

17.配置nginx

ee /usr/local/etc/nginx/nginx.conf

开头的user ……改为:user  www www ; 并且去掉前面的#注释

server配置段中

增加PHP支持

location ~ \.php$ {
            root           html;#此处不要修改
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME /www$fastcgi_script_name;
            include        fastcgi_params;
        }

修改

server
  {
    listen       80;
    server_name  www.iwantso.com;
    index index.html index.htm index.php;
    root  /www;#此处为你的网站根目录。

 

18.做完以上修改后,就可以重启服务器测试了。

 

19.上传PHP文件至/www目录下

 

20.如果PHP无法执行,很可能是eaccelerator问题,可以试着执行以下代码

cd /usr/ports/www/eaccelerator
make deistall
make reinstall

重新安装,一般就可以了。

FreeBSD快速安装步骤

Posted on 星期三, 四月 14th, 2010 at 12:14

用FreeBSD安装光盘启动,出现以下画面:

 1

选择1.Boot FreeBSD [default]
接下来便进入国家选择画面:

2

选择45 China 按回车进入键盘布局选择画面:

3

这里我们选择默认:USA ISO
按回车继续
接下来进入安装方式画面:
4
这里我们选择Express Begin a quick installation(for experts)
接下来进入 磁盘分割画面:
5
这里选A(使用整个磁盘)

按下A以后进入这个画面:
6
按Q结束,进入如下画面:
7
选择Standard Install a standard MBR (no boot manager)
进入如下画面:
8
按A自动分区
然后按Q进入如下画面:
9
我们选择Custom
进入安装包选择画面:
10
我们选择:base,kernels,和ports
11
Kernels 就一个可选项选之即可
使用tab键移动光标至OK按下回车,
返回至安装包选择画面,继续使用tab键移动光标至OK按下回车
进入如下画面:
12
这个画面是选择安装介质,我们使用的是光盘安装,就选择第一个 CD/DVD即可
按下回车进入如下画面:
13
不管他回车,继续

进入安装画面:

17 

耐心等候,很快就会完成出现如下画面:
18
按默认选择NO直接回车
再次返回安装画面:
19

由于我们已经安装完成,Tab移至Exit Install 按回车
出现确认对话框,这选择Yes
再次出现提示,要求移除光盘,我们取出光盘,按回车

至此FreeBSD按装完成
耐心等待系统重新启动
出现登录画面:
20
打入:root按回车进入
出现如下画面:
21
表示已经成功进入FreeBSD系统了

pwa.js的国外主机使用方案

Posted on 星期六, 十二月 5th, 2009 at 22:11
常见嵌入博客Picasa相册的方法就是使用pwa.js,pwa.js非常好用,可以完美嵌入到博客程序里面去。但是当Picasa被无法访问后,这个脚本就没有用武之地了。
因为pwa没有下载远程的图片。只是连接到了Google服务器上。
现在我已经使用了外国主机,是不是可以把图片下载主机上,然后变成本地文件。这样就变成普通文件,应该就没有问题了。
于是改写了pwa.js,改连至本地主机。
服务器端程序如下:
 
<?php
function curl_download($remote, $local) {
     $cp = curl_init($remote);
     $fp = fopen($local, “w”);
   
    curl_setopt($cp, CURLOPT_FILE, $fp);
    curl_setopt($cp, CURLOPT_HEADER, 0);
   
     curl_exec($cp);
     curl_close($cp);
     fclose($fp);   
}

$REFERER=$_SERVER['HTTP_REFERER'];//这里可以利用REFERER防止盗链
 //本地保存图片的路径
$CacheDir=”cache/”;
$imgsrc = urldecode( htmlspecialchars(  $_GET['src']  ) );
//由于墙对ggpht特别敏感,过滤之。
$imgsrc=str_replace(”-018D6A6D-7F92-456e-A0B0-0299ED6A1130-”,”ggpht”,$imgsrc);
//以下过滤一些不能在url中出现的字符。
$imgsrc=str_replace(”-D89C23BA-AECD-44c4-BA2B-6D1ABC15B6E8-”,”:”,$imgsrc);
$imgsrc=str_replace(”-98B824C9-789C-42b0-8120-AB521E31F289-”,”/”,$imgsrc);
$imgsrc=str_replace(”-51E3C888-EF45-42cf-8D78-1595857BF2C5-”,”.”,$imgsrc);
$imgsrc=str_replace(”-907415C9-A075-40e7-821B-892CEF56E609-”,”?”,$imgsrc);
$imgsrc=str_replace(”-CE73AD1A-160F-4522-A5F7-B61A32DDFFB1-”,”&”,$imgsrc);
 
if(   substr_count( strtolower($imgsrc), ‘jpg’) > 0 ){
 $append = “jpg”;
}else if(   substr_count( strtolower($imgsrc), ‘gif’) > 0 ){
 $append = “gif”;
}else{
 $append = “png”;
}
$cache_image = md5( $imgsrc ).”.”.$append ;
 
$cache_file = $CacheDir. $cache_image;
header(”Content-type: image/”.$append );
 
if(  file_exists($cache_file) && filesize($cache_file) > 10 ){
  readfile($cache_file );
}else{
  curl_download($imgsrc,$cache_file);
  readfile($cache_file );
}
?>

 
以下为pwa.js的修改要点:
 
 增加函数:
 function UrlEncode(S)
 {
  var tmpstr=S;
  //alert(S);
   tmpstr = tmpstr.replace(/ggpht/g,”-018D6A6D-7F92-456e-A0B0-0299ED6A1130-”);
   tmpstr = tmpstr.replace(/:/g,”-D89C23BA-AECD-44c4-BA2B-6D1ABC15B6E8-”);
   tmpstr = tmpstr.replace(/\//g,”-98B824C9-789C-42b0-8120-AB521E31F289-”);
   tmpstr = tmpstr.replace(/\./g,”-51E3C888-EF45-42cf-8D78-1595857BF2C5-”);
   tmpstr = tmpstr.replace(/\?/g,”-907415C9-A075-40e7-821B-892CEF56E609-”);
   tmpstr = tmpstr.replace(/\&/g,”-CE73AD1A-160F-4522-A5F7-B61A32DDFFB1-”);
      tmpstr =”picasa代理程序地址/?src=”+tmpstr; 
  return tmpstr
 }
然后把所有的img 的src全部换成UrlEncode(原来的src)
对了,最重要的一点!别忘了要有国外主机哦

stunnel+CCProxy,搭建加密代理

Posted on 星期四, 十二月 3rd, 2009 at 21:13

总所周知,不可抗拒的特别有用心的原因,我们无法访问youtube,picasa,Twitter……国外优秀网站,很多人采用了代理服务器的方法访问。

如果您有一台放在海外的服务器,这个就好办了。下载一个CCProxy,设置成代理服务器就可以了。

不过好像总是有问题,比较明显的是在访问的页面含有一些敏感词语的时候会被无法访问。短时间内甚至无法使用网络。这个就是我们值得自豪的全球牛B的关键词过滤系统了。

不过牛B归牛B,如果我们的连接被加密了,他再牛逼也没有用。

介绍个Internet传输的常用加密方法:SSL;

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

我们常见到的https协议就是基于SSL加密,目前很多银行系统、Gmail的登录程序就采用了Https传输,这是一种公钥,私钥的加密体系,非常安全。

目前最好的代理服务器是Socket代理,他是绝大多数Internet软件都支持的代理方式。CCProxy已经支持,

那么如何能建立一个支持加密的Socket代理呢?

接下来就是stunnel出场了:

Stunnel是一个自由的跨平台软件,用于提供全局的TLS/SSL服务。
  针对本身无法进行TLS或SSL通信的客户端及服务器,Stunnel可提供安全的加密连接。该软件可在许多操作系统下运行,包括Unix-like系统,以及Windows。Stunnel依赖于某个独立的库,如OpenSSL或者SSLeay,以实现下面的TLS或SSL协议。

stunnel是一个可以将Socket转换成SSL协议在网路上传输的软件,并提供SSL转换回Socket,通过它就可以在代理信息传输过程中加上一条保障了。

具体流程如下:

客户端Socket->客户端stunnel——Internet(SSL)——->服务器端stunnel->服务器端CCProxy->Internet

具体方法如下:

服务器端安装CCProxy,并启动。

服务器端安装stunnel,设置配置文件为:

cert = stunnel.pem
key = stunnel.pem
 
; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
taskbar=yes
client = no
 
[socks2ssl]
accept = 8800
connect = 127.0.0.1:1810
其中 127.0.0.1:1810就是服务器上的的CCProxy的Socket代理
客户端安装:stunnel
设置配置文件:
cert = stunnel.pem
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
client=yes
[socks2ssl]
accept = 8800
connect = 123.123.123.123:8800
其中 123.123.123.123:8800就是服务器地址,accept = 8800就是本地的接收代理的地址可供本地使用。
这样把IE 的套接字(Socket)代理设置成127.0.0.1:8800就可以访问敏感词了
 
如果再安装个Permeo Security Driver那就更爽了,透明代理,不用任何设置即可轻松绕过敏感词系统,具体使用方法可以参考我的另一篇文章:CCProxy的突破应用
 

CCProxy的突破应用

Posted on 星期二, 十一月 10th, 2009 at 09:36

新公司上班,发现只给IE,OutLook设置了代理,可以上网,其余均无法上网。
且似乎封闭了web.qq.com,tudou.com等等娱乐网站。

虽然不怎么要上这些网站,但平时使用起来其实挺麻烦的,我喜欢更换,尝试各种不同的软件。每次安装完以后都要主动去设置代理服务器地址,想想也真够敏感词的。

新人,没办法,就是闲得蛋疼,产生了若干打算:
1.透明代理,不需要每次上网都设置代理
2.突破内部封锁,自由进出外网。
3.恐龙级要求:突破GFW

首先被想到的是SocksCap,当年突破GFW就全靠了他了。不过必须是Socket代理能使用。
于是幻想能有一个Socket代理,于是情不自禁的就想到了CCProxy,按道理这个时候是不应该想到CCProxy的,他只是个代理服务器软件;而当前我要出去就必须经过公司的代理服务器,公司的代理服务器显然不是我能轻易碰得到的。

但这就是所谓的鬼使神差吧,我装上了一个CCProxy后,瞎点中惊喜的发现,他可以做二级代理,也就是说如果将其作为代理服务器主机,他可以不用直接上网,他也可以通过代理上网。
更加惊喜的还在后头,CCProxy的二级代理服务器支持了HTTP,HTTPS,SOCKS5三种代理协议,当我设置成为公司的HTTP代理后,我惊喜地看见:
CCProxy的代理功能仍然完整,这样难道意味着,CCProxy对HTTP代理能够转换?
实践证明,是的。

通过CCProxy转换成功的Socks5代理,几乎无敌,成功登录,QQ,MSN,远程桌面……

接下来就是第1个要求了,透明代理,不需要每次上网都设置代理,又一个伟大的软件被找出来了:Permeo Security Driver,这是一个驱动化了的SocksCap。
以前使用SocksCap 需要先启动SocksCap再从 SocksCap 里启动软件。当时已经很满足了。毕竟有很多软件无法设置代理服务器。SocksCap 轻易解决了这点。
Permeo Security Driver驱动化了SocksCap,就是说,Permeo Security Driver在系统驱动层运行,无需再先行启动,而且支持多个代理环境的简单切换。
具体使用方法如下:
1.安装Permeo Security Driver
2.打开开始-Permeo Security Driver-User Properties
3.General 选项卡中有四个项目代表了四种情况,我设置了In Office,Out Office,两个,表示在办公室和离开办公室分别使用的代理。
4.在办公室我设置成了刚刚CCProxy建立的127.0.0.1,1080的Socks5代理
5.离开办公室我设置成了我的海外Socks5代理,

这样只要我想快速上网,我就选择In Office,使用公司服务器,
如果我想翻墙玩,就选择Out Office,通过公司服务器连上外国主机,由于和国外主机进行了SSL加密,墙暂时奈何不了我。
其他软件的网络设置都不用改,非常方便。

让Windows 自动登录系统

Posted on 星期二, 十一月 3rd, 2009 at 21:42
 在使用Windows 时,尤其是Windows 2000和Windows 2003,有时候我们需要它自动登录到系统中,每次登录都会弹出登录对话框,要求输入用户名和密码,非常麻烦。
我们有三种种方法可以将系统设置为自动登录:
 
1、更改注册表(未测试过)
  在 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon] 找到或者添加 “DefaultUserName” 字符串值,将其设置为默认登录的用户名;
找到或者添加 “DefaultPassword” 字符串值,将其设置为默认登录用户的口令。
 
2、(测试过)在 “运行” 中敲入”rundll32 netplwiz.dll UsersRunDll” ,会弹出一个窗口,不选 “要使用本机,用户必须输入用户名和密码”,然后点 “确定”。这时会有一个窗口让你输入用户名和密码,正确输入后就可以自动登录系统了。
 
3、(测试过)在”运行”中输入control userpasswords2回车,在打开的用户帐号窗口中将“要使用本机,用户必须输入用户名和密码”前的“√”去掉。然后点 “确定”。这时会有一个窗口让你输入用户名和密码,正确输入后就可以自动登录系统了。

Gmail POP 功能5个邮箱限制的解决方法

Posted on 星期五, 十月 16th, 2009 at 11:17

一直对Gmail的“使用 POP3 检查邮件”只有5个邮箱的限制耿耿于怀,昨天又要加个邮箱,忽然感觉这事有搞头,

其实很简单,只要再申请一个新的Gmail,然后把要POP收取的邮箱加到那个新申请的邮箱中去,

然后主Gmail邮箱收取这个新的Gmail。

再建立过滤器 根据收件人贴上不同标签即可达成目标了。

恢复IIS服务器的ASP.NET选项卡

Posted on 星期三, 七月 15th, 2009 at 20:44

最近公司IIS服务器的ASP.NET选项卡不见了,大量的.NET 2.0网站没法启用,找了很多方法,大多是说采用:

C:\Windows\\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis -i
C:\Windows\\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i    

但没有用,还是没出来。

重装.NET Framework2.0,还是没有用。

最后终于找到方法:
关闭IIS,打开C:\WINDOWS\system32\inetsrv\MetaBase.xml 修改 Enable32BitAppOnWin64="FALSE"  启动IIS.一切正常了。