作者存档

mysql安装指南

2011年9月5日 没有评论

本文详细介绍在linux下如何安装mysql。mysql的版本是预编译好的二进制包,非rpm。

  • 下载mysql

下载地址:http://dev.mysql.com/downloads/mysql/5.1.html,在Select Platform中选择Linux-generic,在列表中找到Generic Linux (glibc 2.3) (x86, 32-bit), Compressed TAR Archive,如果是64位系统,选择对应的64位的包。

  • 增加mysql用户和用户组
groupadd mysql
useradd -g mysql mysql
  • 检查系统是否存在老版本的mysql

在centos下通过rpm -qa | grep mysql 查找一把,如果存在就通过 rpm -e mysql rpm名来卸载。

  • 安装配置
1、cd /usr/local
2、tar -zxvf  /pathto/mysql-5.1.58-linux-i686-glibc23.tar.gz
3、ln -s mysql-5.1.58-linux-i686-glibc23 mysql
4、cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
5、vi /etc/my.cnf
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
#增加的项
datadir         = /var/lib/mysql/data
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /var/lib/mysql/data
innodb_data_file_path = ibdata1:2000M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
6、mkdir -p /var/lib/mysql/data
7.1、cd /usr/local/mysql/
7.2、./scripts/mysql_install_db
如果出现错误,试着用  /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/var/lib/mysql/data
8、chown -R mysql:mysql /var/lib/mysql
9、cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
10、/etc/init.d/mysqld start

在5.1.60按照此方法安装后,启动时报错,从错误日志发现mysqld用的数据目录还是默认的/usr/local/mysql/data/,没有使用my.cnf中设置的,解决办法可以修改/etc/init.d/mysqld,找到datadir并把它设置为自己的数据目录,另外在这个版本中似乎已经不支持在my.cnf中设置datadir了,使用mysqld_safe启动时候出现过警告,The data directory is a deprecated location for my.cnf, please move it to …。

分类: MySQL, 数据库 标签:

javascript的repacle方法的用法

2011年9月1日 没有评论

replace是String对象上的一个方法,可以实现把字符串中某些指定的子字符串替换成其他字符串。用法为 “字符串.replace(parm1,parm2)”。其中parm1的老字符串,可以使普通字符串,也可以是一个正则表达式;parm2退换的结果,可以是一个字符串,更重要的是也可以是一个javascript的方法,作为回调函数。下面用几个小例子来分别说明一下。

alert(‘abcabd’.replace(‘ab’,’12′));

这里alert的结果就是12cabd,注意到它只替换到第一次出现的,后面不做替换。如果把子串全部替换,只能用正则表达式的方法来操作。

alert(‘abcabdAbe’.replace(/ab/g,’12′));

这样得到的结果为12c12dAbe,g 表示进行全局替换,同时也可以用 i 来忽略大小写,注意正则表达式不能用引号引起来。

var i = 0;
alert(‘abAabBabC’.replace(/ab/g, function(m) {
i++;
return m + ‘-’ + i + ‘-’;
}));

这里的结果是ab-1-Aab-2-Bab-3-C,当匹配到子字符串时,调用回调方法,并把匹配到的值作为参数传入。另外一个例子,把字符串中小于30的数替换成星号

alert(’10 33 21 18 52′.replace(/\d+/g, function(match) {
return parseInt(match) < 30 ? '*' : match;
}));

ImageMagick之图片裁剪

2011年8月31日 没有评论

imagemagick的convert命令通过crop参数,可以把一幅大图片分成若干块大小一样的图片,同时也可以在大图上截取一块图片来。命令格式为

convert 原始图片 -crop widthxheight+x+y 目标图片

其中widthxheight是目标图片的尺寸,+x+y是原始图片的坐标点,这两组值至少要出现一组,也可以同时存在。另外该命令也可使用gravity来重新定义坐标系统。关于更多gravity的信息,请参考:ImageMagicK之gravity参数详解。下面介绍几种常用的命令。

  • 把原始图片分割成多张小图
convert src.jpg -crop 100x100 dest.jpg

假设src.jpg的大小是300x200,执行命令后将得到名为dest-0.jpg、dest-1.jpg...dest-5.jpg
的6张大小为100x100的小图片。注意如果尺寸不是目标图片的整数倍,那么右边缘和下边缘的一部分图片就用实际尺寸
  • 在原始图片上剪裁一张指定尺寸的小图
convert src.jpg -crop 100x80+50+30 dest.jpg
在原始图片的上距离上部30像素左部50为起点的位置,分别向左向下截取一块大小为100x80的图片。如果x相对于坐标,宽度不够100,那就取实际值。

convert src.jpg -gravity center -crop 100x80+0+0 dest.jpg
在原始图上截取中心部分一块100x80的图片

convert src.jpg -gravity southeast -crop 100x80+10+5 dest.jpg
在原始图上截取右下角距离下边缘10个像素,右边缘5个像素一块100x80的图片

centos下搭建apache+svn服务器

2011年8月31日 没有评论

本文将详细介绍centos5如何搭建svn服务器。包括apache,subversion的安装和一些简单的配置。

  • 安装Apache HTTP Server

apache下载地址:http://www.apache.org/dist//httpd/httpd-2.2.20.tar.gz

通过tar -zxvf httpd-2.2.20.tar.gz 解压,进入解压后的文件夹,执行

./configure --enable-dav --enable-so --prefix=/usr/local/apache2

其中,–enable-dav允许Apache提供DAV协议支持;–enable-so允许运行时加载DSO模块,前两个参数是必须要加的,–prefix 是安装的位置。如果configure通过,接着执行

make && make install

数分钟后就完事了,通过 /usr/local/apache2/bin/apachectl -k start 来启动,在浏览器中访问127.0.0.1,如果出现 It’s Works!,那么说明安装成功。

  • 安装Subversion
  • Subversion
Subversion需要需要下载两个文件subversion-1.6.17.tar.bz2和subversion-deps-1.6.17.tar.bz2,它们的下载地址是
http://subversion.tigris.org/downloads/subversion-1.6.17.tar.bz2
http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.bz2

分别解压subversion-1.6.17.tar.bz2和subversion-deps-1.6.17.tar.bz2,解压后他们都在subversion-1.6.17这个文件夹下,然后执行configure,命令如下

./configure --with-apxs=/opt/apache2/bin/apxs --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --prefix=/usr/local/subversion-1.6.7

其中,–with-apxs 用于生成apache httpd的mod_dav_svn和mod_authz_svn模块;–with-apr 和 –with-apr-util=参数指向 Apache 的安装根目录,而不是使用缺省的 SVN 安装包中自带的 apr ,否则如果你安装的 Apache 版本不同有可能导致 APR 库不匹配,出现类似 Can’t set position pointer in file ‘/svn/test/db/revs/1′: Invalid argument 的错误,–prefix 是安装的位置。中间可能会出现某些库找不到的情况,根据提示用yum来搞定。configure成功后,执行编译和安装,即

make && make install

如果没有报错,svn就成功安装好了。对于版本1.8+,可能需要通过如下命令把对应 so 文件 copy 到apache 目录。

cp subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache/modules/
cp subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache/modules/
  • 如何创建的Subversion的版本库

假设我们把版本库建立在/opt/svnroot 目录下,那么在/opt/svnroot目录下执行mkdir repository新建版本库文件夹,通过svnadmin create repository/test命令可创建名为test的版本库。若创建成功,则subversion的安装便已成功完成。使用mkdir -p import/{trunk,branches,tags} 命令在/opt/svnroot目录下建立一个名为import的新文件夹,包含trunk、branches、tags 三个子目录。下面这条语句将把路径/opt/svnroot/import下的目录和文件导入到你创建的Subversion 仓库中去,提交后的修订版为1。

svn import /opt/svnroot/import file:///opt/svnroot/repository/test -m "Init repository"

这里/opt/svnroot/import可以使用相对路径,但file:///opt/svnroot/repository/test必须以绝对路径表示。

分类: Linux 标签: , , ,

IE下css的hack代码

2011年8月31日 没有评论

利用hack技术可以为不同的浏览器设置不同的值。例如代码:

.test {
    margin-top:10px;	/*所有浏览器*/
    margin-top:5px\9;	/*所有IE浏览器*/
    *margin-top:0px;	/*IE6、7*/
    _margin-top:-10px;	/*IE6*/
}

