在FreeBSD上安装Nginx+PHP

原创内容,如需转载,请联系作者:easy@mpnew.com
由PfSense防火墙开始接触FreeBSD,感觉FreeBSD不仅功能强大,而且非常易用。特别是因为公司的需要,现在的业务都运行在虚拟机上,FreeBSD的轻巧也让我感到更加适合运用在Web环境中,特别是自己重新编译内核后整个系统启动超快,安装后不到200M的硬盘占用,内存占用也不到30M左右。

以下是以FreeBSD 7.0 环境为例:
注:建议安装FreeBSD是使用最小化安装,有时间我会介绍一下在Vmware环境下的最小化编译。
一、安装nginx
1:首先使用Sysinstall 安装PCRE Library
2:configure   &&make &&make install
Nginx安装依赖PCRE,其它都非常简单,最初我安装的时候都是自己编译相关依赖的库,最后发现FreeBSD安装盘带的版本也不低,而且相关库对性能也没什么影响,使用安装盘安装可以省下不少时间。另外在configure还有很多参数,但即使你不带任何参数,编译出一个稳定的nginx是没问题的。如果你需要SSL记得 ./configure –with-http_ssl_module。
Nginx相关可参考:www.nginx.net

二、安装PHP
1、使用Sysinstall安装以下组件:
1):curl
2):libiconv
3):png/jpeg  (如果需要GD库支持png或jpeg的话)
4):libxml2
5):autoconf (如果不需要安装任何扩展可以不安装)
6:perl (如果不需要安装任何扩展可以不安装/安装autoconf时自动安装)
7:mysql-client (如果不需要mysql 扩展可以不安装)
2、下载libmcrypt编译安装,我现在用的是libmcrypt-2.5.8 这个版本。
3、配置PHP、编译、安装,推荐的配置:
./configure –enable-force-cgi-redirect –with-mcrypt –enable-inline-optimization –with-curl –enable-fastcgi –with-zlib  –with-gd

4、安装需要的扩展:
1)Mysql:如果需要Mysql扩展的话进入源码目录的ext/mysql,首先要执行:/usr/local/bin/phpize ,执行完成后就可以按通常的方法 :./configure && make && make install

2)GD:如果需要GD库,同样的进入ext/gd,执行:/usr/local/bin/phpize,然后:./configure && make && make install
3)安装Xcache加速扩展,Xcache可以从:http://xcache.lighttpd.net/ 下载。下载解压,安装方法与上面的扩展一样。

5、FastCGI启动代理:由于Nginx不能直接支持PHP,因此你需要自己管理FastCGI,一般常用的有两种办法管理,一种是使用Lighttpd里的spawn-fcgi,还有一种是使用PHP的fpm补丁,理论上使用fpm补丁后功能更加强大一些,不过我使用spawn-fcgi比较习惯。spawn-fcgi可以自己下载lighttpd编译后提取,不过你可以以直接下载我编译好的文件。

三、配置及脚本
现在Nginx与PHP都已经安装好了,但要想正常使用还需要做一些配置才行。

Nginx的启动文件在:/usr/local/nginx/sbin下,配置文件一般建议放在/usr/local/nginx/conf下,自己通过命令管理nginx是比较麻烦的事,在这里我已经准备了一些脚本,你可以拿过去直接使用:
1、下载:nginx.conf到/usr/local/nginx/conf 下面。
2、下载:fcgi.conf到/usr/local/nginx/conf下面。
3、下载:php.ini到/usr/local/nginx/conf下面。
4、下载:spawn-fcgi到/usr/local/nginx/sbin下面。
5、下载:fcgi.sh到/usr/local/nginx/sbin下面。
6、下载:nginx.sh到/usr/local/nginx/sbin下面。

好了,记得把spawn-fcgi、fcgi.sh、nginx.sh的权限改为651,这个时候你可以执行:
1、/usr/local/nginx/sbin/fcgi.sh start
2、/usr/local/nginx/sbin/nginx.sh start
执行完成后就可以使用http://server 来访问服务器了,网站存放在:/usr/local/www目录下,可以先放一个phpinfo页面查看效果,另外很多细节的配置分别是nginx.conf、fcgi.sh、nginx.sh几个文件里,建议在服务器能够正常运行后再做调整。
目前了解nginx最好的网站就是:www.nginx.net ,如果有不了解的地方可以直接访问:http://wiki.codemongers.com/Main 。

您可以通过 feed 来关注此内容的任意RSS 2.0 回复。
您可以留言, or trackback从您的站点

留言