2009年7月7日星期二

国内PHP开源建站程序一览

  国外的开源技术也影响和推动了国内开源程序的发展,上文我介绍的《国外优秀开源PHP建站程序一览》中,很多国外开源程序并不太符合中国人的使用习惯,而国内有一些厂家或个人也做了一些不错的产品,不少程序是提供源代码下载的,虽然有些在许可协议上和开源许可证有些出入,但其在使用上还是挺符合中国人的使用习惯,今天我就介绍一些国内的PHP“开源”建站程序。

  论坛:Discuz

  Discuz非常流行,也是中国地区最多用户使用的论坛程序,论坛搭建非常简单易用,使用风格符合中国人的口味。另一个流行的论坛程序是PHPWind

  SNS:Ucenter Home

  UCenter Home是采用PHP+MySQL构建的社会化网络软件(Social Network Software,简称SNS)。 通过 UCenter Home,建站者可以轻松构建一个以好友关系为核心的交流网络,用户可以使用迷你博客记录;方便快捷地发布日志、上传图片;与其好友们一起分享信息、讨论话题;了解好友最新动态。

  E-Commerce:ECSHOP

  ECSHOP是一款开源免费的网上商店系统,用户可以根据自己的商务特征对ECSHOP进行定制,增加自己商城的特色功能。另一个流行的网上商城系统是shopex

  点评:Modoer

  Modoer一款PHP点评系统,可针对多种行业进行点评,可以自由调控点评项目,类型,采用Web 2.0的建站方式,网站会员能让快速上手。

  Digg:PBDigg

  PBDigg是基于PHP+MYSQL的开源Digg社区资讯系统,融合了社会性标签、主题评论、Rss订阅等多种WEB2.0元素,是一个高效、快速的网站解决方案。

  Wiki:HDWiki

  HDWiki是专为中文用户设计和开发的开源、高效的中文百科建站解决方案,免费、易用、功能强大,和UCenter可无缝整合。

  RSS:IXNA

  IXNA是国内开源PHP新闻聚合程序,支持RSS多核心切换,默认支持lastrss、simplepie、magpierss,支持RDF、RSS、ATOM,支持智能识别。

  CMS:关于CMS的PHP产品很多,这里主要介绍下面三个。

  SupeSite

  SupeSite 是一套独立的内容管理系统(CMS),并且拥有对Discuz!论坛信息和UCenter Home个人空间信息聚合的功能,是一个不错的社区门户解决方案。

  DedeCMS

  DedeCMS是一个比较老的PHP CMS系统,很多早期的用户都是使用这个建立网站的。

  KingCMS

  KingCMS是一套简单易学,操作简单的开源内容管理系统(CMS),KingCMS分为PHP+MySQL和ASP+MSSQL/ACCESS两种语言版本的系统。

  最后是一次快讯,Twitter又无法访问了,估计XJ那里完事后可能会恢复,现在的解决方法在这里

2009年7月6日星期一

国外优秀开源PHP建站程序一览

  大量的PHP开源(开放源代码/Open Source)应用改变了这个世界,改变了互联网,以下我们总结从数据库到购物、博客等众多类型的开源PHP软件,供网站开发者们参考。

  博客:WordPress

  WordPress是使用PHP开发的著名博客平台,免费开源,功能强大,不仅仅用于博客搭建,还可以广泛应用于各类网络信息发布平台。

  论坛:phpBB

  phpBB是一种广泛流行的开源论坛软件,具有易于使用的管理面板和友好的用户安装界面,可以轻松地在数分钟内建立起一个论坛,功能上具有很高的可配置性,能够完全定制出相当个性化的论坛。

  CMS:Drupal

  Drupal是一个开源的内容管理系统(CMS)平台,拥有强大并可自由配置的功能,能支持从个人博客到大型社区驱动的网站等各种不同应用的网站项目。

  Wiki:MediaWiki

  MediaWiki是PHP语言写成开源Wiki引擎,全世界最大的Wiki项目维基百科就是使用MediaWiki引擎。

  Digg:Pligg

  Pligg是一套灵活的类似Digg的Web2.0 CMS系统,系统使用PHP开发,模仿了国外流行的DIGG系统。

  图像:Gallery

  Gallery 是一个非常有名的免费开源图库相册软件,基于 PHP 和 MySQL, PostgreSQL 等数据库。功能非常强大,有丰富的扩展可以下载,安装很简单,有很多插件可用。

  RSS:Gregarius

  Gregarius是一个RSS聚合程序,免费开源,具备不错的用户体验,易于操作和管理。可以把其当成RSS阅读器使用。

  电子商务:osCommerce

  osCommerce是一套由自由软件开发社团开发并维护的在线商店的解决方案,免费开源,并可以应用到任何的商业环境中,可以在短时间内生成一个功能强大的电子商务网站。

  广告:OpenX

  OpenX(原名phpAdsNew)是一个用PHP开发的广告管理与跟踪系统,适合各类网站使用,能够管理每个广告主拥有的多种任何尺寸横幅广告,按天查看,详细和概要统计并通过电子邮件发送报表给广告主。

  微博客:Laconica

  Laconica是一个开源的微型博客系统,也是一个Twitter克隆,可以实现Microblog的常用功能,国外不少微博客系统都是通过这个开源系统架设的。

  英文原文:Top Ten Open Source PHP Apps