css的顺序很重要,后面的会覆盖前面设置。。所以以上代码在Firefox下margin-top的值为10px,IE8下可以识别第一条和第二条,但第二条会覆盖第一条,故就变为5px,同理IE7下则为0px,IE6下为-10px。

综上所述,符号[\9]所有IE浏览器可识别、[*]IE6、7 能识别、[_]只有IE6下能识别。

分类: web前端 标签: ,

nginx下wordpress的伪静态配置

2011年8月31日 没有评论

本来起初自己在nginx来配置转发规则,但有些连接转发有问题,后来在网上查了一下,原来借助nginx的try_files指令,只需要一行配置就可以搞定伪静态配置了。代码如下:

try_files $uri $uri/ /index.php?q=$uri&$args;

更多关于try_files的知识,参看:http://wiki.nginx.org/NginxHttpCoreModule#try_files

分类: Linux 标签: , ,

ImageMagick之图片缩放

2011年8月30日 没有评论

利用ImageMagicK的convert命令,能很方便的实现图片的放大缩小,可以进行等比例缩放,也能缩放到指定的固定大小。缩放的参数resize,由它来指定缩放后图片的宽高,比如“200×100”。

  • 等比缩放 例如把图片a.jpg缩放到200×100的尺寸,可以用命令:
convert -resize 200×100 src.jpg dest.jpg

注意:虽然明确指定了图片大小为200×100,但dest.jpg的不一定就是200×100,因为是等比缩放的,dest.jpg大小取决原始图片比例。假设src.jpg的大小是500×200,那么缩放后dest.jpg的真实大小为200×80,再比如src.jpg的大小是300×200,缩放后的尺寸为150×100。原则是缩放后的尺寸最少有一个是符合宽或高,且另外一个不能大于指定的参数中对应的宽或高。另外可以通过只指定宽或高的方式来进行缩放。例如:

convert -resize 200 src.jpg dest.jpg
得到图片宽为200,高根据原始图片比例计算而来

convert -resize x100 src.jpg dest.jpg
得到的图片高位100,宽根据原始图片比例计算而来
  • 固定宽高缩放。即不考虑原是图宽高的比例,把图片缩放到指定大小。例如命令:
convert -resize 200x100! src.jpg dest.jpg

说明:区别是宽高后面多了一个叹号,此时不管原图片比例如何,缩放后的图片大小都是200×100,这样就可能导致图片变形。注意:在linux环境对参数需要用单引号引起来,而windows下又不能使用单引号。

  • 有条件缩放。可以通过>或<符号来控制原始图片是否进行缩放,例如在处理一批尺寸大小各异的图片,只想把尺寸大于给定的值图片才进行缩小,如果没有指定条件,可能会把那些小的图片进行了放大处理。
convert -resize "200x100>" src.jpg dest.jpg
注解:只有当src.jpg的宽大于200或高大于100时候,才进行缩小处理,
否则生成的dest.jpg和src.jpg具有一样的尺寸。
注意在linux下要用单引号替换成双引号,即'200x100>'。

convert -resize "200x100<" src.jpg dest.jpg
注解:只有当src.jpg的宽小于200或高小于100时候,才进行放大处理,
否则生成的dest.jpg和src.jpg具有一样的尺寸。
注意在linux下要用单引号替换成双引号,即'200x100<'

上述两种有条件缩放是按原始图等比例缩放的,也就是对符合条件的图片进行等比缩放。同时有条件缩放也可以与固定大小缩放联合起来用。例如如下命令。

convert -resize "800x100>!" src.jpg dest.jpg
注解:假设src.jpg尺寸是300x200。很显然src.jpg的高(200)是大于指定值高(100),
符合缩小的条件,由于执行的不是等比缩放,
所以dest.jpg的尺寸理论上是800x100,由于执行是缩小操作
显然800是超过原始图片宽的,故dest.jpg的宽只能是300

convert -resize "10x1000<!" src.jpg dest.jpg
注解:假设src.jpg尺寸是300x200,src.jpg的高(200)小于指定值高(1000),
因此该命令将执行放大图片操作,dest.jpg的高将放到到1000,
由于目标图片宽比原始图片还小,但是执行的是放大操作,因此只能用原始图片的宽,
所以得到的dest.jpg的尺寸是300x1000。

javascript读写cookie实例

2011年8月29日 没有评论

