Apache 2.0在性能上的改善最吸引人。在支持POSIX线程的Unix系统上,Apache可以通过不同的MPM运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能。相比于Apache 1.3,2.0版本做了大量的优化来提升处理能力和可伸缩性,并且大多数改进在默认状态下即可生效。但是在编译和运行时刻,2.0也有许多可以显著提高性能的选择。本文不想叙述那些以功能换取速度的指令,如HostnameLookups等,而只是说明在2.0中影响性能的最核心特性:MPM(Multi -Processing Modules,多道处理模块)的基本工作原理和配置指令。
毫不夸张地说,MPM的引入是Apache 2.0最重要的变化。大家知道,Apache是基于模块化的设计,而Apache 2.0更扩展了模块化设计到Web服务器的最基本功能。服务器装载了一种多道处理模块,负责绑定本机网络端口、接受请求,并调度子进程来处理请求。扩展模块化设计有两个重要好处:
◆ Apache可以更简洁、有效地支持多种操作系统;
◆ 服务器可以按站点的特殊需要进行自定制。
在用户级,MPM看起来和其它Apache模块非常类似。主要区别是在任意时刻只能有一种MPM被装载到服务器中。
毫不夸张地说,MPM的引入是Apache 2.0最重要的变化。大家知道,Apache是基于模块化的设计,而Apache 2.0更扩展了模块化设计到Web服务器的最基本功能。服务器装载了一种多道处理模块,负责绑定本机网络端口、接受请求,并调度子进程来处理请求。扩展模块化设计有两个重要好处:
◆ Apache可以更简洁、有效地支持多种操作系统;
◆ 服务器可以按站点的特殊需要进行自定制。
在用户级,MPM看起来和其它Apache模块非常类似。主要区别是在任意时刻只能有一种MPM被装载到服务器中。
Web服务器软件安装顺序:Mysql -->Apache(httpd) --> PHP
Apache下载地址:http://www.apache.org/dist/httpd/
解压后进入解压目录,执行:
./configure --prefix=/home/apache --enable-so --with-mysql=/home/mysql --enable-track-vars --enable-mods-shared=all --enable-cache --enable-disk-cache --enable-mem-cache --enable-rewrite --with-mpm=worker
make
make install
至此,Apache主程序安装完毕!Apache的主程序会被安装在/home/apache/ 下安装完毕后,Apache并不会关机后自动启动,需要手工进行一些设置:
先将apachectl这个文件复制到/etc/init.d下,并更名为httpd
cp /home/apache/bin/apachectl /etc/init.d/httpd
然后编辑此文件,kate /etc/init.d/httpd
Apache下载地址:http://www.apache.org/dist/httpd/
解压后进入解压目录,执行:
./configure --prefix=/home/apache --enable-so --with-mysql=/home/mysql --enable-track-vars --enable-mods-shared=all --enable-cache --enable-disk-cache --enable-mem-cache --enable-rewrite --with-mpm=worker
make
make install
至此,Apache主程序安装完毕!Apache的主程序会被安装在/home/apache/ 下安装完毕后,Apache并不会关机后自动启动,需要手工进行一些设置:
先将apachectl这个文件复制到/etc/init.d下,并更名为httpd
cp /home/apache/bin/apachectl /etc/init.d/httpd
然后编辑此文件,kate /etc/init.d/httpd
XCache 是套華人所撰寫的 PHP opcode cacher,在速度上的表現真的是讓人驚豔的軟體,網路上應該可以看到不少對它的讚賞
其實早就知道這套軟體,但最終還是因為自己懶,所以一直都沒去安裝。最近心血來潮,才把它裝上去 主機的OS分別有 Windows 和 FreeBSD ,在這邊就先紀錄一下安裝的紀錄。
FreeBSD:
# cd /usr/ports/www/xcache ; make install cleanWindows:
這邊指得是複製到你 php 安裝的 extension 資料夾下。
複製 php_xcache.dll 到 c:php5ext 下 接著把 xcache.ini 的設定,複製到 php.ini 裡。
XCache 的設定:
[xcache-common]
;; 安裝成 zend extension (建議), 一般的格式 "$extension_dir/xcache.so"
;zend_extension = /usr/local/lib/php/extensions/\
;non-debug-non-zts-xxx/xcache.so
; zend_extension_ts = /usr/local/lib/php/extensions/\
;non-debug-zts-xxx/xcache.so
其實早就知道這套軟體,但最終還是因為自己懶,所以一直都沒去安裝。最近心血來潮,才把它裝上去 主機的OS分別有 Windows 和 FreeBSD ,在這邊就先紀錄一下安裝的紀錄。
FreeBSD:
# cd /usr/ports/www/xcache ; make install cleanWindows:
這邊指得是複製到你 php 安裝的 extension 資料夾下。
複製 php_xcache.dll 到 c:php5ext 下 接著把 xcache.ini 的設定,複製到 php.ini 裡。
XCache 的設定:
[xcache-common]
;; 安裝成 zend extension (建議), 一般的格式 "$extension_dir/xcache.so"
;zend_extension = /usr/local/lib/php/extensions/\
;non-debug-non-zts-xxx/xcache.so
; zend_extension_ts = /usr/local/lib/php/extensions/\
;non-debug-zts-xxx/xcache.so
如果你在Linux下用Apache Bench (ab)测试我这个网站的话,就会发现服务器不是常见的Apache, 而是 nginx.
nginx是一个小巧而高效的Linux下的web服务器软件。开发人员 Igor Sysoev 来自俄罗斯,nginx的话其实已经在一些俄罗斯的大型网站上运行多年,相当的稳定,最近才在美国开始知名起来。
而另外一个热门的web服务器软件是Lighttpd,因为运行在Youtube的后台,所以知名度很高。Lighttpd特色在于它能做Flash streaming和对fastcgi的支持,这样对于Ruby on Rails之类的程序提速不少,比起Apache要好很多。
但是 nginx 要比 Lighttpd 更稳定,功能上并不弱于Lighttpd,差不多什么都有,而且比Lighttpd对于URL rewrite的支持更完善一点。
不管是 nginx 还是 lighttpd, 对于用来提供静态文件都要比Apache好很多很多,主要就是占用的内存小,Apache和这两个小巧的服务器软件来比实在是个庞然大物啊。
测试报告::::::
主机环境:
电脑: PC, CPU: AMD 1800+, MEM: 728M, DISK: IDE 7200RPM 2M, 160G
系统: FreeBSD 6.1-RELEASE-p11
nginx是一个小巧而高效的Linux下的web服务器软件。开发人员 Igor Sysoev 来自俄罗斯,nginx的话其实已经在一些俄罗斯的大型网站上运行多年,相当的稳定,最近才在美国开始知名起来。
而另外一个热门的web服务器软件是Lighttpd,因为运行在Youtube的后台,所以知名度很高。Lighttpd特色在于它能做Flash streaming和对fastcgi的支持,这样对于Ruby on Rails之类的程序提速不少,比起Apache要好很多。
但是 nginx 要比 Lighttpd 更稳定,功能上并不弱于Lighttpd,差不多什么都有,而且比Lighttpd对于URL rewrite的支持更完善一点。
不管是 nginx 还是 lighttpd, 对于用来提供静态文件都要比Apache好很多很多,主要就是占用的内存小,Apache和这两个小巧的服务器软件来比实在是个庞然大物啊。
测试报告::::::
主机环境:
电脑: PC, CPU: AMD 1800+, MEM: 728M, DISK: IDE 7200RPM 2M, 160G
系统: FreeBSD 6.1-RELEASE-p11
导出要用到MySQL的mysqldump工具,基本用法是:
shell> mysqldump [OPTIONS] database [tables]
如果你不给定任何表,整个数据库将被导出。
通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。
注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。
mysqldump支持下列选项:
shell> mysqldump [OPTIONS] database [tables]
如果你不给定任何表,整个数据库将被导出。
通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。
注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。
mysqldump支持下列选项:
/usr/local/bin/php 丢失
很奇怪的问题.
找不到答案
感谢 青虫 的提醒
PHP 的命令行模式
由 cli 模块支持.可以将PHP文件当脚本直接执行...
赶忙选取模块,重新编译.OK...
基本功啊.
至于是不是因为没装CLI 模块,还是其他问题?
天知道.
很奇怪的问题.
找不到答案
感谢 青虫 的提醒
PHP 的命令行模式
由 cli 模块支持.可以将PHP文件当脚本直接执行...
赶忙选取模块,重新编译.OK...
基本功啊.
至于是不是因为没装CLI 模块,还是其他问题?
天知道.















