Archive for the ‘探索频道’ Category

备忘:在Slicehost VPS上安装Nginx+Fastcgi+eAccelerator+Zend Optimizer

Sunday, January 27th, 2008

使用Slicehost的VPS(256M Slice)有一个月了,但相对国外的共享虚拟主机(比如我此前所用的Dreamhost)并没有感觉到速度上的优势,除了Wordpress本身性能较差外,恐怕与我并未对VPS做性能优化有关,因为Slicehost的VPS主机给了用户完全的操作权限,这意味着你可以随心所欲地安装软件、更改设置,但同时你也不再享有服务商事先做好各种的系统优化,比如安装Zend Optimizer--现在这些事情必须由你自己来完成。所以,作为一个半吊子Linux用户,我只好借助Google边查边干,所幸,整个过程还算顺利,目前在我的VPS上安装了Nginx、Fastcgi、eAccelerator和Zend Optimizer,Nginx+Fastcgi用以替换Apache,Zend Optimizer用来加速PHP性能,eAccelerator则利用缓存提高站点性能,经过这番优化,网站速度的确比以前大有改观,此文是整个安装过程的备忘,由于我选用的Linux发行版为Debian ETCH,所以在其他Linux上可能会有些不同,应酌情调整。

在安装Nginx之前,先装好Fastcgi:

Nginx是俄罗斯出品的一款Web服务器软件,相比Apache更加小巧,占用资源更少,速度更快,在我这台只有256M内存的VPS上,显然Nginx更适合.

  • 安装fastcgi
  • sudo apt-get install php5-cgi libfcgi0c2

  • 下载Fastcgi的执行脚本:
  • cd /etc/init.d/
    sudo wget -O php-fastcgi http://techpush.com/wp-content/uploads/php-fastcgiinit.txt #php-fastcgi也可改为其他名字

  • 给php-fastcgi加上执行权限
  • sudo chmod +x php-fastcgi

  • 下载fastcgi的配置文件:
  • cd /etc/default/
    sudo wget -O php-fastcgi http://techpush.com/wp-content/uploads/php-fastcgidefault.txt

  • 将php-fastcgi这个执行脚本添加的系统的启动服务中:
  • sudo update-rc.d php-fastcgi defaults 19 21

  • 现在尝试启动fastcgi:
  • sudo invoke-rc.d php-fastcgi start(或者sudo /etc/init.d/php-fastcgi start)

  • 正常情况下,fastcgi应该成功启动了,可以用ps -aux查看是否有php-cgi进程,如果你更改了php.ini,必须重启fastcgi。
  • 注意: 最好将php.ini中的memory_limit调大,否则可能会遇到内存不够的情况。

安装Nginx:

Debian或者Ubuntu的源中有nginx,但版本比较老了,所以还是从官方网站上下载最新版本安装,当然这需要编译才行

  • 安装编译nginx所需的依赖环境:
  • sudo apt-get install zlib1g-dev libpcre3-dev libssl-dev libgcrypt11-dev

  • 下载最新版本的nginx(当前最新稳定版为0.5.35):
  • cd ~/src
    wget -c http://sysoev.ru/nginx/nginx-0.5.35.tar.gz

  • 编译安装:
  • tar zxvf nginx-0.5.35.tar.gz
    ./configure –sbin-path=/usr/sbin/nginx –conf-path=/etc/nginx/nginx.conf –pid-path=/var/run/nginx.pid –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –user=www-data –group=www-data –with-http_ssl_module –with-http_stub_status_module –with-http_realip_module –with-http_addition_module –with-http_sub_module –with-http_dav_module –with-http_flv_module –http-client-body-temp-path=/var/cache/nginx/client_body_temp –http-proxy-temp-path=/var/cache/nginx/proxy_temp –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp –with-sha1=/usr/lib #此处的各项配置可根据你自己的实际需要来确定
    make
    sudo make install
    sudo mkdir /var/cache/nginx
    sudo chown www-data:www-data /var/cache/nginx

  • 安装nginx的执行脚本:
  • cd /etc/init.d/
    sudo wget -O nginx http://techpush.com/wp-content/uploads/nginxinit.txt
    sudo chmod +x nginx
    sudo update-rc.d nginx defaults

  • 使nginx支持fastcgi:
  • cd /etc/nginx
    sudo wget -O fastcgi_params http://techpush.com/wp-content/uploads/fastcgi_params.txt

  • 修改nginx的配置:
  • 如果你是严格按照上述流程操作的,那么nginx的配置文件应该在/etc/nginx/目录下,使用一个文本编辑器编辑nginx.conf
    sudo vi nginx.conf
    具体的配置方法可以参考官方wiki,或者我的配置示例文件
    这里需要做说明的有两点:
    虚拟主机的配置:

    server {

    listen 80;
    server_name www.domain1.com;
    rewrite ^/(.*) http://domain1.com permanent;

    }

    server {

    listen 80;
    server_name domain1.com;

    access_log /home/demo/public_html/domain1.com/logs/access.log;
    error_log /home/demo/public_html/domain1.com/logs/error.log;

    location / {

    root /home/demo/public_html/domain1.com/public/;
    index index.html index.php;

    }

    }

    由于nginx不支持apache的rewrite规则(.htaccess),因此对于Wordpress用户,如果想使用简洁的永久链接格式,需要在虚拟主机配置段中加入如下语句:

    location / {
    index index.php index.html;
    if (!-e $request_filename) {
    rewrite ^/(.+)$ /blog/index.php?q=$1 last;
    }
    }

  • 配置完毕后,启动nginx
  • sudo invoke-rc.d nginx start

    下次更改nginx的配置,可以不用重启nginx而使配置生效(这点比apache强):

    sudo kill -HUP `cat /var/run/nginx.pid`

安装Zend Optimizer

安装Zend Optimizer最为简单,到Zend官方网站下载相应CPU的版本,解压后运行./install.sh(如果你是通过远程终端安装,则运行./install-tty)按照屏幕提示操作即可,注意php.ini文件的位置在/etc/php5/cgi/目录中。

安装eAccelerator

http://bart.eaccelerator.net/source/获取源代码,最新版本为0.9.5.2

    编译eAccelerator需要autoconf,automake,没有的话自己先安装一下

  • 编译安装:
  • phpize
    ./configure
    make
    sudo make install

  • 完成后,手动编辑php.ini文件,在最后加上如下语句:
  • zend_extension=”/usr/lib/php5/20060613/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.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″

    注意eaccelerator.so文件的位置要写对,另外要建立eaccelerator目录:

    sudo mkdir /tmp/eaccelerator
    sudo chmod 0777 /tmp/eaccelerator

  • 重启fastcgi:
  • sudo invoke-rc.d php-fastcgi restart

  • 对于wordpress用户,可以开启wordpress自己的cache功能提高性能:
  • 编辑wp-config.php,加上一句:

    // Enable the WordPress Object Cache:
    define(ENABLE_CACHE, true);

    在wp-content目录下建立cache文件夹并赋予777权限

    mkdir ./wp-content/cache
    chmod 0777 ./wp-content/cache

至此大功告成!

本文参考了:
nginx + PHP + FastCGI:轻型网页伺服器« 豆腐!
eAccelerator的安装和性能比较
wordpress在nginx下的rewrite设置

在Firefox侧边栏打开Google Calendar

Tuesday, January 22nd, 2008

最近打算好好利用一下Google Calendar来安排自己的生活和工作,但它毕竟是在线服务,在访问上要麻烦些,有两种办法可以更快捷地管理自己的Calendar,一种是利用Mozilla推出的Prism服务,为Google Calendar建立一个桌面版,具体操作请参考Mozilla的说明;另一种方法是在Firefox的侧边栏直接管理Calendar,操作步骤如下:

  1. 添加这个链接到收藏夹:Google Calendar Sidebar
  2. 到收藏夹,右键点击刚才加入的链接,选择”Properties”
  3. 在弹出窗口中选中”Load this bookmark in sidebar”,确定
  4. 点击该链接即可在侧边栏载入Google Calendar,现在使用你的帐号登录进行管理吧

screenshot5.png

KDE4会自动更改.fonts.conf

Wednesday, January 16th, 2008

昨天尝鲜,在我的Ubuntu上安装了刚发布不久的KDE4,安装过程很顺利,登录时在会话中选择KDE4即可进入全新的KDE4桌面环境,但我发现它并没有此前各种媒体宣传的那么好,转了一圈后退出,回到Gnome,这时问题出现了,所有的字体显示时变得非常模糊(我使用雅黑字体美化),显然这与KDE4有关,立即检查主目录下的字体配置文件.fonts.conf,看到最后多出了几行配置,这大概就是KDE4自作主张添加的东西,删除之,重新登录,字体恢复正常!

KDE4自行添加的字体配置

<match target=”font” >
  <edit mode=”assign” name=”rgba” >
   <const>none</const>
  </edit>
 </match>
 <match target=”font” >
  <edit mode=”assign” name=”hinting” >
   <bool>true</bool>
  </edit>
 </match>
 <match target=”font” >
  <edit mode=”assign” name=”hintstyle” >
   <const>hintmedium</const>
  </edit>
 </match>
 <match target=”font” >
  <edit mode=”assign” name=”antialias” >
   <bool>true</bool>
  </edit>
 </match>

强悍!10秒打领带妙法!

Tuesday, December 4th, 2007

什么事就怕琢磨,看看下面这哥们是如何做到仅用10秒钟就打好领带的,真是生活的智慧无处不在啊!



Fastest Way To Tie A Tie - A New Genus Record - video powered by Metacafe

via: Lifehacker

更换了域名

Friday, September 21st, 2007

