三、) 安装Apache、PHP、eAccelerator、php-memcache

三、) 安装Apache、PHP、eAccelerator、php-memcache
由于Apache 2下的php静态方式编译十分麻烦,因此在这里采用动态模块(DSO)方式。
1.) 安装Apache 2.2.3

[root@localhost]#./configure --prefix=/usr/local/server/apache --disable-userdir --disable-actions \
--disable-negotiation --disable-autoindex --disable-filter --disable-include --disable-status \
--disable-asis --disable-auth --disable-authn-default --disable-authn-file --disable-authz-groupfile \
--disable-authz-host --disable-authz-default --disable-authz-user --disable-userdir \
--enable-expires --enable-module=so

备注:在这里,取消了一些不必要的模块,如果你需要用到这些模块,那么请去掉部分参数。

2.) 安装PHP 5.2.0

[root@localhost]#./configure --prefix=/usr/local/server/php --with-mysql \
--with-apxs2=/usr/local/server/apache/bin/apxs --with-freetype-dir=/usr/ --with-png-dir=/usr/ \
--with-gd=/usr/ --with-jpeg-dir=/usr/ --with-zlib --enable-magic-quotes --with-iconv \
--without-sqlite --without-pdo-sqlite --with-pdo-mysql --disable-dom --disable-simplexml \
--enable-roxen-zts
[root@localhost]#make && make install

备注:如果不需要gd或者pdo等模块,请自行去掉。

3.) 安装eAccelerator-0.9.5

[root@localhost]#cd eAccelerator-0.9.5
[root@localhost]#export PHP_PREFIX=/usr/local/server/php
[root@localhost]#$PHP_PREFIX/bin/phpize
[root@localhost]#./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
[root@localhost]#make && make install

4.) 安装memcache模块

[root@localhost]#cd memcache-2.1.0
[root@localhost]#export PHP_PREFIX=/usr/local/server/php
[root@localhost]#$PHP_PREFIX/bin/phpize
[root@localhost]#./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
[root@localhost]#make && make install

5.) 修改 php.ini 配置
然后修改 php.ini,修改/加入类似以下内容:

extension_dir = "/usr/local/server/php/lib/"

extension="eaccelerator.so"
eaccelerator.shm_size="32"      ;设定eaccelerator的共享内存为32MB
eaccelerator.cache_dir="/usr/local/server/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter="*.php"
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.log_file = "/usr/local/server/apache/logs/eaccelerator_log"
eaccelerator.allowed_admin_path = "/usr/local/server/apache/htdocs/ea_admin"

extension="memcache.so"

在这里,最好是在apache的配置中增加默认文件类型的cache机制,即利用apache的expires模块,新增类似如下几行:

ExpiresActive On
ExpiresByType text/html "access plus 10 minutes"
ExpiresByType text/css "access plus 1 day"
ExpiresByType image/jpg "access 1 month"
ExpiresByType image/gif "access 1 month"
ExpiresByType image/jpg "access 1 month"
ExpiresByType application/x-shockwave-flash "access plus 3 day"

这么设置是由于我的这些静态文件通常很少更新,因此我选择的是"access"规则,如果更新相对比较频繁,可以改用"modification"规则;或者也可以用"access"规则,但是在文件更新的时候,执行一下"touch"命令,把文件的时间刷新一下即可。

技术相关: