LAMP的常用扩展安装

之前已经弄过许多篇关于LAMP搭建的东西,都是基于最简单包的,这次说说几个比较常用扩展的安装:

Memcache

说起Memcache,这年头稍微大点的网站几乎是必不可少的。内存Key-value一对一数据库,但数据易失。新浪的团队也有个项目是memcachedb,就是以速度为代价,部分数据回写硬盘。但似乎不是memcache的本意,个人觉得不如直接写sql,仁者见仁吧。

  • For Ubuntu
    apt-get install memcached php5-memcache
    /etc/init.d/memcached start
  • For FreeBSD
    cd /usr/ports/databases/memcached
    make install clean
    cd /usr/ports/databases/pecl-memcache
    make install clean
    echo”memcached_enable=YES” >> /etc/rc.conf
    /usr/local/etc/rc.d/memcached start

Redis

也是一个Key-value数据库,比起Memcache速度慢一点,但会回写硬盘,数据不丢失。处理Feed之类SQL吃上劲的应用必备。

  • For Ubuntu //11.04可行,8.04不行,官方似乎从904以后才加入的。之前的版本不妨用debian包
    apt-get install redis-server php-redis //同样的debian包下载
    /etc/init.d/redis-server start
  • For Freebsd
    cd /usr/ports/databases/redis
    make install clean
    echo ‘redis_enable=”YES”‘ >> /etc/rc.conf
    /usr/local/etc/rc.d/redis restart
    cd /usr/ports/databases/php5-redis
    make install clean //敲的条件反射了

说起redis的PHP支持类,由于redis是明文的传输,所以很多人会选择redisend这类基于socket连接方式的php类——说白了就是模拟telnet 6379。根据实际测试的结果,C扩展至少有40%以上的提升,而且内存更少,加包和拆包的过程更迅速。更何况redisend的前一个版本一堆问题,后一个版本又是php5.3 only的天上一脚,地上一脚的维护也是麻烦。不是万不得已还是少用为妙。

PHP-FPM

这个是给Nginx做fastcgi扩展的,相比php-cgi, spawn-cgi不但性能上有提升,配置上也灵活的多,但FreeBSD不支持,Ubuntu也不官方推荐。这里使用了ubuntu的非官方库。

echo “deb http://php53.dotdeb.org stable all” >> /etc/apt/sources.list
apt-get update; apt-get upgrade
apt-get install php5-fpm

会直接覆盖之前官方支持的PHP包,请慎重考虑。

/etc/init.d/php5-fpm start

PHP-GD

最常见的缺失,但很容易。

  • For Ubuntu
    apt-get install php5-gd
  • For FreeBSD
    cd /usr/ports/graphics/php5-gd
    make install clean

Minify

Minify是一个基于PHP5的CSS/JS优化包,其实这不属于Php的扩展。

  1. http://code.google.com/p/minify/ 下载最新的minify,解压后,将min目录拷贝至网站根目录下。
  2. 确认是否开启了apache 的mod_rewrite,Ubuntu默认不开启,需要a2enmod,选择rewrite后,/etc/init.d/apache2 restart 重起apache
  3. 网站根目录下编辑.htaccess内容如下:
    RewriteEngine On
            RewriteBase /
             RewriteRule ^(.*\.(css|js))\S?$ min/index.php?f=$1 [L]
  4. 如果系统已经安装了memcache包,不妨用MC替代文件方式存储优化后的信息,编辑min/config.php,末尾添加
    require 'lib/Minify/Cache/Memcache.php';
    $memcache = new Memcache;
    $memcache->connect('localhost', 11211); //根据本地配置调整
    $min_cachePath = new Minify_Cache_Memcache($memcache);

TokyoTyrant (ttServer)

TykyoTyrant想必web game, social game的公司用的很多,大概是由于某家企鹅公司的框架所限吧。这东西就是一个“支持lua扩展并可持续化”的key-value。个人觉得完全可以通过memcache + redis两者取代。

  • for Ubuntu (natty ok, hardy not support)
    apt-get install tokyotyrant
    /etc/init.d/tokyotyrant 52~53行稍作修改:
    52 #SERVERHOST=”$RUNDIR/$NAME.sock”
    53 SERVERPORT=1978
    即可通过/etc/init.d/tokyotyrant start命令启动1978端口的监听
  • for Freebsd
    cd /usr/ports/databases/tokyotyrant/
    make install clean
tokyotyrant有自己的php模块,但习惯上都是通过memcache模块进行操作的,命令等价于memcahce的操作。

 

推荐阅读:
自从Centos7/Redha
之前我们通过几个概念简单的介绍
自打从硬件方向研究性能优化起,
事出一个朋友问题:通过Dock

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请补全下列算式: *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据