hao32的个人日志

针对中小型网站的服务器架构(一)

本文涉及的服务器构架主要针对3000人左右/15分钟(保守)的中小型网站, 多见于discuz!论坛构建的社区等等

环境为linux(内核2.6+), nginx, php(fastcgi), mysql 等高效开源软件构成, 成本低廉, 是普通个人站长朋友的首选,

但是针对部分企业, 这个方案也是一个非常不错的选择!

至于nginx和apache等web服务器的性能比较这里就不多说了

本文是以实例的方式来描述安装以及配置等情况, 供各位参考

1. 硬件环境

一台web服务器, 一台db服务器, 没有raid

web服务器 至强双核1.60GHz, 2G, 73GSCSI*2

db服务器 至强双核1.60GHz, 2G, 73GSCSI*2

2. 系统环境

CentOS 5.x (内核2.6+)

简单的说下前期工作:安装系统尽可能的精简, 检查系统时间, dmesg看看有无错误, 关闭selinux,ipv6, 升级系统到最新yum -y update

安装如下web环境必要的软件包:

# yum install -y ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel kernel

3. 准备软件

nginx-0.6.31.tar.gz

pcre-7.3.tar.gz

php-5.2.6.tar.bz2

eaccelerator-0.9.5.3.tar.bz2

ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz

lighttpd-1.4.19.tar.bz2

libxml2-2.6.30.tar.gz

libmcrypt-2.5.8.tar.bz2

gd-2.0.34.tar.gz

mysql-5.0.51a-linux-i686-glibc23.tar.gz

以上软件都是目前最新最稳定的版本, 查找和下载以上软件或者更新版本

请在www.google.com输入: 软件全名 intitle:index

一般头几个都是可以下载的, 找个最快的就可以了

4.开始安装环境:

(1)安装gd库

# tar zxvf gd-2.0.34.tar.gz

# cd gd-2.0.34

# ./configure –prefix=/usr/local/gd2

# make

# make install

(2)安装LibXML2

# tar zxvf libxml2-2.6.30.tar.gz

# cd libxml2-2.6.30

# ./configure –prefix=/usr/local/libxml2

# make

# make install

(3)安装LibMcrypt

# cd /usr/local/src

# tar jxvf libmcrypt-2.5.8.tar.bz2

# cd libmcrypt-2.5.8

# ./configure –prefix=/usr/local/libmcrypt

# make

# make install

(4)解压mysql-5.0.51a-linux-i686-glibc23.tar.gz, 然后把解开的包里的lib和include目录转移到任意目录, 例如/usr/local/mysql

因为编译php5需要用到mysql的支持(–with-mysql)

# tar zxvf mysql-5.0.51a-linux-i686-glibc23.tar.gz

# cd mysql-5.0.51a-linux-i686-glibc23

# mkdir -p /user/local/mysql

# mv ./lib ./include /user/local/mysql/

(5)编译php(fastcfi模式)

# ./configure –prefix=/usr/local/php-fcgi –enable-fastcgi –enable-discard-path –enable-force-cgi-redirect –with-config-file-path=/usr/local/php-fcgi/etc –enable-zend-multibyte –with-mysql=/usr/local/mysql –with-libxml-dir=/usr/local/libxml2 –with-gd=/usr/local/gd2 –with-jpeg-dir –with-png-dir –with-bz2 –with-freetype-dir –with-iconv-dir –with-zlib-dir –with-mcrypt=/usr/local/libmcrypt –enable-sysvsem –enable-inline-optimization –enable-soap –enable-gd-native-ttf –enable-ftp –enable-mbstring –enable-exif –disable-debug –disable-ipv6

# make

# make install

# cp php.ini-dist /usr/local/php-fcgi/etc/php.ini

(6)安装ZendOptimizer

# tar zxvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz

# cd ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz

# ./install

基本上是一直回车, 值得注意一点的是:

当您看到要选择php的路径时就写:

/usr/local/php-fcgi/etc

看到Are you using Apache Web server?

这里要选NO

(7)安装eaccelerator

# tar jxvf eaccelerator-0.9.5.3.tar.bz2

# cd eaccelerator-0.9.5.3

# ./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php-fcgi/bin/php-config

# make

# make install

# mkdir /tmp/eaccelerator && chmod 777 /tmp/eaccelerator && touch /var/log/eaccelerator_log && mkdir /usr/local/php-fcgi/ext

# mv /usr/local/php-fcgi/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so /usr/local/php-fcgi/ext/

编辑php.ini

# vi /usr/local/php-fcgi/etc/php.ini

首先找到: extension_dir = “./”
修改成: extension_dir = “/usr/local/php-fcgi/ext/”

在最底部加上:

extension=eaccelerator.so
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/tmp/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.log_file = “/var/log/eaccelerator_log”
eaccelerator.filter=””
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″

3 评论

  1. 楼主弄个英文版吧,哈哈。

  2. 找资料的时候找到这里,留个脚印。

  3. That’s cool, just the Chinese character …

1 引用通告

  1. PHP下eAccelerator使用记录 – John Guo – 一名技术人员的博客

发表回复