澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

Ubuntu中Nginx的安装与配置

Nginx FastCgi的测试

Nginx Fastcgi配置方法

一、nginx安装&配置

1) apt-get install nginx

2) 修改/etc/nginx/sites-available下的default文件

[plain] view plaincopy
#设置首页
root /usr/share/nginx/myweb;
index index.html index.htm;
#修改端口
listen 8880 default_server;
listen [::]:8880 default_server ipv6only=on;
#设置fastcgi程序入口
location /mycgi.cgi {
fastcgi_pass 127.0.0.1:9999; -> fastcgi程序监听的端口
#fastcgi_index mycgi.out;
include fastcgi_params;
}

二、fastcgi管理器spawn-fcgi的安装

apt-get install spawn-fcgi

三、fcgi库的安装

没有找到官网下载,有些奇怪,临时参照附件。

1)修改include/fcgio.h文件,追加#include

2)./configure

3)./make install

4) ldconfig /usr/local/lib (libfcgi.so默认生成路径)

四、编译cgi程序

例子代码如下:

[cpp] view plaincopy#include
#include
#include
#include
#include
int main(int argc, char** argv)
{
int count = 0;
while( FCGI_Accept() >= 0 )
{
printf( "Content-type:text/htmlrnrn" );
printf( " Hello FastCGI ! " );
printf( " Request number = [%d]",   count );
printf( " CGI PID: %d ", getpid() );
}
return 0;
}

编译

g mycgi.c -o mycgi.out -L /usr/local/lib -lfcgi

五、启动cgi

spawn-fcgi -a 127.0.0.1 -p 9999 -f /root/mycgi/mycgi.out -F 3

-F指定启动的cgi进程个数,nginx会轮询访问

访问


图片 1


Nginx Fastcgi配置方法 一、nginx安装配置 1) apt-get install nginx 2) 修改/etc/nginx/sites-available下的default文件 [plain] view plaincopy#设置...

1.Nginx介绍

安装平台基于 Ubuntu 9.04/9.10.使用 apt-get 简单安装.在安装之前你要准备好源.还有安装库 g vim ssh links 因为你要用到这些功具.

 参考Ubuntu中文wiki:http://wiki.ubuntu.org.cn/Nginx

ubuntu下的nginx php mysql配置

Nginx是一个非常轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和

1、 Install Tools

0. 版本信息

nginx:1.4.6

php:5.5.9

MySQL:5.5

 

反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。

#apt-get install g vim links ssh

1. 安装nginx

sudo apt-get install nginx

1、更新

2.对PHP支持

2 安装 MySQL 5.0

nginx文件结构


/etc/nginx:所有配置文件,虚拟主机在/etc/nginx/sites-available下 |

/usr/sbin/nginx:程序文件路径

/var/log/nginx:日志文件

/etc/init.d/nginx:nginx启动脚本

  www.2cto.com  

目前各种web 服务器对PHP的支持一共有三种:

#apt-get install mysql-server mysql-client

2. 启动nginx

sudo /etc/init.d/nginx start

此时访问http://localhost/),应该能正常访问。

1

通过web 服务器内置的模块来实现,例如Apache的mod_php5,类似的Apache内置的mod_perl

在安装这个过程中会提示让你输入MYSQL数据库的密码:

可能的问题


sudo apt-get update

可以对perl支持。

New password for the MySQL “root” user: <– yourrootsqlpassword 你的MYSQL密码

80端口被占用

Starting nginx: [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)

修改文件:/etc/nginx/sites-available/default,去掉 listen 前面的 # 号 , # 号在该文件里是注释的意思 , 并且把 listen 后面的 80 端口号改为自己的端口,访问是需要添加端口号。

2、安装nginx

通过CGI来实现,这个就好比之前perl的CGI,该种方式的缺点是性能差,因为每次服务器遇到

Repeat password for the MySQL “root” user: <– yourrootsqlpassword 你的MYSQL密码

403错误

可能是nginx配置文件里的网站路径不正确,修改/etc/nginx/sites-available的root网站路径

 

这些脚本都需要重新启动脚本解析器来执行脚本然后将结果返回给服务器;

3 安装 Nginx

3. 配置PHP和MySQL

安装php和MySQL

sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql mysql-client

安装FastCgi(Common Gateway Interface,通用网关接口)

sudo apt-get install php5-fpm

配置nginx

