[Linux] Ubuntu_9.04_server安装nginx+php(fastcgi)+nginx虚拟主机配置格式

由于apache 太吃内存所以转投nginx下 效果相当明显!

512M内存启动apache 还剩15M(此时还未安装php支持)。同样的情况改装Nginx 剩余320M即使开启fast-cgi也还能剩250M。小内存VPS的福音。

准备知识:

Ubuntu :

Ubuntu 是linux的一个版本,有非洲发布的,现在比较流行的一个版本。

参考百度说明Ubuntu

nginx  :

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

Nginx 的中文维基:http://wiki.codemongers.com/NginxChs  

Nginx 的中文站: http://www.nginx.cn

参考 百度百科解释NGINX

 

FastCGI:

个人初步感觉是CGI的先进产物,据说速度比CGI快五倍。

 

好了,现在来安装: 第一步,安装nginx

由于Ubuntu 904已经包含了nginx,所以根本不要编译,安装超简单!

修改/etc/apt/sources.list文件内容为国内镜像,然后运行:

apt-get update apt-get install nginx 即可完成安装

启动nginx:

/etc/init.d/nginx start 然后就可以访问了,http://localhost/ , 一切正常!如果不能访问,先不要继续,看看是什么原因,解决之后再继续。

下面配置php和mysql。

 

第二步,安装Php和mysql

安装php和MySQL:

apt-get install php5-cli php5-cgi mysql-server-5.0 php5-mysql

第三步,安装FastCgi和配置

我们需要/usr/bin/spawn-fcgi这个文件,而它是属于lighttpd这个包里面的,所以我们安装lighttpd然后把它设置为开机不启动:

apt-get install lighttpd #我们只要/usr/bin/spawn-fcgi apt-get install rcconf

rcconf #去掉lighttpd开机自启动 修改nginx的配置文件:/etc/nginx/sites-available/default 修改 server_name 184.82.12.188; 修改index的一行修改为: index index.php index.html index.htm;

去掉下面部分的注释: location ~ \.php$ { fastcgi_pass    127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; include /etc/nginx/fastcgi_params;

}

特别注意上面红色的字。

重新启动nginx: /etc/init.d/nginx stop /etc/init.d/nginx start 启动fastcgi php:

spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi

Memotech注:

spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data /usr/bin/php-cgi

为了让php-cgi开机自启动: cd /etc/init.d cp nginx php-cgi vi php-cgi

替换nginx为php-cgi

 

并修改相应部分为: DAEMON=/usr/bin/spawn-fcgi DAEMON_OPTS="-a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi" ... stop)          echo -n "Stopping $DESC: "          pkill -9 php-cgi          echo "$NAME." 然后运行rcconf设置php-cgi为开机自启动

Memotech注 方法二

  1. #!/bin/bash
  2. PHP_SCRIPT=/usr/bin/php-cgi  
  3. RETVAL=0  
  4. case"$1" in  
  5.       start)  
  6.         $PHP_SCRIPT  
  7.         RETVAL=$?  
  8.     ;;  
  9.       stop)  
  10.         killall -9 php5-cgi  
  11.         RETVAL=$?  
  12.     ;;  
  13.       restart)  
  14.         killall -9 php5-cgi
  15.         $PHP_SCRIPT  
  16.         RETVAL=$?  
  17.     ;;  
  18.       *)  
  19.         echo "Usage: php-cgi {start|stop|restart}"
  20.         exit 1  
  21.     ;;  
  22. esac  
  23. exit $RETVAL

这是用shell脚本的方法加入开机启动项,这个方法更好一些。我试验过上面的方法 好像不太灵。 

----------------------------------------------------------------------------------------------------------------------

方法3

开启PHP FastCGI 设置听的端口9000上运行的本地用户和www-data, 运行下面程序:

root@memotech:~# /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

显示 spawn-fcgi.c.197: child spawned successfully: PID: 29470

修改rc.local 这个文件.先备份一个.

root@memotech:~# cp /etc/rc.local . root@memotech:~# vi /etc/rc.local 添加 /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

----------------------------------------------------------------------------------------------------------

在/var/www/nginx-default/目录下创建一个文件: /var/www/nginx-default/index.php 文件内容是:

< ?php phpinfo();?>

 

然后浏览器访问nginx就可以看到一切正常了

以上面的步骤一般能走通。

 

 

 

附:    Nginx 虚拟主机配置格式

 

  1. server {
  2. listen 80;
  3. server_name a.memotech.org;
  4. access_log logs/a.access.log;
  5. server_name_in_redirect off;
  6. location / {
  7. index index.html index.htm;
  8. root /var/www/a.memotech.org/;
  9. }
  10. }

 

  1. server {
  2. listen 80;  
  3. server_name b.memotech.org;  
  4. access_log logs/b.access.log;  
  5. server_name_in_redirect off;  
  6. location / {  
  7. index index.html index.htm;  
  8. root /var/www/b.memotech.org/;  
  9. }  
  10. }

-------------------------------------------------------------------

#以上两个虚拟主机的配置不支持php  如果要支持php,请参照以下配置。

server { listen 80; server_name test.memotech.org; access_log /var/log/testmemoaccess.log; server_name_in_redirect off; location / { index index.php; root /var/www/test.memotech.org/; location ~ \.php$ {                  fastcgi_pass    127.0.0.1:9000;                  fastcgi_index index.php;                  fastcgi_param SCRIPT_FILENAME /var/www/test.memotech.org$fastcgi_script_name;                  include /etc/nginx/fastcgi_params; } } }

posted @ 2012-10-23 17:35  F.W.C  阅读(319)  评论(0编辑  收藏  举报