1.把yaf-2.3.3.tgz下载到/root
#tar zxvf yaf-2.3.3.tgz
#cd yaf-2.3.3
2.找到phpize到目录
#whereis phpize
phpize: /usr/bin/phpize
3.执行phpize
#/usr/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
4.再执行一下命令
# ./configure – -with-php-config=/usr/local/php/bin/php-config
# make && make install
1.确定你安装好lnmp 然后备份一下nginx
cd ~
service nginx stop
mv /usr/local/nginx /usr/local/nginx18
2.安装Tengine (备注with前两个-)
cd ~
wget http://tengine.taobao.org/download/tengine-2.0.0.tar.gz
tar zxvf tengine-2.0.0.tar.gz
cd tengine-2.0.0
./configure –with-http_concat_module
make
make install
3.把以前的配置文件拷贝回来
mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.confbak
cp /usr/local/nginx18/conf/nginx.conf /usr/local/nginx/conf/nginx.conf
4.编辑/usr/local/nginx/conf/nginx.conf 的对应的Server中添加如下内容
location /static/ {
concat on; #启用concat函数
concat_unique off; #允许返回不同类型的文件内容(js,css同时合并)
concat_delimiter “\n”; #自动在返回每个文件内容的末尾添加换行符
concat_ignore_file_error off; #不要忽略所合并的文件不存在等错误
}
5.重启Tengine
service nginx start
6.测试,你的js和css可以这样写
<link rel="stylesheet" type="text/css" href="/static/css/??style.css,css.css"> <script type="text/javascript" src="/static/js/??jquery.js,slide.js"></script>
上一篇文章介绍了怎么安装Tengine 这一篇就介绍安装concat模块合并网站多个css和js请求
Tengine动态加载模块的编译安装方法,参考官方文档 http://tengine.taobao.org/document_cn/dso_cn.html
Tengine所有的HTTP功能模块,都可以在configure的时候,通过 –with-http_xxxx_module=shared 的形式编译为动态加载模块,如果不指定=shared 则会被静态编译到Tengine的核心中;安装动态加载模块用 make dso_install命令;
编译启用动态加载模块: mod_concat
大家都很熟悉nginx,是一个高性能的HTTP和反向代理服务器,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。而Tengine或许听说过的人不多,但它确实大名鼎鼎的淘宝网使用的HTTP服务器。它是在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。
目前Tengine最新的版本是2.0.0 集成nginx1.4.4的所有特性
wget -c http://tengine.taobao.org/download/tengine-2.0.0.tar.gz
tar zxvf tengine-2.0.0.tar.gz
cd tengine-2.0.0
./configure
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cp -r objs/nginx /usr/local/nginx/sbin/nginx
然后注释掉 /usr/local/nginx/conf/nginx.conf下的一些代码,如下
#location /status {
# stub_status on;
# access_log off;
#}
检查是否正常工作
/usr/local/nginx/sbin/nginx -t
如提示success则表示成功
然后杀掉nginx进程然后重启服务
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
/etc/init.d/nginx stop
/etc/init.d/nginx start
最后查看nginx版本号,正常情况应该提示Tengine/2.0.0
/usr/local/nginx/sbin/nginx -v
最新版本是2.1.0 但是这款只支持css合并,不支持js合并。所以我这里就用2.0.0
昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误 有的是502错误
经观察,发现大约30秒时超时,php.ini中执行时间配置已经是300秒:
写个程序测试
echo ‘aaa’;
set_time_limit(0);
sleep(40);
echo ‘aa’;
依然超时,可以确定set_time_limit这个函数没生效。
再查php-fcgi的配置php-fpm.conf,下边这个设置疑似有问题:
<value name=”request_terminate_timeout”>30s</value>
这个值修改到 0秒的是时候 是不限制。这样对服务器性能有损失。我设置的是900秒解决问题
Linux系统下 lnmp的集成环境
把 /usr/local/php/etc/php-fpm.conf 中的 request_terminate_timeout = 900 就可以了