修改/etc/nginx/sites-available/default 修改主机名

server_name localhost;

修改首页

index index.php index.html index.htm;

去掉以下配置的注释以支持php脚本

location ~ .php$ {

include /etc/nginx/fastcgi_params; #需放在第一行,否则会出错

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;

}

重启nginx

/etc/init.d/nginx stop

/etc/init.d/nginx start

启动fastcgi

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

让php-cgi开机自启动

为了让php-cgi开机自启动: Ubuntu开机之后会执行/etc/rc.local文件中的脚本 所以我们可以直接在/etc/rc.local中添加启动脚本。 spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi 添加到语句:exit 0 前面才行

创建、测试phpinfo

sudo vi /usr/share/nginx/html/info.php

测试

打开

1

另一方面就是不太安全;该方面几乎很少使用了。

#apt-get install nginx

测试MySQL

vim /usr/share/nginx/html/mysql.php

<?php

header("content-type:text/html;charset=utf-8");

$conn = mysql_connect('localhost','root','chenxu0909');

if(!$conn) {

echo 'connect mysql error'.mysql_error();

die();

}

else {

echo 'connect mysql success';

}

// 创建数据库

if(mysql_query("CREATE DATABASE IF NOT EXISTS `test` CHARACTER SET utf8",$conn)) {

echo "Database created";

}

else {

echo 'Create database failed'.mysql_error();

die();

}

mysql_close($conn);

访问

sudo apt-get intsall nginx 

最新出现一种叫做FastCGI。所谓FastCGI就是对CGI的改进。它一般采用C/S结构,一般脚本处理器

启动nginx:

Ubuntu安装之后的文件结构大致为:

会启动一个或者多个daemon进程,每次web 服务器遇到脚本的时候,直接交付给FastCGI的进程来执行,然后

#/etc/init.d/nginx start

* 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下  www.2cto.com  

将得到的结果返回给浏览器。

在你的浏览器输入

*程序文件在/usr/sbin/nginx * 日志放在了/var/log/nginx中

2.1 Apache mod_php模式

若看到 Welcome to nginx!,说明你已安装上了nginx了.接下来我们要来配置它.设置启动系统时会自动启动它.

*并已经在/etc/init.d/下创建了启动脚本nginx

我们很久一段时间使用经典的Apache mod_php。

root@ubuntu:~# update-rc.d nginx defaults    ------设置开机自启

* 默认的虚拟主机的目录设置在了/var/www/nginx-default

Apache对PHP的支持是通过Apache的模块来支持的。如果从源代码编译安装PHP的话,如果希望Apache支持

System startup links for /etc/init.d/nginx already exist.

 

PHP的话,在./configure步骤需要指定--with-apxs2=/usr/local/apache2/bin/apxs 表示告诉编译器通过

4、安装 PHP5

下面可以启动nginx来看看效果(请确保80端口没有其他服务在使用):

Apache的mod_php5/apxs来提供对PHP5的解析;而且在最后一步make install的时候我们会看到将动态链接库

root@Ubuntu:~# apt-get 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

 

libphp5.so拷贝到apache2的安装目录的modules目录下,并且还需要在httpd.conf配置文件中添加LoadModule

接下来要配置 php.ini 这个文件,在做一些配置文件之前最好你要做一个备份.

1

语句来动态将libphp5.so模块加载进来,从而实现Apache对php的支持。

root@Ubuntu:~# cd /etc/php5/cgi/

sudo /etc/init.d/nginx start 

2.2 Nginx FastCGI模式

root@Ubuntu:/etc/php5/cgi# ls

#或者简单的

Nginx完全是轻量级的,必须借助第三方的FastCGI处理器才可以对PHP进行解析,因此其实这样看来Nginx是

conf.d php.ini

 

非常灵活的,它可以和任何第三方提供解析的处理器实现连接从而实现对PHP的解析(在nginx.conf中很容易设置)。

root@Ubuntu:/etc/php5/cgi# cp php.ini php.ini.bak     (进行备份)

1

Nginx可以使用spwan-fcgi。在早期版本中需要安装lighttpd,但是在9.10版本以后直接安装spawn-fcgi就可以。

root@Ubuntu:/etc/php5/cgi# vi php.ini

service nginx start 

现在出现了新的第三方的PHP的FastCGI处理器,叫做PHP-FPM,可以了解一下。本文是基于spawn-fcgi实现对

php.ini 这个文件里添加下一行, 配置文件里面因该有此项,但是是被注释掉的,把前面的分号去掉,并且将值改为1

然后打开浏览器,查看 看看是否看到了”Welcome to nginx!” 如果看到了,说明安装成功.

PHP模块的支持。

cgi.fix_pathinfo = 1

当然,基本上,这块儿都不会出问题. 如果运行不成功,可以先

2.3 安装FastCGI

5,安装lighttpd

 

来自 cllgeek 收集

root@Ubuntu:# apt-get install lighttpd

1

/usr/bin/spawn-fcgi这个文件来管理 FastCGI,它原属于lighttpd这个包里面,但 9.10 后,spawn-fcgi

安装完接下来要移除它的自动启动程序让它不自动启动.

sudo killall apache2 

被分离出来单独成包。

root@Ubuntu:# update-rc.d -f lighttpd remove        -------不让其开机自启

杀掉apache进程

使用apt-get在线安装命令如下:

Removing any system startup links for /etc/init.d/lighttpd …

3、安装php

$sudo apt-get install spawn-fcgi

/etc/rc0.d/K09lighttpd

 

源代码安装如下,下载地址为:

/etc/rc1.d/K09lighttpd

sudo apt-get install php5 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-tidy php5-xmlrpc php5-sqlite php5-xsl

/etc/rc2.d/S91lighttpd

 

解压缩以后,进入目录下执行如下安装命令:

/etc/rc3.d/S91lighttpd

 

$./configure

/etc/rc4.d/S91lighttpd

4、安装spawn-fcgi

$make

/etc/rc5.d/S91lighttpd

为什么要安装spawn-fcgi呢,它用来控制php-cgi进程,以防止进程崩溃或是单进程的效率太低.

$make install

/etc/rc6.d/K09lighttpd

网上很多人都说要使用spawn-fcgi必须得安装lighttpd,实际上不必要,可以直接安装spawn-fcgi

安装之后,spawn-fcgi命令就可以直接使用了,它的可执行文件在/usr/local/bin/spawn-fcgi。

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

运行:

3.Nginx安装

root@ubuntu:~# /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    -----------(重要的一步!)

 

3.1 安装Nginx

spawn-fcgi.c.197: child spawned successfully: PID: 16273

1

在线安装

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

sudo apt-get install spawn-fcgi 

$sudo apt-get install nginx

root@Ubuntu:~# cp /etc/rc.local /etc/rc.local.bak

5、配置

Nginx的版本是1.2.1

root@Ubuntu:~# vi /etc/rc.local

接下来就是最让人头疼的配置.

ubuntu安装Nginx之后的文件结构大致为:

添加

配置Nginx和spawn-fcgi配合运行

所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下

/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

(1).在/etc/nginx/fastcgi_params 文件最后,加入一行,可以用

启动程序文件在/usr/sbin/nginx

6 、配置Nginx(需要配置两个文件)

 

日志放在了/var/log/nginx中,分别是access.log和error.log

root@Ubuntu:/etc/nginx# cp nginx.conf nginx.conf.bak

1

并已经在/etc/init.d/下创建了启动脚本nginx

root@Ubuntu:/etc/nginx# vi nginx.conf

sudo vi /etc/nginx/fastcgi_params 

默认的虚拟主机的目录设置在了/usr/share/nginx/www

修改如下

加入此行:

源代码安装

[...]

 

下载地址:

worker_processes 5;

1

我这里下载的是 nginx-1.3.9.tar.gz,安装过程很简单,如下:

[...]

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

$./configure

keepalive_timeout 2;

(2).另外需要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini)中,找到cgi.fix_pathinfo选项,修改为:

$make

[...]

 

$make install

说明:worker_processes指明了nginx要开启的进程数

1

安装成功之后,nginx放置在/usr/local/nginx目录下,主要的配置文件为conf目录下的nginx.conf,

配置sites-available/default

cgi.fix_pathinfo=1;

nginx的启动文件在sbin目录下的nginx文件。

root@Ubuntu:/etc/nginx/sites-available# cp default default.bak

这样php-cgi方能正常使用SCRIPT_FILENAME这个变量.

3.2 启动Nginx

root@Ubuntu:/etc/nginx/sites-available# vi default

(3).打开/etc/nginx/sites-available/default文件在

在线安装的启动过程

下面这个就是配置文档,斜体是添加修改:

 

