分类 服务器管理 下的文章

给PHP安装配置XCache3加速器

1.下载Xcache
wget http://xcache.lighttpd.net/pub/Releases/3.0.0/xcache-3.0.0.tar.gz
2.解压:
tar zxvf xcache-3.0.0.tar.gz
3.更改目录:
cd xcache-3.0.0
4.编译so:
/usr/local/php5/bin/phpize
5.安装:
./configure -with-php-config=/usr/local/php5/bin/php-config -enable-xcache --enable-xcache-optimizer make make install
6.修改php.ini文件:
vi /usr/local/etc/php5/cgi/php.ini
在文件末尾添加(记得把汉字替换为实际内容):
extension = "第5步编译后的xcache.so文件路径" xcache.admin.auth = On xcache.admin.user = "此处填写你设置的用户名" xcache.admin.pass = "此处填写你设置的密码的MD5值" xcache.size = 32M xcache.shm_scheme = "mmap" xcache.count = 4 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0 xcache.var_size = 16M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Off xcache.readonly_protection = Off xcache.mmap_path = "/dev/zero" xcache.coredump_directory = "" xcache.cacher = On xcache.stat = On xcache.optimizer = Off

7.复制htdocs到网站根目录下xcache文件夹:
mkdir /var/www/html/xcache cp -R htdocs/* /var/www/html/xcache cd /var/www/html/xcache cp config.example.php config.php chown -R webapps:webapps *
在config.php文件末尾添加(把下面的汉字替换为实际内容):
$_SERVER["PHP_AUTH_USER"] = "此处填写你想要的用户名"; $_SERVER["PHP_AUTH_PW"] = "此处填写你想要的密码原文";

打开浏览器访问http://IP/xcache,输入上面设置的帐号和密码进入Xcache的测试页面

PHP5.3下加速器ZendGuardLoader安装

由于Zend新产品ZendGuardLoader的面世,Zend Optimizer已经不支持php5.3了,官方给出的版本是ZendGuardLoader代替,ZendGuardLoader的安装还是和原版差不多的:

官方下载地址,需要登录 http://www.zend.com/products/guard/downloads

下面的版本是已经找出来的下载地址,能直接下载。

Windows 版本Zend Guard Loader下载
http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-Windows.zip

Linux 32位Zend Guard Loader 下载:
wget -c http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz

Linux 64位Zend Guard Loader 下载:
wget -c http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

解压源码包(注意如果是32位系统,记得把下面的x86_64替换成i386):

tar -zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz mv ZendGuardLoader-php-5.3-linux-glibc23-x86_64 ZendGuardLoader cd ZendGuardLoader/ mkdir -p /usr/local/zend/ cp php-5.3.x/ZendGuardLoader.so /usr/local/zend/

在php.ini文件最后面加上:

[Zend Guard Loader] zend_extension="/usr/local/zend/ZendGuardLoader.so" zend_loader.enable=1 zend_loader.disable_licensing=0 zend_loader.obfuscation_level_support=3 zend_loader.license_path=

#结束后重启apache

在phpinfo 里能看到

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies

出现 Zend Guard Loader v3.3 则说明安装成功。

linux下源码安装软件

在linux下的很多软件都是通过源码包方式发布的,这样做对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包,不同的最终用户经过编译就可以正确运行,这也是非常符合c语言的设计哲学的,一次编写,到处编译么,而常见的二进制包,比如rpm和deb,软件开发者必须为每种特定的平台定制好专门的软件包,这个通过rpm文件的后缀名就可以初见端倪,比如ppc,sparc,i386之类,在这里不做过多的陈述,其实源码安装软件远没有很多朋友想象的那么复杂,下面我在这里尽可能详细的做一些陈述,如有谬误,欢迎朋友们拍砖!

安装的具体步骤:
$ tar zxvf XXXX.tar.gz (or tar jxvf XXXX.tar.bz2)
$ cd XXXX
$ ./configure
$ make
# make install
复制代码
$ make clean
复制代码
安装完成后用来清理临时文件
# make uninstall
复制代码
用来卸载软件

解压:
最常见源码包的就两种(XXXX.tar.gz or XXXX.tar.bz2),其实这些源码包都是由2个工具压缩而成的,tar.gz结尾的文件用到的工具是tar和gunzip,而tar.bz2结尾的文件所使用的工具是tar和bzip2,之所以这样做是因为,tar仅仅能够打包多个文件但是没有压缩的功能,而gz和bz2却刚好相反,仅能够压缩单个文件,这样我们常见的源码包实际上是通过tar先将不同的源文件打包,然后再通过gunzip或者bzip2压缩后发布的,当然这两个步骤可以通过一条命令实现:
$ tar zcvf XXXX.tar.gz XXXX(or tar jcvf XXXX.tar.bz2 XXXX)
复制代码
解压的相关命令如下:
$ tar zxvf XXXX.tar.gz
$ tar jxvf XXXX.tar.bz2
复制代码

./configure:
解压完成就正式开始安装了(补充一点,开始configure之前,如有必要,请使用patch工具为源码打上相应的补丁),首先跳转到源码的解压目录,众所周知,开始configure前还是应该仔细阅读源码目录下的README或者INSTALL文件,好多安装中的注意事项在这里都有所罗列,configure实际上是一个脚本文件,在当前目录中键入"./configure",shell就会运行当前目录下的configure脚本,有一点必须说明,在整个configure过程,其实编译尚未进行,configure仅仅是做编译相关的准备工作,它主要对您当前的工作平台做一些依赖性检查,比如编译器是否安装,连接器是否存在,如果在检测的过程没有任何错误,你很幸运,configure脚本会在当前目录下生成下一步编译链接所要用到的另一个文件Makefile,当然configure支持及其丰富的命令行参数,可以键入"./configre --help"获取具体的信息,最常用的恐怕就是:
$ ./configure --prefix=/opt/XXX
复制代码
它用来设置软件的安装目录.

make:
如果configure过程正确完成,那么在源码目录,会生成相应的Makefile文件,Makefile文件简单来说包括的是一组文件依赖关系以及编译链接的相关步骤,事实上真正的编译链接工作也不是make所做的,make只是一个通用的工具,一般情况下,make会根据Makefile中的规则调用合适的编译器编译所有与当前软件相依赖的源码,生成所有相关的目标文件,最后再使用链接器生成最终的可执行程序:
$ make
复制代码

make install:
当上面两个步骤正确完成,代表着编译链接过程已经完全结束,最后要做的就是将可执行程序安装到正确的位置,在这个步骤,普通用户可能没有相关目录的操作权限,临时切换到root是一个不错的选择,"install"只是Makefile文件中的一个标号,"make install"代表着make工具执行Makefile文件中"install"标号下的所有相关操作,如果在configure阶段没有使用"--prefix=/opt/XXX"指定应用程序的安装目录,那么应用程序一般会被默认安装到/usr/local/bin,如果/usr/local/bin已经存在于您的PATH中,那么安装已经基本结束:
#make install
复制代码

make clean:
make uninstall:
这两个步骤只是安装的后续操作,有一点必须注意,"clean"和"uninstall"也是Makefile文件中相应的两个标号,执行这两个步骤的时候Makefile文件必要保留,"make clean"用来清除编译连接过程中的一些临时文件,"make uninstall"是卸载相关应用程序,与make install类似,make uninstall也需要切换到root执行,不过"uninstall"标号在好多Makefile中都被省略掉了,朋友们完全可以自己在相应的Makefile文件一探究竟.

Why?
在这里我尝试着解释一下上面这些步骤存在的理由,从C语言的角度来说,一个程序从源码到正确生成相关的可执行文件,下面这些部分必不可少:源文件,编译器,汇编器,连接器,依赖库,通过上面几个步骤,朋友们应该已经知道,真正执行编译链接操作的步骤只有一个(make),那其他步骤存在的理由何在?
有一点是肯定的,我在自己的电脑上使用C语言写一些自娱自乐的小程序,也没有用到"configure or make install"之类的命令,顶多自己写个Makefile管理源文件的依赖关系,可是软件开发者不同,他必须考虑到软件的可移植性,他开发的软件不能仅仅就在他自己的pc上跑吧?不同的平台可能连硬件体系结构都不同,这样就导致了Makefile的不可移植性,为了解决这个问题,开发者通常使用autoconf之类的工具生成相应的configure脚本,而configure脚本就是用来屏蔽相应的平台差异,从而正确生成Makefile文件,然后make再根据configure的劳动成果(Makefile)完成编译链接工作.
至于"install or clean or uninstall",也只是对应着Makefile文件中不同的规则,关于Makefile的详细信息,朋友们可以自行查阅相关的文档.

一个例子
下面是我在自己的pc机上源码安装tar工具的过程,权当做是上面这些步骤的一个具体事例吧:
[root@localhost ~]# head -n 1 /etc/issue
CentOS release 5.4 (Final)
[root@localhost ~]# uname -sr
Linux 2.6.18-164.el5
[root@localhost ~]# gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
Copyright (C) 2006 Free Software Foundation, Inc.
复制代码
这个是我的系统信息。
[root@localhost tools]# pwd
/root/tools
[root@localhost tools]# ls
tar-1.23.tar.bz2
[root@localhost tools]# tar jxvf tar-1.23.tar.bz2
......
[root@localhost tools]# ls
tar-1.23 tar-1.23.tar.bz2
[root@localhost tools]# cd tar-1.23
[root@localhost tar-1.23]# ls
ABOUT-NLS build-aux configure gnu Makefile.am po src
acinclude.m4 ChangeLog configure.ac INSTALL Makefile.in README tests
aclocal.m4 ChangeLog.1 COPYING lib Make.rules rmt THANKS
AUTHORS config.h.in doc m4 NEWS scripts TODO
复制代码
解压原文件包,可以发现其中包括了configure脚本和README文件。
[root@localhost tar-1.23]# mkdir -v ~/tar
mkdir: 已创建目录 “/root/tar”
[root@localhost tar-1.23]# ./configure --prefix=/root/tar
......
[root@localhost tar-1.23]# echo $?
0
复制代码
建立软件安装目录,并configure,检查configure返回结果,为0代表运行成功.
[root@localhost tar-1.23]# ls -F
ABOUT-NLS ChangeLog.1 configure.ac m4/ po/ tests/
acinclude.m4 config.h COPYING Makefile README THANKS
aclocal.m4 config.h.in doc/ Makefile.am rmt/ TODO
AUTHORS config.log gnu/ Makefile.in scripts/
build-aux/ config.status* INSTALL Make.rules src/
ChangeLog configure* lib/ NEWS stamp-h1
复制代码
可以看到Makefile文件已经被成功建立.
[root@localhost tar-1.23]# less Makefile | grep install:
|| { echo "ERROR: files left after uninstall:" ; \
install: install-recursive
uninstall: uninstall-recursive
复制代码
在建立的Makefile中存在install和uninstall标号
[root@localhost tar-1.23]#make
......
[root@localhost tar-1.23]#echo &?
0
复制代码
make成功
[root@localhost tar-1.23]#make install
......
[root@localhost tar-1.23]# ls /root/tar
bin libexec sbin share
[root@localhost tar]# cd /root/tar/bin
[root@localhost bin]# ls
tar
[root@localhost bin]# ./tar --help
......
[root@localhost tar-1.23]#echo &?
0
复制代码
安装并简单测试成功

转载自:http://www.cnblogs.com/huangfenghit/archive/2011/02/17/1957057.html

socat - linux上的转发利器

socat是一个netcat(nc)的替代产品,可以称得上nc++socat的特点就是在两个流之间建立一个双向的 通道。socat的地址类型很多,有ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,等等。看一个例子:

c:\>socat - tcp:192.168.1.18:80

这个命令等同于 nc 192.168.1.18 80。 socat里面,必须有两个流,所以第一个参数-代表标准的输入输出,第二个流连接到192.168.1.1880端口。再看一个反向telnet的例子:

on server:
c:\>socat tcp-listen:23 exec:cmd,pty,stderr

这个命名把cmd绑定到端口23,同时把cmdStderr重定向到stdout

on client:
c:\>socat readline tcp:server:23

连接到服务器的23端口,即可获得一个cmd shellreadlinegnu的命令行编辑器,具有历史功能。

再看文件传递的例子。nc也经常用来传递文件,但是nc有一个缺点,就是不知道文件什么时候传完了,一般要用Ctrl+c来终止,或者估计一个时间,用-w参数来让他自动终止。用socat就不用这么麻烦了:

on host 1:
c:\>socat -u open:myfile.exe,binary tcp-listen:999

on host 2:
c:\>socat -u tcp:host1:999 open:myfile.exe,create,binary

这个命令把文件myfile.exe用二进制的方式,从host 1 传到host 2-u 表示数据单向流动,从第一个参数到第二个参数,-U表示从第二个到第一个。文件传完了,自动退出。

再来一个大家喜欢用的例子。在一个NAT环境,如何从外部连接到内部的一个端口呢?只要能够在内部运行socat就可以了。

外部:
c:\>socat tcp-listen:1234 tcp-listen:3389

内部:
c:\>socat tcp:outerhost:1234 tcp:192.168.12.34:3389

这样,你外部机器上的3389就影射在内部网192.168.12.343389端口上。

socat还具有一个独特的读写分流功能,比如:

c:\>socat open:read.txt!!open:write.txt,create,append tcp-listen:80,reuseaddr,fork

这个命令实现一个假的web server,客户端连过来之后,就把read.txt里面的内容发过去,同时把客户的数据保存到write.txt里面。!!符号用户合并读写流,前面的用于读,后面的用于写。

 

下载地址:http://www.dest-unreach.org/socat/download/