[转]编译Lighttpd1.4.22增加h264模块

此文转自http://www.bwcsc.net/?q=node/483

目前已经有不少视频网站使用了H264(.Mp4)格式的视频文件,本文介绍如何在lighttpd-1.4.22下编译模块来支持Mp4文件的拖动功能

1、创建下载目录

             

2、下载lighttpd-1.4.22

   

3、下载H264视频模块

       

 

4、拷贝源文件

 

5、修改Make文件
       修改lighttpd-1.4.22/src/Makefile.am文件


下面增加如下代码

保存退出
#vi Makfile.in 查找/mod_flv
mod_flv_streaming_la_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_mod_flv_streaming_la_OBJECTS = mod_flv_streaming.lo
mod_flv_streaming_la_OBJECTS = $(am_mod_flv_streaming_la_OBJECTS)
mod_flv_streaming_la_LINK = $(LIBTOOL) –tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) –mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(mod_flv_streaming_la_LDFLAGS) $(LDFLAGS) -o $@
下面增加以下内容
mod_h264_streaming_la_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_mod_h264_streaming_la_OBJECTS = mod_h264_streaming.lo moov.lo
mod_h264_streaming_la_OBJECTS = $(am_mod_h264_streaming_la_OBJECTS)
mod_h264_streaming_la_LINK = $(LIBTOOL) –tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) –mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(mod_h264_streaming_la_LDFLAGS) $(LDFLAGS) -o $@
查找下一下mod_flv(在VI模式下按n键)
SOURCES = ….的$(mod_flv_streaming_la_SOURCES) 后面增加
$(mod_h264_streaming_la_SOURCES)
DIST_SOURCES = …的$(mod_flv_streaming_la_SOURCES) \后面增加
$(mod_h264_streaming_la_SOURCES) \
lib_LTLIBRARIES = $(am__append_1) mod_flv_streaming.la后面增加_h264_streaming.la如下
lib_LTLIBRARIES = $(am__append_1) mod_flv_streaming.la mod_h264_streaming.la \
在mod_flv_streaming_la_SOURCES = mod_flv_streaming.c
mod_flv_streaming_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_flv_streaming_la_LIBADD = $(common_libadd)
下面增加
mod_h264_streaming_la_SOURCES = mod_h264_streaming.c moov.c
mod_h264_streaming_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_h264_streaming_la_LIBADD = $(common_libadd)
在mod_flv_streaming.la: $(mod_flv_streaming_la_OBJECTS) $(mod_flv_streaming_la_DEPENDENCIES)
        $(mod_flv_streaming_la_LINK) -rpath $(libdir) $(mod_flv_streaming_la_OBJECTS) $(mod_flv_streaming_la_LIBADD) $(LIBS)
