Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2998831
  • 博文数量: 674
  • 博客积分: 17881
  • 博客等级: 上将
  • 技术积分: 4849
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-17 10:15
文章分类

全部博文(674)

文章存档

2013年(34)

2012年(146)

2011年(197)

2010年(297)

分类: LINUX

2010-07-19 22:16:20

Nginx (发音:"engine x") 是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过两年半了。Igor将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

本文将和大家一起在Ubuntu 9.04 Server上快速搭建支持Nginx、PHP 5、MySQL的最佳Web服务器。文中使用的一些基础配置信息如下:

  • hostname:server1.example.com
  • IP地址:192.168.0.100

实际应用中,改为自己的相应配置即可。

另外,文本使用的多数命令均需要root权限,所以,开始之前最好用 sudo su 命令进入root权限。否则,每个命令前要用sudo。

1. 安装MySQL 5.0

Ubuntu/Debain中安装MySQL是比较方便的,只需要下面的一条命令就OK了,
  1. aptitude install mysql-server mysql-client
复制代码
安装过程中,要输入MySQL的root用户密码,
New password for the MySQL "root" user: <-- yourrootsqlpassword
Repeat password for the MySQL "root" user: <-- yourrootsqlpassword


2. 安装Nginx

Nginx软件包在Ubuntu 9.04 软件包源中是有的,使用下面的命令安装它,
  1. aptitude install nginx
复制代码
使用Ubuntu软件包安装的Nginx默认已经加了管理脚本了,直接用下面的命令启动之,
  1. /etc/init.d/nginx start
复制代码
启动后,就可以在浏览器中测试一下nginx是否安装成功,本文中使用 这个地址,浏览器中可以看到如下的欢迎界面:


3. 安装PHP5

为了获得更好的性能,这里安装PHP5使用FastCGI模式,Ubuntu 9.04提供了FastCGI-enabled PHP5软件包,这样,所有安装都变得相当快捷。下面的命令安装了一组PHP5及PHP5相关模块的软件包,其中包括了FastCGI、php5-mysql、imagick、pear、加密相关模块等:
  1. aptitude install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
复制代码
安装完毕,打开 /etc/php5/cgi/php.ini 文件,在文件末尾加入 cgi.fix_pathinfo = 1

vi /etc/php5/cgi/php.ini
  1. ...
  2. cgi.fix_pathinfo = 1
复制代码
需要注意的一点,Ubuntu 9.04 中并没有FastCGI守护进程的软件包,这里,我们借用 lighttpd 的spawn-fcgi程序。

首先,安装lighttpd服务器,
  1. aptitude install lighttpd
复制代码
安装时会出现下面的错误信息:
Starting web server: lighttpd 2009-04-30 15:51:50: (network.c.300) can't bind to port: 80 Address already in use failed!


这是因为nginx启动后占用了80端口,不用管它,因为本来就不打算启动lighttpd的,下面把lighttpd从开机启动列表中删除:
  1. update-rc.d -f lighttpd remove
复制代码
之所以安装lighttpd,是因为我们需要其带的spawn-fcgi这个程序,这一点要清楚。可以使用 spawn-fcgi --help 查看更详细的信息。

下面的命令将启动一个监听9000端口、启动用户和组为www-data的PHP FastCGI守护进程:
  1. /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
复制代码
当然,我们不可能每次启动都要输入那么长的命令,正确的做法是把该命令加入 /etc/rc.local 脚本中

vi /etc/rc.local
  1. /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
复制代码
4. 配置 nginx

nginx服务器的配置文件位于 /etc/nginx/nginx.conf,使用编辑器打开它
  1. vi /etc/nginx/nginx.conf
复制代码
nginx的配置比较简单,而且易于理解,可以参考下面两个链接加以配置:


  • 2

首先,修改下面两个参数,
  1. ...
  2. worker_processes 5;
  3. keepalive_timeout  2;
  4. ...
复制代码
默认的vhost配置文件位于 /etc/nginx/sites-available/default ,修改 /etc/nginx/sites-available/default:
  1. server {
  2.       listen   80;
  3.       server_name  _;

  4.       access_log  /var/log/nginx/localhost.access.log;

  5.       location / {
  6.               root   /var/www/nginx-default;
  7.               index  index.php index.html index.htm;
  8.       }

  9.       location /doc {
  10.               root   /usr/share;
  11.               autoindex on;
  12.               allow 127.0.0.1;
  13.               deny all;
  14.       }

  15.       location /images {
  16.               root   /usr/share;
  17.               autoindex on;
  18.       }

  19.       #error_page  404  /404.html;

  20.       # redirect server error pages to the static page /50x.html
  21.       #
  22.       error_page   500 502 503 504  /50x.html;
  23.       location = /50x.html {
  24.               root   /var/www/nginx-default;
  25.       }

  26.       # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  27.       #
  28.       #location ~ \.php$ {
  29.               #proxy_pass   
  30.       #}

  31.       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  32.       #
  33.       location ~ \.php$ {
  34.               fastcgi_pass   127.0.0.1:9000;
  35.               fastcgi_index  index.php;
  36.               fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
  37.               include               fastcgi_params;
  38.       }

  39.       # deny access to .htaccess files, if Apache's document root
  40.       # concurs with nginx's one
  41.       #
  42.       location ~ /\.ht {
  43.               deny  all;
  44.       }
  45. }
复制代码
保存并退出后,重启nginx:
  1. /etc/init.d/nginx restart
复制代码
在文档根目录(document root)中新建一个测试PHP文件:

vi /var/www/nginx-default/info.php
  1. phpinfo();
  2. ?>
复制代码
在浏览器中使用 地址测试,这里列出了所有PHP及web服务器的相关信息。确保PHP5、FastCGI、MySQL等都正常工作:

阅读(918) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~