2009年7月5日星期日

最新屏蔽百度快照的方法

  有时候,因为内容的更改或者隐私问题,我们往往不希望别人通过“百度快照”的方法查看自己网站的某一些网页,对于网站管理员来说,百度快照也分流了大量本属于网站的流量,为了增加网站的流量或者增强内容隐私,我以前曾经提供过一段将百度快照重定向到自己网站的方法。不过后来百度改变的快照算法,不从远端服务器获取JavaScript文件,因此先前介绍的那个屏蔽方法目前已经失效。

  现在我介绍一个新方法,原理也是大致相同,我们知道目前百度网页快照虽然不从远端服务器抓取JavaScript文件,还是依旧会从远端服务器抓起CSS文件,而通过一个技巧可以在CSS文件中实现网页重定向,从而控制百度快照中的网页,完全由我们控制该快照重定向到我们制定的任何网页地址。

  例如,如果百度快照中缓存的文件为style.css,那么我们在服务器上编辑这个文件,在CSS文件中加入以下语句,即可控制百度缓存快照重定向,从而实现屏蔽百度网页快照内容的功能。

body {onload:expression(location.href='http://www.williamlong.info/');}

  以上语句在IE浏览器下测试通过。理论上,根据这个方法,我们可以控制百度网页快照的内容重定向到任何一个我们指定的网址,甚至是第三方网站。为了实现网页的正常显示,百度快照屏蔽CSS的可能性会非常小。

  这个方法也可用于屏蔽Google等其他搜索引擎的网页快照。

2009年7月4日星期六

Z-Blog垃圾留言判定新方法

  现在的垃圾留言越来越智能,并且从留言内容几乎看不出来是垃圾留言,而大量的垃圾留言会导致文章可读性下降,并可能会被搜索引擎惩罚,经过一段时间的分析和思考,我发现一种判定垃圾留言的新方法,可以从一定程度提高垃圾留言的识别率。

  这种新方法是基于对留言者姓名的过滤,为了实现垃圾留言的功效,这类留言者的姓名通常具有一定的规律,比如姓名为“起重机”、“虚拟主机”、“代开发票”等用户的留言,几乎百分之百为垃圾留言,通过总结这类姓名的特点,并对其进行过滤,就可以提高识别垃圾留言的准确率。

  将下面几行代码加入到月光Z-Blog反垃圾留言过滤插件的Antispam_chkComment函数中,就可以实现增强型的垃圾留言识别,对于有垃圾留言倾向的评论,会自动转到留言审核界面,审核完成后留言才会显示。其中strFilter中是我总结的一些常见的垃圾留言特征字符串。

 Dim i
 Dim strAuthor
 Dim strFilter
 Dim strFilterWord
 strFilterWord= "电影,影院,影视,魔兽,英语,网站,电脑,地图,租房,论坛,营销,社区,nba,qq,seo,在线,赚钱,手机,聊天,兼职"
 strAuthor = objComment.Author
 strFilter = Split(strFilterWord, ",")
 For i = 0 To UBound(strFilter)
  If InStr (strAuthor, strFilter(i)) > 0 Then
   objComment.log_ID=-1-objComment.log_ID
   If objComment.Post Then
   End if
   If IsEmpty(Request.Form("inpAjax"))=False Then
    objComment.Content="您的评论因被怀疑为 Spam 而进入审核过程,请勿再次提交。"
    Call ReturnAjaxComment(objComment)
    Response.End
   End If
   Call ExitError("您的评论因被怀疑为 Spam 而进入审核过程,请勿再次提交。")
  End If
 Next

  另外,使用一些SQL语句也可查询出疑似留言,具体使用方法是,使用Access打开MDB数据库,点击数据库窗口左侧的查询,然后点新建,选择向导或设计视图,然后再视图菜单中选择“SQL视图”,就可以执行自己写好的SQL语句,下面是一些常用的SQL语句。


  按数量查看留言者留言频率

select comm_homepage,count(*) from blog_Comment group by comm_homepage having count(*)>10 order by count(*) desc

  留言网站你地址为单个网页的留言(通常只有SEO会这么干)

select * from blog_Comment where comm_homepage like '*.htm*'

  留言内容包含UBB的链接

select * from blog_Comment where comm_content like '*url*'

2009年7月2日星期四

Google Insights数据错误的证据

  终于找到了Google Insights数据错误的证据了,匿名用户曾经在Google Docs上指控,使用Google Insights工具可以发现有人在6月18日新闻联播节目前在北京地区刷关键字,导致Google“搜索建议”出现不雅词汇,现在,这个指控中最大的漏洞已经被发现,从而使得这个指控出现完全自相矛盾的地方,难以自圆其说。

  发现这个漏洞的工具依旧是Google Insights,匿名用户使用Google Insights在全球范围内搜索一些和“儿子”相关的不雅词汇,例如“儿子与情人”,得到的截图如下所示。 这张截图中显示,从10号开始到17号,有人在刷这个关键词,匿名用户指控刷这些关键词的来源地址是北京。但仔细看一下,我们会发现该曲线呈现“线性”增长和下降的趋势,并且在6月18号央视新闻之后搜索量不升反降,虽然这显然违背常理,我们姑且认为这是正确的。

