ngnix 编译
先安装:
apt-get install g++
apt-get install g++
apt-get install build-essential
一般已经安装了
在网上下载以下的包。后面我把这些包上传到csdn资源里,以后就不用找了。
nginx-1.2.3.tar.gz :应用服务器主程序
nginx_mod_h264_streaming-2.2.7.tar.gz :MP4流媒体支持模块。
openssl-1.0.1c.tar.gz :openssl库
pcre-7.9.tar.gz :perl兼容的正则表达式库模块
zlib-1.2.3.tar.gz :liunx下的JFFS文件系统制作工具
yamdi-1.9.tar.gz :为flv文件添加关键帧,才能实现拖动播放
我已经打包好了在csdn:
我把nginx-1.2.3.tar.gz 换成了最新稳定版本nginx-1.8.0.tar.gz
下载后我把这些包统一放在了 /主文件夹/software/nginx文件夹下
其实安装这些包,无非就是解压,配置,编译,安装这几个部分。
切换到nginx目录
administrator :~$ cd ~/software/nginx
因为安装一些包需要root权限,我习惯先切换到root权限。
administrator :~/software/nginx$ sudo su
安装zlib过程
1.解压zlib
administrator :~/software/nginx# tar xzvf zlib-1.2.3.tar.gz
2.切换到zlib目录
administrator :~/software/nginx# cd zlib-1.2.3
3.配置 包安装目录,配置后,包会安装到usr/local/zlib目录下,方便以后管理
administrator :~/software/nginx/zlib-1.2.3# ./configure --prefix=/usr/local/zlib
4.编译
administrator@ubuntu:~/software/nginx/zlib-1.2.3# make
5.安装
administrator@ubuntu:~/software/nginx/zlib-1.2.3# make install
我习惯把编译和安装合并
administrator@ubuntu:~/software/nginx/zlib-1.2.3# make && make install
其他软件类似
安装pcre过程
administrator@ubuntu:~/software/nginx# tar xzvf pcre-7.9.tar.gz
administrator@ubuntu:~/software/nginx# cd pcre-7.9
administrator@ubuntu:~/software/nginx/pcre-7.9# ./configure --prefix=/usr/local/pcre
administrator@ubuntu:~/software/nginx/pcre-7.9# make && make install
安装openssl-1.0.1c过程
administrator@ubuntu:~/software/nginx# tar xzvf openssl-1.0.1c.tar.gz
administrator@ubuntu:~/software/nginx# cd openssl-1.0.1c
administrator@ubuntu:~/software/nginx/openssl-1.0.1c# ./config --prefix=/usr/local/openssl
administrator@ubuntu:~/software/nginx/openssl-1.0.1c# make && make install
安装nginx_mod_h264_streaming-2.2.7.tar.gz
直接解压即可,
administrator@ubuntu:~/software/nginx# tar xzvf nginx_mod_h264_streaming-2.2.7.tar.gz在这个时候,修改nginx_mod_h264_streaming-2.2.7的源代码:修改ngx_http_streaming_module.c,注释掉
if (r->zero_in_uri)
{
return NGX_DECLINED;
}
这一段。
如果不修改,后面nginx编译会报错
出现“POD document had syntax errors at /usr/bin/pod2man line 69. make
rm /usr/bin/pod2man
#安装nginx
添加用户组groupadd www
添加用户 useradd -g www www
administrator@ubuntu:~/software/nginx# tar xzvf nginx-1.2.3.tar.gz
administrator@ubuntu:~/software/nginx# cd nginx-1.2.3
administrator@ubuntu:~/software/nginx/nginx-1.2.3# ./configure --add-module=../nginx_mod_h264_streaming-2.2.7 --with-pcre=../pcre-7.9 --with-zlib=../zlib-1.2.3 --with-http_ssl_module --with-openssl=../openssl-1.0.1c --user=www --group=www --prefix=/usr/local/nginx --with-http_flv_module --with-http_stub_status_module --with-http_mp4_module --with-cc-opt=-O3
administrator@ubuntu:~/software/nginx/nginx-1.2.3#make && make install
make[1]: *** [objs/addon/src/mp4_reader.o] 错误 1
# vim objs/Makefile (修改objs/Makefile文件, 去掉其中的”-Werror”), 然后就能够正常编译了.上面nginx已经安装成功,那么我们就运行该服务器把,因为指定了nginx安装目录在/usr/local/nginx目录下,那切换到该目录
administrator@ubuntu:~/software/nginx/nginx-1.2.3# cd /usr/local/nginx/sbin
administrator@ubuntu:/usr/local/nginx/sbin # nginx -c /usr/local/nginx/conf/nginx.conf
在火狐浏览器中输入localhost就可以看到
的字样。成功了。
nginx安装好了,但还没结束,我是搭建流媒体服务器,还需要继续,
安装yamdi-1.9.tar.gz,为flv文件添加关键帧,才能实现拖动播放
administrator@ubuntu:~/software/nginx# tar xzvf yamdi-1.9.tar.gz
administrator@ubuntu:~/software/nginx# cd yamdi-1.9
administrator@ubuntu:~/software/nginx# make && make install
使用方法:yamdi -i input.flv -o out.flv
给input.flv文件 添加关键帧,输出为out.flv文件
Nginx安装完成之后安装路径在/usr/local/nginx。
administrator@ubuntu:~/$ cd /usr/local/nginx/conf
因为nginx.conf是只可读的,执行添加修改权限。
administrator@ubuntu:/usr/local/nginx/conf$ chmod a+w nginx.conf
用vi编辑nginx.conf文件
administrator@ubuntu:/usr/local/nginx/conf$ vi nginx.conf
修改nginx.conf配置文件,添加MP4支持。在server配置中添加如下配置即可
location ~ \.flv { flv; } location ~ \.mp4$ { mp4; } vi执行命令esc,:wq保存退出。
基本上已经设置完毕,但是此时我们测试的时候还需要一个支持拖拽播放的flash播放器,开源的JW Player就可以实现这样的功能,
下载链接:
rar文件默认大不开,可以安装unrar。
sudo apt-get install unrar
安装好后,就可以打开rar包了
下载播放器后,上传到上面设置的/usr/local/nginx/html/flv_file/目录下,闭关把flv视频文件也放到该目录下!
root@ubuntu:/home/administrator/下载# cp player.swf /usr/local/nginx/html
启动nginx后测试:
说明: #我的ip是192.168.1.60
#player.swf是我的JW Player播放器
#http是表示居于http分发方式
#test1.flv是我的flv视频文件
播放大文件的时候,画面全是黑的,不知道什么情况,以后在研究。
ngnix 启动脚本
把以下脚本保存为nginx文件放入/etc/init.d/nginx
然后可以通过
/etc/init.d/nginx start 命令启动nginx /etc/init.d/nginx stop 命令停止nginx /etc/init.d/nginx restart 命令重启nginx
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx DAEMON=/usr/local/nginx/sbin/$NAME CONFIGFILE=/usr/local/nginx/conf/$NAME.conf PIDFILE=/usr/local/nginx/logs/$NAME.pid SCRIPTNAME=/etc/init.d/$NAMEset -e
[ -x "$DAEMON" ] || exit 0do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running" }do_stop() {
kill -INT `cat $PIDFILE` || echo -n "nginx not running" }do_reload() {
kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload" }case "$1" in
start) echo -n "Starting $DESC: $NAME" do_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" do_stop echo "." ;; reload|graceful) echo -n "Reloading $DESC configuration..." do_reload echo "." ;; restart) echo -n "Restarting $DESC: $NAME" do_stop do_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2 exit 3 ;; esacexit 0
nginx 开机自启动
vi /etc/rc.local
加入一行 /etc/init.d/nginx start 保存并退出,下次重启会生效。