将原来的blog.techpush.com更换到了techpush.com(目的是简化域名,以后可以直接用techpush.com来访问了),并将原域名重定向到新域名,整个过程很简单:

  1. 拷贝blog.techpush.com中的所有文件到techpush.com
  2. 修改wp-config.php文件,新增两行:
    • define(’WP_HOME’, ‘http://techpush.com’);
    • define(’WP_SITEURL’, ‘http://techpush.com’);

    这是Wordpress 2.0以后版本新增加的参数,方便域名链接的变动,这样就无须改动数据库的相关字段了

  3. 在WP管理选项中将permalink更新一下(生成站点根目录下的.htaccess文件)
  4. 利用Dreamhost提供的域名编辑功能将原blog.techpush.com域名重定向到techpush.com

大功告成!目前还未发现什么问题。

这段时间一直在琢磨论文,等这个工作完成后可能会对这个站点做一次比较大的调整,包括WP、主题、分类等可能都将更换,任务艰巨 :mrgreen:

逐渐迁移到Ubuntu

Tuesday, August 28th, 2007

今天尝试着换了一个Adsl同步文件,没想到居然拨号成功,哈哈,这下在家也可以用Ubuntu上网了 :mrgreen:

今天大部分时间都在Ubuntu下安装、调试软件和界面,大部分工作已经完成,我可能会逐渐将工作平台转移到Linux下面,比较遗憾的有两点:

  • 中文显示还是太差。这个是Linux的老毛病了,各个发行版都不好,今天试了多种美化方案,结果都不能令人满意,Linux在这方面还要加强啊!
  • 没有找到能取代PcAnywhere的软件,我是指可以在Linux下面控制安装了PcAnyWhere Host的软件,因为我管理的几台NT服务器都使用PcAnywhere作远程控制,最新版的PcAnyWhere据说支持Linux,可是我没找到下载 :sad:

还有一些小地方不太令人满意,比如缺少强悍的拼音输入法,Open Office也比不上MS Office,另外我发现Firefox for Linux没有For windows版本稳定,有些出人意料,不过这些还是可以忍受的。

PS:此文即在Ubuntu中完成,截图也是用其中的F-Spot软件编辑并上传到Picasa WebAlbum。

升级笔记本硬盘及安装Ubuntu

Saturday, August 25th, 2007

我去年买的Dell D620笔记本只配了60G硬盘,到现在明显感到力不从心了,家里的三块40G硬盘也基本都被装满,还有一堆东西放在服务器上没下载回来,近日又特别想装个Ubuntu玩玩儿,怎么办?唯有换个大硬盘了。

周五趁着午饭时间到公司附近的百脑汇电脑城买硬盘,上下转了转,居然日立的160G串口笔记本硬盘(Travelstar 5k160家族,5400rpm,8M缓存,垂直记录)只一家有货,但其他如三星、西部数据,我又不感兴趣,明知道会被宰一刀,还是禁不住内心的冲动,就在这家买了——–740大洋,同时又买了一个串口笔记本硬盘盒,以便换下来的旧硬盘还能继续使用。

换硬盘的过程总体而言比较顺利(Dell的笔记本大概是最好拆的了 :mrgreen: ),只是在复制系统时有些小挫折,因为我不想从新安装系统(装软件和打补丁太麻烦,我那些Adobe CS3、Office 2007,怕是要搞一个晚上),所以先是采用了Ghost恢复映像的方法,没料到恢复后竟然无法从硬盘启动,换回旧硬盘上网查找解决方法,发现了两种可能:一是先全新安装一次系统,然后再Ghost回去,理由是新硬盘没有写入引导信息,所以需要这么来一下;二是使用Acronis True Image这个软件制作系统映像和复原,它能够包含全部信息(包括引导信息),而且可在Windows下操作,最终决定使用第二种方法。True Image的操作比较简单,感兴趣的朋友可以看看这个台湾哥们写的指南,里面有几点需要注意的,务必仔细阅读,特别是他说复原时要把系统分区设为Active,这让我想到之前Ghost后未成功启动是否与此有关,不过我不想从头再试一次了 :roll: 。True Image后,将新硬盘装好,启动电脑,OK,这次终于成功进入Windows了!至此,硬盘升级宣告完成。

接下来是安装Ubuntu,我没有刻盘,所以选择了硬盘安装,方法请参考这篇文章,我个人的体会是这个方法简单、速度快,也比较安全,安装中的其他问题,比如分区基本操作等,请参考Nicky的文章,他是个Ubuntu专家。同其他Linux版本一样,最头疼的还是硬件驱动问题,Dell本身的硬件倒都正常驱动了,但我家里用的USB ADSL却令我颇费周折。这个ADSL用的是GlobeSpan的芯片,以前我装RedHat时就不能识别,现在Ubuntu也不行,必须另找驱动,在参考了eexpress的文章后,安装了eciadsl上的驱动,对配置参数尝试了多次,最后终于驱上了,然而拨号时却怎么也连接不上,log中记录Timeout waiting for PADO packetsUnable to complete PPPoE Discovery ,网上也没有好的解决办法,头疼头疼 :lol:

Blog文章的组织

Thursday, August 23rd, 2007

Wordpress为例(其他Blogging系统也大体类似),原生的Wordpress(即没有安装任何插件)有两种组织文章的方式,即按分类(Category)组织按时间组织,另一种十分流行的组织方式—-标签(Tags),在Wordpress 2.3之前需要借助UTW这个插件来建立(在即将发布的Wordpress 2.3中已经内置了对Tagging系统的支持)。分类时间标签是如今绝大多数Blog必不可少的三大组织形式。

在一些系统中,分类和标签是可以不区分的,比如Drupal,所以有不少人觉得完全可以用标签来取代分类,我个人则认为分类有其存在的价值。分类标示某一类文章共同的属性,所以一个分类总是对应多篇文章;标签则标示文章中的关键点,一篇文章可能对应多个标签。相比之下,分类更加概括和简单,标签则更为具体和复杂,想一想,一个Blog可能不超过10个分类,但却很可能有100个以上的标签,即使你可以像UTW那样以颜色和字体大小区分标签的权重,我仍然认为对读者而言,分类作为一种简明直接的导航和文章组织形式是必要的。

除去三大基本组织形式,我认为还有几种形式可以作为很好的补充:

置顶

在Drupal中将某篇文章置顶很方便,但Wordpress没有这个功能,需要使用插件,如wp-sticky。对于需要发布公告之类的文章的人,置顶功能是必要的。

自我推荐(重要度或评分体系)

有时你可能很想像读者推荐自己得意的文章,目前有三种方式可以实现:

  • 手工操作。建立一个页面,将所有自荐文章的链接放进去,增删都需要手工编辑代码。
  • 分类。建立一个自荐分类,将自荐文章都归入此分类,然后在Blog合适的位置上输出该分类的文章列表。
  • 插件。Alex King有一个Articles插件可以帮助你选择并输出某些文章。

在我个人构想中,Blog文章也应该具备重要度(或评分体系),即使同样是推荐文章,也不大可能有相同的权重(或评分),但目前似乎尚没有插件或其他方法能够做到这一点,注意我说的是这种权重是由Blog作者赋予的,而不是读者的评分。

星标

我个人非常喜欢Google的星标体系(如Gmail和Greader),我认为用加减星标的方式组织文章相当方便和高效,当它用于前台,类似于自我推荐;用于后台,则方便查找和管理文章,目前没有插件能达到此效果。

如果你还想到了其他组织形式,欢迎补充 :wink:

顺便说说文章流行度的问题,找出最流行/最热门的文章通常有三种评判方式,都需要插件来完成:

  • 根据页面观看次数,代表插件是WP-Postviews
  • 根据用户评分,代表插件是WP-Postratings
  • 根据页面观看次数、评论数目、Pingback/Trackback次数等综合评判,代表插件是Popularity Contest,你还可以在后台自行设置评判标准的权重

这三种方式的侧重点各不相同,你可以根据自己的需要来选择,我个人觉得Popularity Contest更为全面和科学一些。

PS:说到自荐文章的组织,小土豆刚写了一篇关于如果处理自己最佳文章的帖子,内容相当详细,推荐一读!

用Podcast练习英语听力

Monday, August 20th, 2007

近日在网上翻找练习英语听力资料,找来找去都不太满意,不是下载起来太麻烦就是资料过于陈旧,其实最好的方法是每天收听BBC、CNN或者VOA的广播,可惜在中国都不大容易办到,虽然努努力在网上也能找到支持这些广播的网址,但通常都不稳定(随时面临被封的危险)而且无法反复收听,这时想到了Podcast(即播客),我以前一直在听一个老外的英语教学播客,播客在美国已经比较普及了,想必BBC这些著名媒体也会有自己播客吧?寻找和订阅Podcast最方便的当然是Apple的Itunes了,打开Itunes Store(Apple的在线音乐商店),找到Podcasts分类,嘿,果然看到了BBC、ABC、CNN、CNBC等大媒体的名字,虽然无法做到像电视或广播那样的实时性,但内容也非常丰富,而且都是免费的,你可以挑选自己喜欢的内容订阅,这些音频或视频节目就会被推送到你的Itunes上,你即可下载收听或收看,关键是这些都能够反复播放,你甚至能将对应的mp3文件放在自己的mp3播放器里随时收听,练习英语听力再好不过了 :mrgreen:


对Podcast的完美支持是Itunes对我而言最大的价值


Itunes Store上的Podcasts专栏,除了专业媒体外,还有很多个人播客,内容涉及各个方面


BBC的Podcast页面,栏目非常多,选择你感兴趣的订阅吧


重点推荐BBC的NewsPod,非常好的新闻访谈栏目,在Itunes上也是用户评价最好的新闻Podcast之一

电子文档的简单管理

Wednesday, August 15th, 2007

我有几个G的电子书,除了用于收藏的大部头外,还有不少需要经常翻阅的参考资料,这些参考资料平时都按照其类别放在不同的文件夹中,但查看时就比较麻烦,需要到不同的文件夹去找,有的文件夹中文件很多,找起来也颇费力,于是我想了一个笨办法,这招其实是和Google学的—-无论是Gmail还是GReader,Google都允许用户给邮件或者文章打上星标以便于查找和提示,但Windows中却没有类似的可以给文件加星标的软件(你知道有这样的软件吗?),所以我在桌面上新建了一个名为Starred的文件夹(还将图标改成了星星 :mrgreen: ),将使用频次高的电子文档的快捷方式放到里面,并且注意随时添加和清理,这样就比较方便了!最后强烈呼吁用加星标和Tags的方式管理文件!