您的位置:首页 > 运维架构 > Nginx

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

2012-10-23 17:35 1036 查看
由于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注 方法二

#!/bin/bash

PHP_SCRIPT=/usr/bin/php-cgi

RETVAL=0

case"$1" in

start)

$PHP_SCRIPT

RETVAL=$?

;;

stop)

killall -9 php5-cgi

RETVAL=$?

;;

restart)

killall -9 php5-cgi

$PHP_SCRIPT

RETVAL=$?

;;

*)

echo "Usage: php-cgi {start|stop|restart}"

exit 1

;;

esac

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 虚拟主机配置格式

server {

listen 80;

server_name a.memotech.org;

access_log logs/a.access.log;

server_name_in_redirect off;

location / {

index index.html index.htm;

root /var/www/a.memotech.org/;

}

}

server {

listen 80;

server_name b.memotech.org;

access_log logs/b.access.log;

server_name_in_redirect off;

location / {

index index.html index.htm;

root /var/www/b.memotech.org/;

}

}

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

#以上两个虚拟主机的配置不支持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; } } }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: