Ubuntu中Nginx服务器安装配置教程
Nginx是一个【gè】🎣非常轻量级的♟HTTP服务器【wù qì】📿,也是一【yě shì yī】个【gè】🎣高性能的HTTP和反向【hé fǎn xiàng】代理服【dài lǐ fú】务器【wù qì】📿,同时还➕是一个【gè】🎣IMAP/POP3/SMTP 代理服【dài lǐ fú】务器【wù qì】📿。
1.对PHP支持
目前各【mù qián gè】种web 服务器💹对🍵PHP的支持【de zhī chí】😚一共有【yī gòng yǒu】三种:
(1)通过web 服务器【fú wù qì】内置的【nèi zhì de】📂模块来实现【shí xiàn】🏛,例如【lì rú】Apache的mod_php5,类似的🎺Apache内置的【nèi zhì de】📂mod_perl可以对perl支持🗡。
(2)通过【tōng guò】🆔CGI来实现,这个就好比之前【qián】perl的【de】🚯CGI,该种方式的【de】🚯缺点是【quē diǎn shì】性能差😔,因为每🐲次服务器【qì】🔲遇到这些脚本都需要【dōu xū yào】重新启动脚本解析👜器来执【qì lái zhí】🍰行脚本【háng jiǎo běn】然后将结果返回给服务器【qì】🔲;另一方🍓面就是不太安【bú tài ān】🈵全【quán】📞;该方面几乎很少使用了。
(3)最新出【zuì xīn chū】现一种【xiàn yī zhǒng】叫做FastCGI。所谓💛FastCGI就是对🏋CGI的改进。它一般🗃采用C/S结构,一般脚【yī bān jiǎo】🚲本处理【běn chù lǐ】器会启🎚动一个【dòng yī gè】🤬或者多🔚个daemon进程,每次【měi cì】web 服务器遇到脚本的时候【hòu】,直接交付给🅰FastCGI的进程来执行【lái zhí háng】,然后将🎋得到的【dé dào de】结果(通常为html)返回给【fǎn huí gěi】🔙浏览器。
1.1 Apache+mod_php模式【mó shì】🍉
我们很【wǒ men hěn】久一段时间使【shí jiān shǐ】用经典🏯的🕋Apache+mod_php。
Apache对PHP的支持【de zhī chí】🌓是通过🚥Apache的模块来支持【lái zhī chí】🙇的。如果从源代码【yuán dài mǎ】编译安装⏩PHP的话📻,如果希望【wàng】Apache支持【zhī chí】🌓PHP的话📻,
在🦅./configure步骤需【bù zhòu xū】🐄要指定--with-apxs2=/usr/local/apache2/bin/apxs 表示告诉编译器通过【qì tōng guò】Apache的【de】mod_php5/apxs来提供🌼
对PHP5的【de】解析;而且在👪最后一步make install的时候【de shí hòu】我们会【wǒ men huì】看到将🤝动态链接库【jiē kù】📳libphp5.so拷贝到apache2的安装【de ān zhuāng】📖目录📊的【de】modules目录📊
下🏚,并且还需要在httpd.conf配置文【pèi zhì wén】🍣件中添加🤩LoadModule语句来【yǔ jù lái】📯动态将【dòng tài jiāng】📑libphp5.so 模块加🤩载进来【zǎi jìn lái】,从而实现Apache对【duì】php的支持。
1.2 Nginx+FastCGI模式
Nginx完全是轻量级【qīng liàng jí】的【de】🔭,必须借【bì xū jiè】助第三方的【fāng de】🔭FastCGI处理器😩才可以对⭕PHP进行解【jìn háng jiě】析🏵,因此其🎑实这样看来Nginx是非常灵活的【líng huó de】🙄,它可以
和任何第三方【dì sān fāng】⛎提供解析的处【xī de chù】理器实现连接【xiàn lián jiē】🕥从而实现对PHP的解析(在【zài】🏑nginx.conf中很容易设置🚨)。
Nginx可以使📸用【yòng】spwan-fcgi。在早期📮版本中🕛需要安装🗓lighttpd,但是在9.10版本以【bǎn běn yǐ】👼后直接【hòu zhí jiē】安装🗓spawn-fcgi就可以。现在出【xiàn zài chū】现了新【xiàn le xīn】的
第三方的【de】📼PHP的【de】📼FastCGI处理器,叫做🍞PHP-FPM,可以了【kě yǐ le】✅解一下【jiě yī xià】。本文是🌓基于spawn-fcgi实现对PHP模块的【de】📼支持。
1.3安装FastCGI
/usr/bin/spawn-fcgi这个文🎌件来管【jiàn lái guǎn】理【lǐ】✴ FastCGI,它原属【tā yuán shǔ】于lighttpd这个包🕥里面,但【dàn】 9.10 后🆚,spawn-fcgi 被分离出来单独成包。
(1)使用apt-get在线安装命令【zhuāng mìng lìng】🧝如下【rú xià】🆓:
$sudo apt-get install spawn-fcgi
(2)源代码安装如下,下载地址为:
http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
解压缩以后【yǐ hòu】,进入目🥕录下执【lù xià zhí】🖨行如下安装命♒令【lìng】:
$./configure
$make
$make install
安装之🚴后,spawn-fcgi命令就【mìng lìng jiù】🤟可以直接使用了【le】,它的可执行文【zhí háng wén】🚿件在/usr/local/bin/spawn-fcgi。
2.Nginx安装
2.1安装Nginx
(1)在线安装
$sudo apt-get install nginx
Nginx的版本是1.2.1
ubuntu安装🥣Nginx之后的文件结🔊构大致【gòu dà zhì】为【wéi】:
所有的配置文件都在/etc/nginx下😠,并且每【bìng qiě měi】💽个虚拟📎主机已【zhǔ jī yǐ】经安排【jīng ān pái】在了/etc/nginx/sites-available下😠
启动程😉序文件在【zài】/usr/sbin/nginx
日志放【rì zhì fàng】在了/var/log/nginx中🈳,分别是access.log和【hé】🍡error.log
并已经在【zài】➡/etc/init.d/下创建【xià chuàng jiàn】💿了启动脚本nginx
默认的虚拟主【xū nǐ zhǔ】📧机的目录设置【lù shè zhì】🏩在了/usr/share/nginx/www
(2)源代码安装
下载地👄址【zhǐ】:http://nginx.org/download/
我这里下载的【xià zǎi de】🎂是 nginx-1.3.9.tar.gz,安装过【ān zhuāng guò】程很简🕟单🥔,如下【rú xià】:
$./configure
$make
$make install
安装成功之后,nginx放置在/usr/local/nginx目录【mù lù】下📬,主要的🔘配置文【pèi zhì wén】🍹件为【jiàn wéi】conf目录【mù lù】下📬的🔘nginx.conf,nginx的🔘启动文件在【jiàn zài】🕳sbin目录【mù lù】
下的nginx文件。
2.2启动Nginx
(1)在线安装的启动过程
$sudo /etc/init.d/nginx start
(2)源代码安装的启动过程
$cd /usr/local/nginx
$sbin/nginx
然后就可以访问了【wèn le】👑,http://localhost/, 一切正常!如果不📮能访问,先不要继续【jì xù】🎭,看看是【kàn kàn shì】什么原【shí me yuán】🍔因【yīn】🎞,解决之后再继续【jì xù】🎭。
如果你🎐的机器【de jī qì】🍮同时安装了🐫Apache,那上面的访问方式就📌不能使🐮用了🐫,而且【ér qiě】nginx都可能启动不了🐫,这是因【zhè shì yīn】为它们【wéi tā men】都是用【dōu shì yòng】了🐫80这个端【zhè gè duān】✉口。我们这【wǒ men zhè】里将🥣nginx的端口【de duān kǒu】修改为🐐8080,这里主要修改nginx的配置文件【wén jiàn】🐏nginx.conf,将一下这一行
listen 80;
修改为
listen 8080;
然后就可以访🤒问了【wèn le】,http://localhost:8080/。
23安装PHP和MySQL
$sudo apt-get install php5-cliphp5-cgimysql-server php5-mysql
2.4测试Nginx对PHP的支持
(1)重新启动nginx:
$/etc/init.d/nginx restart
(2)启动FastCGI:
$spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi
spawn-fcgi启动出【qǐ dòng chū】现错误🛌时,查看php-cgi是否安🚜装【zhuāng】,如果么有的话,安装【ān zhuāng】☕php5-cgi。
$sudo apt-get install php5-cgi
(3)测试
打开【dǎ kāi】🧠http://localhost/phpinfo.php
3.Nginx配置
Nginx的配置文件是/etc/nginx/nginx.conf,其中设置了一【zhì le yī】些必要的参数【de cān shù】🔇,我们发【wǒ men fā】现其中😻这样的语句🖇:
include /etc/nginx/sites-enabled/*
可以看【kě yǐ kàn】出【chū】/etc/nginx/sites-enabled/default文件也是一个核心的配置文👸件,其中包【qí zhōng bāo】含了主【hán le zhǔ】要的配置信息💔,如服务🐙器跟目🤕录🛃、服务器【fú wù qì】名称【míng chēng】、location信息和⌛server信息💔。
对于源代码安【dài mǎ ān】🙇装的🛤nginx,配置文【pèi zhì wén】件为/usr/local/nginx/conf/nginx.conf。
下面主【xià miàn zhǔ】要说明location的匹配【de pǐ pèi】🍊规则🙂:
(1)= 前缀的【qián zhuì de】📛指令严【zhǐ lìng yán】格匹配这个查🧗询🦄。如果找到,停止搜【tíng zhǐ sōu】索。
(2)剩下的【shèng xià de】常规字符串【fú chuàn】,最长的【zuì zhǎng de】🔢匹配优😛先使用【xiān shǐ yòng】。如果这个匹配使用 ^~ 前缀🛰,搜索停止🔡。
(3)正则表🔉达式【dá shì】,按配置🥎文件里【wén jiàn lǐ】的顺序,第一个匹配的被使用【bèi shǐ yòng】🤵。
(4)如果🤜第三步【dì sān bù】产生匹配,则使用这个结🐻果🤜。否则使【fǒu zé shǐ】用第二【yòng dì èr】步的匹🗽配结果【pèi jié guǒ】🤜。
在【zài】🍚location中可以【zhōng kě yǐ】使用常规字符⛅串和正则表达式【shì】👨。
如果使用正则【yòng zhèng zé】💎表达式,你必须使用以【shǐ yòng yǐ】下规则💎:
(1)~* 前缀选择不区分大小写的匹配
(2)~ 选择区分大小写的匹配
例子:
location = / {
# 只匹配 / 查询。
[ configuration A ]
}
location / {
# 匹配任⏫何查询🏿,因为所【yīn wéi suǒ】有请求都以 / 开头【kāi tóu】。
# 但是正【dàn shì zhèng】则表达式规则和长的块规则【kuài guī zé】将被优【jiāng bèi yōu】🤷先和查♈询匹配🐀。
[ configuration B ]
}
location ^~ /images/ {
# 匹配任何以【hé yǐ】 /images/ 开头的📳任何查🆚询并且【xún bìng qiě】停止搜🚎索【suǒ】。
# 任何正则表达式将不会被测试。
[ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配任【pǐ pèi rèn】🎷何以 gif、jpg 或🔢 jpeg 结尾的【jié wěi de】请求。
# 然而所有 /images/ 目录的请求将【qǐng qiú jiāng】🚗使用【shǐ yòng】🤓 Configuration C。
[ configuration D ]
}
这里你还要对【hái yào duì】正则表【zhèng zé biǎo】达式有🔪一定的了解🎲!!!
关键词:Ubuntu,Nginx服务器
阅读本文后您有什么感想? 已有 人给出评价!
- 1
- 1
- 1
- 1
- 1
- 1