返回爱好者网站首页
 
商城 博墅 论坛
首 页 | 学 院 | 数 码 | 硬 件 | 装机DIY | 台式机 | 办 公 | 数字家电 | 视频教程 | Flash小游戏 | 桌面壁纸 | 精彩专题 | 活动
  数码数码相机 手机 MP3/MP4 笔记本 GPS 硬件CPU 主板 存储 音频 显示器 显卡 投影机 机箱/电源 外设 术语 学院资讯 系统 软件 安全 网络 办公 设计 程序 问答
装机DIY家用 网吧 办公 娱乐 2000元 4000元 6000元 8000元 DIY技巧 答疑 台式机入门 家用 办公 娱乐 购买技巧 答疑 办公打印机 多功能一体机
学院首页 | 新闻资讯 | 操作系统 | 软件应用 | 创意设计 | 程序开发 | 办公技巧 | 网络应用 | 个人安全 | 素材推荐 | 故障问答
CFan新视界 | 软件专区 | Vista专区 | XP专区 | 站长专区 | 专栏作者 | 精彩专题
· PhotoShop CS · Dreamweaver · Flash · ASP · Excel · Word · CorelDRAW · 3D Max · PhotoShop 7.0 · 常用软件
当前位置: 首页 学院 站长专区 建站技巧

架设Nginx+Php Web服务器

1000元免费加油卡,点击就送 很酷很个性 我的QQ空间留言最最炫  

2009-07-15 作者: 来源:百度空间
·抠图——孔雀美女
·胆小者勿进
·教你打造蝶蝎美人
·正在消失的美女
·亲手给MM加幅眼镜
·合成绝美的天上人间
·古堡中的梦幻女孩
·合成密林深处的公主
·墙壁上的剥落女孩
·森林里的蝴蝶公主
  

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

本文是W3CGROUP在成功架设Nginx+Php Web服务器之后的一个总结,成功设置Nginx开启多域名多站点,并且不会出现502 Bad Gateway错误!

本文测试环境如下:

系统环境

Linux version 2.6.9(CentOS release 4.7(Final))

软件环境

nginx-0.6.35.tar.gz
当前稳定版: Nginx 0.6.35 (2009年1月26日)
官方Wiki:http://wiki.nginx.org
官方下载:http://sysoev.ru/nginx/nginx-0.6.35.tar.gz

php-5.2.9.tar.gz
官方下载:http://www.php.net/get/php-5.2.9.tar.gz/from/this/mirror

php-5.2.9-fpm-0.5.10.diff.gz
官方下载:http://php-fpm.anight.org/downloads/archive/

mysql-5.1.34.tar.gz

libiconv-1.13.tar.gz

libmcrypt-2.5.8.tar.gz

mcrypt-2.6.8.tar.gz

mhash-0.9.9.9.tar.gz

Nginx0.6.35+Php5.2.9所有相关安装包下载 http://www.w3cgroup.com/code/nginx_php.rar


安装步骤

一、 编译安装PHP5.2.9所需的支持库

tar zxvf libiconv-1.13.tar.gz
cd libiconv-1.13/
./configure --prefix=/usr/local
make
make install
cd ../

tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../

tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1

tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../


二、编译安装MySQL 5.1.34扩展库

/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
tar zxvf mysql-5.1.34.tar.gz
cd mysql-5.1.34/
./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase
make && make install
chmod +w /usr/local/webserver/mysql
chown -R mysql:mysql /usr/local/webserver/mysql
cd ../

MySql的安装此处就省略


三、编译安装PHP(FastCGI模式)

tar zxvf php-5.2.9.tar.gz
gzip -cd php-5.2.9-fpm-0.5.10.diff.gz | patch -d php-5.2.9 -p1
cd php-5.2.9/
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist /usr/local/webserver/php/etc/php.ini
cd ../


四、修改php-fpm配置文件

rm -f /usr/local/webserver/php/etc/php-fpm.conf
vi /usr/local/webserver/php/etc/php-fpm.conf

输入以下内容:

<?xml version="1.0" ?>
<configuration>
<section name="global_options">
<value name="pid_file">/usr/local/webserver/php/logs/php-fpm.pid</value>
<value name="error_log">/usr/local/webserver/php/logs/php-fpm.log</value>
<value name="log_level">notice</value>
<value name="emergency_restart_threshold">10</value>
<value name="emergency_restart_interval">1m</value>
<value name="process_control_timeout">5s</value>
<value name="daemonize">yes</value>
</section>
<workers>
<section name="pool">
<value name="name">default</value>
<value name="listen_address">127.0.0.1:9000</value>
<value name="listen_options">
<value name="backlog">-1</value>
<value name="owner"></value>
<value name="group"></value>
<value name="mode">0666</value>
</value>
<value name="php_defines">
<value name="sendmail_path">/usr/sbin/sendmail -t -i</value>
<value name="display_errors">1</value>
</value>
<value name="user">www</value>
<value name="group">www</value>
<value name="pm">
<value name="style">static</value>
<value name="max_children">128</value>
<value name="apache_like">
<value name="StartServers">20</value>
<value name="MinSpareServers">5</value>
<value name="MaxSpareServers">35</value>
</value>
</value>
<value name="request_terminate_timeout">0s</value>
<value name="request_slowlog_timeout">0s</value>
<value name="slowlog">logs/slow.log</value>
<value name="rlimit_files">51200</value>
<value name="rlimit_core">0</value>
<value name="chroot"></value>
<value name="chdir"></value>
<value name="catch_workers_output">yes</value>
<value name="max_requests">500</value>
<value name="allowed_clients">127.0.0.1</value>
<value name="environment">
<value name="HOSTNAME">$HOSTNAME</value>
<value name="PATH">/usr/local/bin:/usr/bin:/bin</value>
<value name="TMP">/tmp</value>
<value name="TMPDIR">/tmp</value>
<value name="TEMP">/tmp</value>
<value name="OSTYPE">$OSTYPE</value>
<value name="MACHTYPE">$MACHTYPE</value>
<value name="MALLOC_CHECK_">2</value>
</value>
</section>
</workers>
</configuration>

五、创建www用户组及www用户

/usr/sbin/groupadd www
/usr/sbin/useradd -g www www


六、编译安装Nginx

tar zxvf nginx-0.6.35.tar.gz
cd nginx-0.6.35/
默认安装:
./configure
make && make install
默认情况下,Nginx 会被安装在 /usr/local/nginx。通过设定编译选项,你可以改变这个设定。

指定编译选项安装,如:
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../

七、创建fcgi.conf文件

rm -f /usr/local/webserver/nginx/conf/fcgi.conf
vi /usr/local/webserver/nginx/conf/fcgi.conf

输入以下内容:

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;

fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;


八、编辑Nginx配置文件

rm -f /usr/local/webserver/nginx/conf/nginx.conf
vi /usr/local/webserver/nginx/conf/nginx.conf

输入以下内容:

user www www;
worker_processes 8;
error_log /usr/local/webserver/nginx/logs/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events {
use epoll;
worker_connections 51200;
}

http {
include mime.types;
default_type application/octet-stream;
charset utf-8;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 8 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;

#limit_zone crawler $binary_remote_addr 10m;
#多个站点设置,站点文件夹必须放在Nginx的html目录,否则不支持多站点
server {
listen 80;
server_name www.v-ec.com;
root /usr/local/webserver/nginx/html/www.v-ec.com;
index index.php index.html;

location ~ .*\.(php|php5)?$ {
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}

location ~ .*\.(js|css)?$ {
expires 6h;
}

log_format veclog '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log logs/vec.log veclog;
}
#多个站点设置,站点文件夹必须放在Nginx的html目录,否则不支持多站点
server {
listen 80;
server_name www.w3cgroup.com;
root /usr/local/webserver/nginx/html/www.w3cgroup.com;
index index.php index.html;

location ~ .*\.(php|php5)?$ {
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}

location ~ .*\.(js|css)?$ {
expires 6h;
}

log_format w3cclog '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log logs/w3c.log w3clog;
}
}

九、配置开机自动启动Nginx + PHP

vi /etc/rc.local

在末尾增加以下内容:

ulimit -SHn 51200
/usr/local/webserver/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx


十、优化Linux内核参数

vi /etc/sysctl.conf

在末尾增加以下内容:

net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

使配置立即生效:

/sbin/sysctl –p

做到这里,可以reboot重启Linux了,不出意外的话应该可以顺利开启Nginx

平滑重启Nginx

Ps aux | grep nginx
找到Nginx的master process,假如为:5800,然后kill
Kill –HUP 5800

平滑重启Php

/usr/local/webserver/php/sbin/php-fpm restart

php-fpm的其他命令:start | stop | quit | restart | reload | logrotate

本文为w3c group成功测试Nginx+php结果之总结,希望可以帮助到其他在尝试使用Nginx+Php的朋友!原创文章,转载请注明出处

网站ICP自主备案操作
· 十招让内容页流量翻番
· 火车头采集器使用教程
· 给新手谈谈如何做网站
· 几款PHP CMS试用小析
· apache Rewrite使用方
· 不花一分钱网店开张
· 浅谈DIV+CSS网页制作
· 谈谈网站设计的10个要
· 我的七步建站思路浅析
· 做个会赚钱的个人站长
热点推荐



· 用完电脑一定要洗把脸
· 电脑一族必喝的健康饮料
· 炎热夏天 多吃三类蔬菜
· 卖什么都有,卖脸你见过吗
· 无聊老师的17则爆笑语录
· photoshop快捷键大全
· 《功夫熊猫》经典台词!
· 近距离接触中国击剑队
· 分享网络推广的八种方法
站外资源推荐
无标题文档
绝色空姐汇聚的航线
评论
评论排行
做个会赚钱的个人站长
个人还能搞什么站?
如何在自家电脑开网店
给新手谈谈如何做网站
域名抢注自动提交程序详解
如何有效的提交网站到Dmoz目录
现在做什么主题的站可以赚到钱?
选择CMS一定要慎重
论坛一个我失败的地方
网站地图及制作方法

笔名

匿名发表

验证码:

查看评论
* 评论只代表网友个人观点,与电脑爱好者网站无关,不代表电脑爱好者网站也同意此观点。
 
热点专题
 
· 用DW打造自己的Blog
· 09年广州车展
· 狂人马云与阿里巴巴
· 开个网店做老板
· Web服务器架设攻略
· 三大浏览器应用技巧
· 建站四步曲
· 月入上万的程序员们
· 如何推广新网站及赚钱
· 手机铃声制作攻略
· 系统安装步步通
· 新手学电脑
热点文章
 
傲游使用技巧 地址栏图标的妙用 一个校园网站的成长历程
让你操作Windows于弹指之间 利用Google地图驾车环游世界
看看在线操作系统什么样

歌曲下载快到飚 搜狗音乐盒大体验

QQ专区
 
站长专区
 
·做ADSENSE的英文站月薪几千
·再谈:什么样的网站能赚钱
·江礼坤:手把手教你策划网站
·教育类网站如何赚钱
·十招让内容页流量翻番
· 个人网站建设到底怎样赚钱
·月赚三四千元 网上开店秘笈
·站长如何有效推广网站
·一个校园网站的成长历程
·如何防止自己的站被人采集
论坛博墅
 
·玩转Vista加速与优化
·十招学会软件的破解
·Ubuntu 安装的一小点心得
·手动去除迅雷广告
·揭秘黑客真身
·QQ秘籍让你成为QQ高手
·硬件检测软件逐个看
·劲舞团不能倒闭的八大理由
·2月5日 单机游戏下载合集
·国内网页设计网站大全
无标题文档
快速链接:站长专区 Vista专区 XP专区 风行软件专区 电脑必备软件 免费在线小游戏 免费在线视频教程 学院专题 数码专题 硬件专题

爱好者网站版权所有 未经授权禁止复制或建立镜像
Copyright(C) cfan.com.cn,All rights reserved
京ICP证010182号