下面增加
mod_h264_streaming.la: $(mod_h264_streaming_la_OBJECTS) $(mod_h264_streaming_la_DEPENDENCIES)
        $(mod_h264_streaming_la_LINK) -rpath $(libdir) $(mod_h264_streaming_la_OBJECTS) $(mod_h264_streaming_la_LIBADD) $(LIBS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod_flv_streaming.Plo@am__quote@
下面增加
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mod_h264_streaming.Plo@am__quote@
保存退出
6、编译安装

 

查看/usr/local/lighttpd/lib目录下是否存在mod_h264_streaming.la、mod_h264_streaming.so文件,如果存在,则表示安装成功
7、修改配置文件
       #cd /usr/local/lighttpd/lighttpd
       #mkdir etc
       #cd /back/soft/lighttpd-1.4.22/doc
       #cp lighttpd.conf /usr/local/lighttpd/etc
       #cd /usr/local/lighttpd/etc
       #vi lighttpd.conf 查找/ server.modules 更改增加红字部分如下:
server.modules              = (
#                               “mod_rewrite”,
#                               “mod_redirect”,
#                               “mod_alias”,
                                “mod_access”,
#                               “mod_cml”,
#                               “mod_trigger_b4_dl”,
#                               “mod_auth”,
#                               “mod_status”,
#                               “mod_setenv”,
#                               “mod_fastcgi”,
#                               “mod_proxy”,
#                               “mod_simple_vhost”,
#                               “mod_evhost”,
#                               “mod_userdir”,
#                               “mod_cgi”,
#                               “mod_compress”,
#                               “mod_ssi”,
#                               “mod_usertrack”,
#                               “mod_expire”,
#                               “mod_secdownload”,
                                “mod_flv_streaming”,
                                “mod_h264_streaming”,
#                               “mod_rrdtool”,
                                “mod_accesslog” )
server.port = 80
flv-streaming.extensions = ( “.flv” )
h264-streaming.extensions = ( “.mp4” )
保存退出
8、增加启动脚本
       #cd /back/soft/lighttpd-1.4.22/doc
       #cp rc.lighttpd.redhat /etc/init.d/lighttpd
#vi /etc/init.d/lighttpd
修改第25,29行如下所示
24 if [ -z “$LIGHTTPD_CONF_PATH” ]; then
25        LIGHTTPD_CONF_PATH= “/usr/local/lighttpd/etc/lighttpd.conf”
26 fi
27
28 prog=”lighttpd”
29 lighttpd=”/usr/local/lighttpd/sbin/lighttpd”
30 RETVAL=0
保存退出
/etc/init.d/lighttpd start 启动服务
ps -ef|grep lighttpd 查看是否启动成功,如果出现下面信息,表示启动成功
root     26231     1 0 02:19 ?        00:00:00 /usr/local/lighttpd264/sbin/lighttpd -f /usr/local/lighttpd264/etc/lighttpd.conf

常见问题解决办法

[root@linux01 lighttpd-1.4.22]# make
make  all-recursive
make[1]: Entering directory /root/src/lighttpd-1.4.22'
Making all in src
make[2]: Entering directory
/root/src/lighttpd-1.4.22/src’
Makefile:867: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.
make[2]: Leaving directory /root/src/lighttpd-1.4.22/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
/root/src/lighttpd-1.4.22′
make: *** [all] Error 2
错误解决办法
vi /back/soft/lighttpd-1.4.22/src/Makefile
将867行的$(mod_fastcgi_la_LINK) -rpath $(libdir) $(mod_fastcgi_la_OBJECTS) $(mod_fastcgi_la_LIBADD) $(LIBS)前面的空格删除,按一下Tab键,保存.重新编译通过

根据文章标题关键字添加相应的版权保护信息[原创]

一段时间来都是使用MagicPostsView Plugin 这个插件来添加的我blog里的版权信息,有兴趣的朋友可以到这里下载,但这个插件还是不能满足我的个人需要,因为我只希望我自己原创的技术文章加上相应的信息,看来只能自己想想办法了

既然wordpress的theme都是php写的,自然可以通过代码来实现,既然是通过文章标题的内容里的关键字,其实就是需要判断关键字是否存在,如果存在则添加相应的信息,如果不存在则不用加入信息。用到的php中的strpos()函数,因为单个文章调用的是single.php这个文件,所以只需要在这个文件中做做手脚就行了。下面看我的代码

<?php
 $grand_parent = get_page($post->post_parent);
 $post_link = get_permalink($grand_parent);
 $post_title=get_the_title($post->post_parent);
 $findstr=iconv(‘gb2312′,’utf-8′,'[原创]’);
 $pos=strpos($post_title,$findstr);
 if ($pos) {
  $isorg01='<p>’.'<B>’.iconv(‘gb2312′,’utf-8′,’本文作者:深夜的蚊子’).'</B>’.'<br />’;
  $isorg02='<B>’.iconv(‘gb2312′,’utf-8′,’本文链接:’);
  $isorg03='<B>’.iconv(‘gb2312′,’utf-8′,’版权所有。转载时请以链接形式注明作者和原始出处及本声明,谢谢’).'</B>’.'</p>’;
  $post_url='<a href="’.$post_link.’"title="’.$post_title.’">’.$post_link.'</a>’.'</B>’.'<br />’;
 }  
?>

以上代码只需要添加到页面的开头部分就行,这部分是用来判断文章中是否含有关键字的,我自己预设的是判断是否含有“[原创]”字样。各位可以根据自己的需求做相应的调整

以上代码添加完毕之后,就可以在你需要的地方添加调用了,我加在了发布日期那行信息的下面了,代码如下

<?php echo $isorg01 ?>
<?php echo $isorg02.$post_url ?>
<?php echo $isorg03 ?>
有了这段代码之后,就会根据上面的判断来进行输出显示了。
到此,我所做的调整就算完毕了,上传覆盖后就可以查看修改结果了,本人php说平有限,欢迎高手拍砖。

wordpress简单中文化[原创]

最近一直关注wordpress的东西,而且很多人现在都在用wordpress的作为自己的blog,看到别人美化的页面真的羡慕及了,决定自己也研究研究,然后做些适合自己的东西出来,苦于自己不会php,前进的步伐真的是不算太快,一步步来吧。

先来说说我今天简单汉化的一点点东西,可能在一些高手来看这不算什么,我全当给自己的总结了,先上图一张

我就认为上面红色框里的东西看着不舒服,而且我认为是可以汉化的,我使用的theme是statement,喜欢的人可以去http://www.blogohblog.com/download/statement.zip这里下载。

这个主题的主页面是index.php这个文件,随便使用哪个文本编辑软件打开就好,首先在里面添加如下内容

<?php 
     $nocomments=iconv("gb2312","utf-8","没有评论"); 
     $onecomment=iconv("gb2312","utf-8","1条评论"); 
     $morecomment=iconv("gb2312","utf-8","%条评论");
?>
然后找到第10行的位置,内容如下

<div class="allinfos"><span class="date"><?php the_time(‘F jS, Y’) ?></span> | <span class="comments"><?php comments_popup_link(‘No Comments’, ‘1 Comment’, ‘% Comments’); ?> </span> | <span class="category">Posted in <?php the_category(‘, ‘) ?></span> <!– by <?php the_author() ?> –></div>

首先从上面可以看到发表作者是被注释掉的,去掉注释就可以显示发表的作者。我的改动如下

<div class="allinfos"><span class="date"><?php the_time(‘F jS, Y’) ?></span> | <span class="comments"><?php comments_popup_link($nocomments, $onecomment, $morecomment); ?> </span> | <span class="category"><?php echo iconv(‘gb2312’, ‘utf-8’, ‘发表在’)?> <?php the_category(‘, ‘) ?></span> <?php echo iconv(‘gb2312’, ‘utf-8’, ‘作者:’)?><?php the_author() ?> </div>

改好后上传覆盖原文件,最后的显示结果就是下面这个样子的

下面来解释一下上面的代码

在网上查,如果页面是utf-8格式的,那gb2312的中文是没有办法显示的,所以必须经过转码才可以,所以我在index.php的最上方定义了三个函数用于之后的调用

对于iconv("gb2312","utf-8","没有评论")就是说把“没有评论”字符从gb2312转成utf-8,这样页面上对于中文就不会是乱码了。

到此这部分简单的汉化工作就做好了。