搜索“儿子与情人”

Google Insights搜索“儿子与情人”(全球范围)

  接着,我们使用Google Insights再次搜索这个关键词,如“儿子与情人”,但把搜索区域限制在北京地区,就会得到下面这个曲线。

搜索“儿子与情人”

Google Insights搜索“儿子与情人”(北京地区)

  我们看到,这个单独在北京地区的Google Insights搜索曲线,和全球范围Google Insights搜索“儿子与情人”的数据有极大出入,北京地区的Google Insights数据呈现完整的曲线,6月17日以前的数据为0,6月18日出现大幅增长,并达到顶峰,与Google Trends的搜索曲线基本相同,北京拥有大量网络用户,并曾被匿名用户指责刷数据,但Google Insights这两个曲线,却明白无误的表明,这个指控呈现明显的自相矛盾,根本无法自圆其说,很明显,Google Insights对于该关键字搜索的全球数据真实性存在极大的疑问。

  这里面的真相到底是什么,恐怕也会成为一个不解之谜。

2009年7月1日星期三

Firefox 3.5正式版发布

  今天,世界第二大网络浏览器Firefox最新的3.5版正式对外公布,目前已在Mozilla服务器上提供下载。Firefox 3.5基于新版JavaScript引擎TraceMonkey和Gecko 1.9.1渲染平台,相比旧版本在性能、网络兼容性、易用性方面都取得了显著的提升。

  Firefox 3.5提供了70多种语言版本,包括简体中文和繁体中文,Firfox 3.5的一项关键功能是TraceMonkey JavaScript引擎,提高了浏览器的性能和稳定性,而速度则被认为是Firefox 3.5的一大亮点,改进了Gecko排版引擎,实现了更快的解析内容渲染等。此外,该版本提供的改进了隐私数据保护工具和隐私浏览模式也受到了广泛关注。

  此外,Firefox 3.5的其他亮点还包括基于HTML 5的音频和视频播放功能、离线缓冲,以及在网站内和网站间拖放对象的API,还增强了对CSS的支持。

  点击下载:Firefox 3.5正式版(简体中文)

2009年6月30日星期二

IIS下PHP的ISAPI和FastCGI比较

  在Windows IIS 6.0下配置PHP,通常有CGI、ISAPI和FastCGI三种配置方式,这三种模式都可以在IIS 6.0下成功运行,下面我就讲一下这三种方式配置的区别和性能上的差异。

  1、CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。

  2、ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。

  在Windows Server 2003的IIS6下配置ISAPI方式的PHP,配置方法是,在IIS的“WEB服务扩展”中,添加一个新的WEB服务扩展,程序后缀为PHP,ISAPI程序为php5isapi.dll,然后再“环境变量”-“系统变量”中增加变量名PHPRC,数值为php.ini的路径,在Internet信息服务管理器中,选择网站或应用程序的根目录,打开目录属性页(右键选择“属性”),再选择“主目录”。点击“配置”按钮,选择“映射”Tab页。点击“添加...”,在“可执行文件”设为: c:phpphp5isapi.dll,扩展名设为.php,选择“确认文件是否存在”,然后“确定”保存设置。重启服务器即可完成PHP的配置。

  3、FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等。

  FastCGI已经集成于IIS7,也支持IIS6,在IIS6中的安装方法可参见微软的官方文档,我这里简单翻译一下。

  先点这里下载一个32位的FastCGI extension for IIS,然后将其安装,安装后的文件应该放到system32inetsrv目录下。

  之后打开system32inetsrv目录,执行下面的语句,其中c:php为你的PHP目录,可以修改为其他数值。

  cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"c:phpphp-cgi.exe"

  在Internet信息服务管理器中,选择网站或应用程序的根目录,打开目录属性页(右键选择“属性”),再选择“主目录”。点击“配置”按钮,选择“映射”Tab页。点击“添加...”,在“可执行文件”设为: c:windowssystem32inetsrvfcgiext.dll,扩展名设为.php,选择“确认文件是否存在”,然后“确定”保存设置。

  修改php.ini文件,增加如下语句:

  fastcgi.impersonate = 1
  cgi.fix_pathinfo = 1
  cgi.force_redirect = 0

  之后打开system32inetsrv目录,执行以下语句:

  cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:10000
  cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

  最后,配置c:php目录的安全性,使得IIS_WPG组对于这个目录有读取和执行的权限。

  这时候,基于FastCGI的PHP就成功配置到IIS6上了。

  不过根据我自己的测试,FastCGI的性能比ISAPI的好像高不了多少,不知道Windows Server 2008下的IIS7是不是会好一些。这里是微软提供的基于内置FastCGI的IIS7安装PHP的方法。