Cookie是网站存放在客户端的一小段数据。一般的,网站为了提升用户体验,在客户的客户端中保存用户的历史信息,以备用户再次访问时网站能提供 更方便,更有针对性的服务。比如,网站可以记住你的登录状态,只要登录一次下次访问就不用在登录;购物网能记住你浏览过的产品,保留你购物车中的物品。这 些都有Cookie的功劳。

cookie的存取操作不止局限于服务器段,客户端通过javascript也一样可以进行cookie的存取。利用document.cookie对象就能操作了。下面分别给出读写cookie的方法示例代码。

function getCookie(name){
    var arr = document.cookie.match(new RegExp("(^| )" 
                                   + name + "=([^;]*)(;|$)"));
    if(arr != null) return (arr[2]);
    return null;
}

document.cookie就是以key/value的形式返回所有对于当前页面有权限读取的cookie字符串,然后通过正则表达式查询参数指定cookie名的cookie值。

function setCookie (name, value, expire) {
    var expireStr = '';

    if (expire || expire > 0) {
        var exp  = new Date();
        exp.setTime(exp.getTime() + expire * 1000);

        expireStr = ';expires=' + exp.toGMTString();
    }

    document.cookie = name + '=' + value +  
                      '; path=/;' + expireStr + 
                      'domain=.youdomain.com';
}

注意setCookie中的第三个参数,是指定cookie的过期时间,单位为秒,如果不指定或者值不大于0,那么写入的cookie类型为会话cookie,即浏览器关闭后,cookie就失效,反正就是硬盘cookie,会记录在客户端的电脑上。

解决第三方cookie的存取问题

2011年8月29日 没有评论

何为第三方cookie呢,简单来说,就是用户当前浏览的页面上有通过IFRAME、IMG或script等标签嵌入另外一个域名的链接地址,该链接设置的cookie就称为第三方cookie,当前页面设置的cookie为第一方cookie。由于隐私保护的问题,现在主流的浏览器默认是不允许写入第三方cookie的,但是只要在相应的Header信息设置了P3P,第三方cookie还是能正常的写入的。

例如在php中通过下面的代码就能正确的写入一个名为thirdcookie的cookie。

header(‘P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘);

header(“Set-Cookie: “thirdcookie=cookievalue;domain=.youdomian.com;path=/;expires=” . gmstrftime(“%A, %d-%b-%Y %H:%M:%S GMT”, time() + (86400 * 365 * 3)));

需要注意的是即使设置了P3P,只有通过服务器端的操作才能写入cookie,客户端方用javascript的方法也依然无法写入cookie,而且在IE6下javascript也无法读取到第三方cookie。关于javascript读写cookie的详细信息,请参阅 javascript读写cookie实例

结束PPAP.exe进程

2011年8月28日 没有评论

最近发现电脑什么事都没有干,但是无线网络的指示灯有时候会不停的闪动,说明有网络数据传输,通过任务管理器发现了一个比较奇怪的进程,就是PPAP.exe,google一把,原来是pplive的网络加速器,它就是传输数据的元凶。只要使用过pplive,PPAP.exe会一直留在后台,哪怕是关闭了pplive。由于PPAP.exe后台偷偷的传输数据,可能会影响到正常的上网。网上搜索了一下,也没有发现很好解决方法,决定自己动手,丰衣足食,写了一个干掉PPAP.exe进程批处理文件,就放在桌面上,有事没事双击它一下。批处理的内容很简单,就是使用taskkill 命令来干掉指定的进程,如下:

taskkill /F /IM PPAP.exe /T

建立批处理的步骤是,先在桌面上建立一个空白的文本文件,把上面的内容复制粘贴到该文件中,保存退出,然后重命名刚才的文本文件,例如叫“kill_ppap.bat”,双击该文件就可以干掉那该死的流氓进程了。注意:如果双击是记事本打开的,原因就是刚才重命名并没有更改掉文件的扩展名,你可能需要修改一下文件的显示状态,打开任意一个文件夹,然后找到菜单栏里的工具–>文件夹选项–>查看–>高级设置,找到隐藏已知文件类型的扩展名,把其前面的勾去掉,然后确定即可,这个时候你应该看到刚才的文件全名是kill_ppap.bat.txt,去掉后面的.txt即可。

下载地址:kaill-ppap

分类: 其它 标签: , ,

无觅相关文章插件,快速提升流量