$sudo /etc/init.d/nginx start

root@Ubuntu:/etc/nginx/sites-available# vi default

1

源代码安装的启动过程


2

$cd /usr/local/nginx

# You may add here your

3

$sbin/nginx

# server {

server {

然后就可以访问了, 一切正常!如果不能访问,先不要继续,看看是什么原因,

# …

listen 80;

解决之后再继续。

# }

server_name localhost;

如果你的机器同时安装了Apache,那上面的访问方式就不能使用了,而且nginx都可能启动不了,这是

# statements for each of your virtual hosts

下面添加web根目录的绝对地址,这里是使用的是nginx的默认地址

因为它们都是用了80这个端口。我们这里将nginx的端口修改为8080,

server {

 

Ubuntu中Nginx的安装与配置。这里主要修改nginx的配置文件nginx.conf,将一下这一行

listen 80;

1

listen 80;

server_name 192.168.2.13 localhost;                             # (这个可以不改,默认为 localhost)

root /var/www/nginx-default

修改为

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

即root和server_name同级这段即相当于apache的默认目录

listen 8080;

location / {

如果没有这个的话,容易在执行php 文件的时候,会提示”No input file specified”.

然后就可以访问了,

Ubuntu中Nginx的安装与配置。root /var/www/nginx-default;                                             #(你的根目录)

我就曾在此绕了好大个圈子才发现问题.然后修改

3.3 安装PHP和MySQL

index index.php index.html index.htm;                            #(添加 PHP 的主页支持)

 

$sudo apt-get install php5-cliphp5-cgimysql-server php5-mysql

}

#location ~ .php$ {

3.4 测试Nginx对PHP的支持

location /doc {

#fastcgi_pass 127.0.0.1:9000;

重新启动nginx:

root /usr/share;

#fastcgi_index index.php;

$/etc/init.d/nginx restart

autoindex on;

#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

启动FastCGI:

allow 127.0.0.1;

#includefastcgi_params;

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

deny all;

#}

spawn-fcgi启动出现错误时,查看php-cgi是否安装,如果么有的话,安装php5-cgi。

}

修改成

$sudo apt-get install php5-cgi

location /images {

 

测试

root /usr/share;

location ~ .php$ {

打开

autoindex on;

fastcgi_pass 127.0.0.1:9000;

4.Nginx配置

}

fastcgi_index index.php;

Nginx的配置文件是/etc/nginx/nginx.conf,其中设置了一些必要的参数,我们发现其中这样的语句:

#error_page 404 /404.html;

fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;

include /etc/nginx/sites-enabled/*

# redirect server error pages to the static page /50x.html

include /etc/nginx/fastcgi_params; #包含fastcgi的参数文件地址

可以看出/etc/nginx/sites-enabled/default文件也是一个核心的配置文件,其中包含了主要的配置信息,

#

6、开始fast_cgi进程

如服务器跟目录、服务器名称、location信息和server信息。

error_page 500 502 503 504 /50x.html;

 

对于源代码安装的nginx,配置文件为/usr/local/nginx/conf/nginx.conf。

location = /50x.html {

1、sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

下面主要说明location的匹配规则:

root /var/www/nginx-default;

 

= 前缀的指令严格匹配这个查询。如果找到,停止搜索。

}

7、设置开机启动fastcgi进程并启动

剩下的常规字符串,最长的匹配优先使用。如果这个匹配使用 ^~ 前缀,搜索停止。

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

 

正则表达式,按配置文件里的顺序,第一个匹配的被使用。

#

1

如果第三步产生匹配,则使用这个结果。否则使用第二步的匹配结果。

#location ~ .php$ {

sudo vi /etc/rc.local

在location中可以使用常规字符串和正则表达式。

#proxy_pass ;

添加下一行

如果使用正则表达式,你必须使用以下规则:

#}

 

~* 前缀选择不区分大小写的匹配

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

1

~ 选择区分大小写的匹配

location ~ .php$ {

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

例子:

fastcgi_pass 127.0.0.1:9000;

如果打开php文件出现:No input file specified请检查php.ini的配置中

location = / {

fastcgi_index index.php;

 

# 只匹配 / 查询。

fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;

1

[ configuration A ]

include fastcgi_params;

cgi.fix_pathinfo=1 

}

***}                                                                                          #(添加 PHP 的脚本支持)

1

location / {


doc_root=

# 匹配任何查询,因为所有请求都以 / 开头。

#

还有,每个虚机要根据自己不同的虚机设置不同的目录,要保证这个路径正确.

# 但是正则表达式规则和长的块规则将被优先和查询匹配。

#location ~ .php$ {

检查/etc/nginx/sites-available下的配置文件中,server内包含 root 及地址 而非location内的root

[ configuration B ]

#fastcgi_pass 127.0.0.1:9000;

启动

}

#fastcgi_index index.php;

 

location ^~ /images/ {

#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

1

# 匹配任何以 /images/ 开头的任何查询并且停止搜索。

#includefastcgi_params;

fast-cgisudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

# 任何正则表达式将不会被测试。

#}

参数含义如下

[ configuration C ]

# deny access to .htaccess files, if Apache’s document root

* -f 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置

}

# concurs with nginx’s one

* -a 绑定到地址addr

location ~* .(gif|jpg|jpeg)$ {

#

* -p 绑定到端口port

# 匹配任何以 gif、jpg 或 jpeg 结尾的请求。

#location ~ /.ht {

* -s 绑定到unix socket的路径path

# 然而所有 /images/ 目录的请求将使用 Configuration C。

#deny all;

* -C 指定产生的FastCGI的进程数,默认为5(仅用于PHP)

[ configuration D ]

#}

* -P指定产生的进程的PID文件路径

}

}

* -u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等现在可以在web根目录下放个探针或php文件测试一下了

这里你还要对正则表达式有一定的了解!!!

# another virtual host using mix of IP-, name-, and port-based configuration

8、安装mysql

使用apt-get安装的nginx配置文件为: /etc/nginx/sites-available/default,可以用sudo vim /etc/nginx/sites-available/default命令打开。看到如:server {

#

 

listen 80;

#server {

1

其中,listen 80;指的是监听80端口。只需修改为listen 8080即可。

#listen 8000;

sudo apt-get install mysql-server mysql-client

说明:修改端口后,在输入网址时需指定端口号,如localhost:8080,否则显示错误。而默认的80端口在输入网址时可以省略。

#listen somename:8080;

中间会提示输入Root用户密码,依次输入即可.

#server_name somename alias another.alias;

启动MySQL

#location / {

 

#root html;

1

#index index.html index.htm;

sudo /etc/init.d/mysql start

#}

测试mysql服务是否正常:

#}

运行

# HTTPS server

 

#

1

#server {

mysql -uroot -p

#listen 443;

输入mysql密码

#server_name localhost;

 

#ssl on;

1

#ssl_certificate cert.pem;

 show databases;

#ssl_certificate_key cert.key;

如果看到下面的内容

#ssl_session_timeout 5m;

| Database |

#ssl_protocols SSLv2 SSLv3 TLSv1;

| information_schema |

#ssl_ciphers ALL:!ADH:!EXPORT56:RC4 RSA: HIGH: MEDIUM: LOW: SSLv2: EXP;

| mysql |

#ssl_prefer_server_ciphers on;

则mysql已正确安装了.

#location / {

至此,ubuntu下的nginx php mysql就安装完成了.

#root html;

 

#index index.html index.htm;

1、更新 www.2cto.com 1 sudo apt-get update 2、安装nginx 1 sudo apt-get intsall nginx Ubuntu安装之后的文件结构大致为: * 所有的配...

#}

#}


创建一个 info.php 页面.

#vi /var/www/nginx-default/info.php

<?php phpinfo(); ?>

重启nginx

root@Ubuntu:/etc/nginx/sites-available# /etc/init.d/nginx restart

root@Ubuntu:/var/www/nginx-default# /etc/init.d/lighttpd stop

这 lighttp 要关了.要不然会网页显示会给跑到这里来.因为nginx & ligttpd 两个同时打开也会发生冲突的.而这里我们只是用到 lighttp 的插件所以没有必要开启.

打开链接: 若显示有 PHP 信息页:

PHP Version 5.2.10-2ubuntu6.4

System Linux gw-laptop 2.6.31-17-generic #54-Ubuntu SMP Thu Dec 10 16:20:31 UTC 2009 i686
Build Date Jan 6 2010 22:34:27
Server API CGI/FastCGI

.............................(还有很多)

则安装正常!


本文由澳门新浦京娱乐场网站发布于服务器,转载请注明出处:Ubuntu中Nginx的安装与配置