[配置笔记]Ubuntu + nginx + MySQL + PHP

本来想写个How-To的,但是突然觉得自己没有功力教会别人,所以就不做标题党了。配置笔记,基本上是记录给自己看得,能够给别人有所帮助就更好了~

最近不断的看到有关 nginx 的消息,基本上都是正面的,看起来性能非常好。对于性能好的东西,我通常有一种莫名的恐惧,因为这些高级货一是要用到好的硬件上,二是配置复杂,如果还有三的话,那就是我通常不需要这么高的性能。然而这次稍稍看多了些 nginx 的介绍,其实它还是轻量级的,出道也不久,却能够被不少网站重用。俄罗斯人写的程序,作者自称英文较差,不过文档却也有了多国语言版,看来这东西真是受世界各国人民的喜爱啊~

晚上不想玩WoW,就装了个虚拟机,搞了 nginx 玩玩,记录如下。

配置表

  • OS: Ubuntu Linux 8.10 Server
  • Web Server: nginx 0.6.33
  • Database Server: MySQL (apt源里的版本)
  • PHP: php-cgi (apt源里的版本)

装系统,不用多说。我是装在虚拟机里的,刚开始用的VirtualBox,不过装好后出现了问题。因为Ubuntu Server的默认内核把PAE编译进去了,但是VirtualBox并不支持虚拟CPU的PAE功能,于是装好后不能启动。网上有关解决方案是修复模式下装其他内核,我发现这样又遇到更多问题……于是放弃。改用VMWare,一切安好。

Ubuntu基本上就用默认安装了,在选要什么Package的时候,除了OpenSSH Server,其他可以都不用选。真要选LAMP也行,不过到时候还是要把Apache给关掉~

系统装好后,老习惯

sudo apt-get update
sudo apt-get upgrade

Ubuntu 8.10 发布没多久,不需要下多少更新,几分钟搞定。
然后准备下载编译 nginx ,不过在此之前我们要把编译环境设好。

sudo apt-get install build-essential libpcre3-dev libssl-dev

最短命令就这样了,会自动加上一堆dependency的,都按y就行了。

之后是下载编译,nginx 似乎已经出到 0.7.x 了,不过这是第一次弄,我还是选择了stable的 0.6.33

wget http://sysoev.ru/nginx/nginx-0.6.33.tar.gz
tar zxvf nginx-0.6.33.tar.gz
cd nginx-0.6.33
./configure --sbin-path=/usr/local/sbin --with-http_ssl_module
make
sudo make install

至此 nginx 安装完毕。如果现在运行 nginx 的话,应该可以看到简陋的欢迎页面了,不过先不急,搞定别的先~

安装 PHP,

sudo apt-get install php5-cgi

因为在 nginx 上 PHP 必须以 FastCGI 的方式运行,所以就直接装这个包了。但是 nginx 有没有自己运行 CGI 的机制,所以还需要用到 spawn-fcgi 这个小程序。这是 lighttpd 里面带的,不过为了它我们并不需要装整个 lighttpd,自己编译一个 lighttpd 然后取出这个程序单独用就好了~

wget http://www.lighttpd.net/download/lighttpd-1.4.20.tar.gz
tar zxvf lighttpd-1.4.20
./configure
make
sudo cp src/spawn-fcgi /usr/local/bin/spawn-fcgi

[明天继续update…]

我在公司的另一项任务中也用到了 nginx, 或许之后会另写文章记录配置过程。

Reference