Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区 等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站。
现在就就来学习在freebsd 8.1中安装及配置nginx:
nginx目前还不能直接支持php,必须先借助于fastcgi来驱动php。现在fastcgi较好的办法有2种,一个是spawn-fcgi,另外一个就是php-fpm,一般来说可能php-fpm更强大一点,但是spawn-fcgi也有相当数量的人在使用。因为ports中的php52已经包含了fpm组件,所以就使用php-fpm来支持。
一、安装配置php5.2.14及php52-extensions
1)安装php5.2.14
#cd /usr/ports/lang/php52 && make install clean
出来“make config”的菜单,选择需要的组件:FPM 组件一定要选。
[X] CLI Build CLI version
[X] CGI Build CGI version
[ ] APACHE Build Apache module
[ ] DEBUG Enable debug
[X] SUHOSIN Enable Suhosin protection system (not for jails)
[X] MULTIBYTE Enable zend multibyte support
[X] IPV6 Enable ipv6 support
[X] MAILHEAD Enable mail header patch
[X] REDIRECT Enable force-cgi-redirect support (CGI only)
[X] DISCARD Enable discard-path support (CGI only)
[X] FASTCGI Enable fastcgi support (CGI only)
[X] FPM Enable fastcgi process manager (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
复制配置文件
#cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
2)安装php52-extensions
#cd /usr/ports/lang/php52-extensions
#make config 选上需要支持的扩展
#make install clean
3)安装Zend Optimizer
#cd /usr/ports/devel/ZendOptimizer
方法一:
#make #不要安装,只需要下载解包
#cd /usr/ports/devel/ZendOptimizer/work/ZendOptimizer-*
#./install-tty ##会出现一个文字的安装界面,只是最后一步,不要选择apache就可以了
#vi /usr/local/etc/php.ini #插入zend的路径,一般来说,上面的安装会自动加入下面的文字。
[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0a
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so
方法二:
也可以用make install clean命令安装,则在php.ini文件里需要加上下面的代码:
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"
二、安装配置nginx:
freebsd上有2个nginx,一个是稳定版(这里查询显示nginx-0.8.53),一个是开发版,这里选择安装稳定版。
# cd /usr/ports/www/nginx && make install clean
接着出来“make config”的菜单,选择需要的组件即可:
[ ] DEBUG Enable nginx debugging
[ ] DEBUGLOG Enable debug log (--with-debug)
[X] FILE_AIO Enable file aio
[X] IPV6 Enable IPv6
[X] GOOGLE_PERFTOOLS Enable google perftools module
[X] HTTP_MODULE Enable HTTP module
[X] HTTP_ADDITION_MODULE Enable http_addition module
[X] HTTP_CACHE_MODULE Enable http_cache module
[X] HTTP_DAV_MODULE Enable http_webdav module
[X] HTTP_FLV_MODULE Enable http_flv module
[X] HTTP_GEOIP_MODULE Enable http_geoip module
[X] HTTP_GZIP_STATIC_MODULE Enable http_gzip_static module
[X] HTTP_IMAGE_FILTER_MODULE Enable http_image_filter module
[X] HTTP_PERL_MODULE Enable http_perl module
[X] HTTP_RANDOM_INDEX_MODULE Enable http_random_index module
[X] HTTP_REALIP_MODULE Enable http_realip module
[X] HTTP_REWRITE_MODULE Enable http_rewrite module
[X] HTTP_SECURE_LINK_MODULE Enable http_secure_link module
[X] HTTP_SSL_MODULE Enable http_ssl module
[X] HTTP_STATUS_MODULE Enable http_stub_status module
[X] HTTP_SUB_MODULE Enable http_sub module
[X] HTTP_XSLT_MODULE Enable http_xslt module
[X] MAIL_MODULE Enable IMAP4/POP3/SMTP proxy module
[X] MAIL_IMAP_MODULE Enable IMAP4 proxy module
[X] MAIL_POP3_MODULE Enable POP3 proxy module
[X] MAIL_SMTP_MODULE Enable SMTP proxy module
[X] MAIL_SSL_MODULE Enable mail_ssl module
[X] WWW Enable html sample files
[ ] CACHE_PURGE_MODULE 3rd party cache_purge module
[ ] ECHO_MODULE 3rd party echo module
[ ] HEADERS_MORE_MODULE 3rd party headers_more module
[ ] HTTP_ACCEPT_LANGUAGE 3rd party accept_language module
[ ] HTTP_ACCESSKEY_MODULE 3rd party http_accesskey module
[ ] HTTP_AUTH_PAM_MODULE 3rd party http_auth_pam module
[ ] HTTP_AUTH_REQ_MODULE 3rd party http_auth_request module
[ ] HTTP_EVAL_MODULE 3rd party eval module
[ ] HTTP_FANCYINDEX_MODULE 3rd party http_fancyindex module
[ ] HTTP_GUNZIP_FILTER 3rd party http_gunzip_filter module
[ ] HTTP_MOGILEFS_MODULE 3rd party mogilefs module
[ ] HTTP_MP4_H264_MODULE 3rd party mp4/h264 module
[ ] HTTP_NOTICE_MODULE 3rd party notice module
[ ] HTTP_PUSH_MODULE 3rd party push module
[ ] HTTP_REDIS_MODULE 3rd party http_redis module
[ ] HTTP_RESPONSE_MODULE 3rd party http_response module
[ ] HTTP_UPLOAD_MODULE 3rd party upload module
[ ] HTTP_UPLOAD_PROGRESS 3rd party uploadprogress module
[ ] HTTP_UPSTREAM_FAIR 3rd party upstream fair module
[ ] HTTP_UPSTREAM_HASH 3rd party upstream hash module
[ ] HTTP_UPSTREAM_KEEPALIVE 3rd party upstream keepalive module
[ ] HTTP_ZIP_MODULE 3rd party http_zip module
[ ] MEMC_MODULE 3rd party memc (memcached) module
[ ] SLOWFS_CACHE_MODULE 3rd party slowfs_cache module
[ ] SUPERVISORD_MODULE 3rd party supervisord module
[ ] UDPLOG_MODULE 3rd party udplog (syslog) module
安装完后,配置目录位于/usr/local/etc/nginx内,这个是freebsd的规则了,闭着眼睛都知道。主配置文件就是nginx.conf。
三、把php配置到nginx上
编辑nginx.con文件:
#vi /usr/local/etc/nginx/nginx.conf
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name;
include fastcgi_params;
}
设置Nginx的状态监控页面:
添加
location /status {
stub_status on;
access_log off;
}
启动php-fpm:
/usr/local/etc/rc.d/php-fpm start
启动nginx:
/usr/local/etc/rc.d/nginx start
在/usr/local/www/nginx目录中创建index.php,内容为
<?php
phpinfo();
?>
使用浏览器访问http://服务器IP/index.php进行测试
最后在/etc/rc.conf加入:
php_fpm_enable="YES"
nginx_enable="YES"
让nginx和php-fpm开机自启动
##
修改文件大小的限制:
vi /usr/local/etc/php.ini
假设你需要把文件的限制改为 12MB , 可以在php.ini 中修改以下的参数
upload_max_filesize = 12M ; (默认是2M )
max_execution_time = 300 ; ( 默认是 30 [seconds] )
post_max_size = 12M ; ( 默认是 8M )