北大青鸟设计培训:PHP应用中常用的9大缓存技术?
1 Hadoop的安装注意事项
最近云计算在中国极为火爆,但看了云计算的那些云山雾罩的概念后,实在让人望而却步。还好不是所有的东西都摸不着头脑,Hadoop就是实实在在的技术之一。不才最近仔细品读了Hadoop的基础资料,特别是如何部署Hadoop的相关技术文档,发现其中有许多不为人注意的东西,在此整理一下。Hadoop 开发者入门专刊(pdf) 是目前比较权威的文档;有什么与Hadoop相关的技术问题也可以到专业的Hadoop技术论坛上去讨论。
11 Hadoop 集群的组成成份
Hadoop的核心功能有两个:HDFS与MapReduce 。与HDFS相关的服务有NameNode 、SecondaryNameNode 及DataNode ;与MapReduce 相关的服务有JobTracker 和TaskTracker 两种。
Hadoop集群中有两种角色:master与slave,master又分为主master与次master。其中:
主 master同时提供NameNode 、SecondaryNameNode 及JobTracker 三种服务;次master只提供SecondaryNameNode 服务;所有slave可以提供DateNode 或TaskTracker 两种服务。
12 Hadoop有三种集群方式可以选择:
Local (Standalone) Mode(无集群模式)
Pseudo-Distributed Mode(单机集群模式)
Fully-Distributed Mode(多机集群模式)
一个Hadoop集群由多台电脑组成,每台电脑可作为一种或多种角色存在。
当使用Pseudo-Distributed Mode创建Hadoop集群时,一台电脑同时完成主master和slave两种角色的任务。在Fully-Distributed Mode下,如果只有一台电脑作为master,则此电脑完成主master的任务;如果有多台电脑作为master存在,则第一台电脑完成主 master的任务,其它电脑完成次master的任务。
13 实际部署Hadoop集群
在实际操作中,集群中的电脑名字都是通过/etc/hosts文件指定的。集群中主master是核心,担任这种角色的电脑在其/etc/hosts中保存有集群中所有电脑的名字。次 master与所有的slave只负责与主master联系,所以在这些计算机上的/etc/hosts中只要保存自身和主master的计算机别名即可。
集群模式的选择主要靠主master上$HADOOP_HOME /conf /目录下的masters与slaves两个文件配置完成。如果需要Pseudo-Distributed Mode,则masters与slaves两个文件的内容同时指向主master电脑名字即可。如果需要Fully-Distributed Mode,则masters文件中第一行记录的是主master电脑名字,其它行记录的是次master电脑名字。无密码SSH 登录
启动Hadoop的方式是在主master上调用下面的命令:
$HADOOP_HOME /bin/start-allsh
此调用过程中,Hadoop依次启动以下服务:
在主master上启动NameNode 服务;
在主master上启动SecondaryNameNode 服务;
在次master上启动SecondaryNameNode 服务;
在所有slave上启动DataNode 服务;
在主master上启动JobTracker 服务;
在所有slave上的TaskTracker 服务。
部署Hadoop过程中Hadoop需要启动服务,在此需要注意以下几点:
(1) 启动NameNode 与JobTracker 服务不需要SSH授权;
(2) 需要通过SSH登录之后才能启动SecondaryNameNode 、DataNode 以及TaskTracker 服务,因此:因为需要启动SencondaryNameNode服务,所以要为主master提供SSH授权;因为需要启动SencoddaryNameNode 服务,所以要为所有的次master提供SSH授权;因为需要启动DataNode 和TaskTracker 服务,所以要为所有的slave提供SSH授权。总而言之,要为Hadoop集群中的所有计算机提供SSH授权。
为什么要提供无密码SSH登录方式呢?为的是图省事儿。试想在启动 Hadoop集群过程中,要手动输入每一台电脑的SSH密码将是一件多么烦人的事!SSH授权的方法在这里不做详细的描述。无密码SSH登录技术也是相对成熟的技术。但有一个环节需要注意,那就是文件的访问权限问题。
表现为:
Linux系统中$HOME目录下的ssh目录为用户所有,权限必须为700(只有用户自己可以全权访问);
ssh目录下的授权文件“authorized_keys”为用户所有,权限必须为644。本节有关部署Hadoop应该注意的事项介绍完毕。
2 三种安装模式的说明
21 本地安装模式
HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streamingaccess)文件系统中的数据。当前最新版本是hadoop0201。下面就hadoop0201为蓝本,介绍在UbuntuLinux910下hadoop本地安装的方法。
支持的平台:
Linux,可作为开发和产品部署的平台;
Windows,可作为开发平台。
事先需要的软件:
1JavaTM16x,必须安装,建议选择Sun公司发行的Java版本;
2ssh必须安装,并保证sshd运行,hadoop将以ssh进行通讯;
3如果是windows,则需要装Cygwin,用以支持shell命令。
本地模式安装步骤:
1将hadoop安装包解压缩到某目录下;
2修改conf/hadoop-envsh文件,exportJAVA_HOME=那行设置正确的JAVA_HOME位置,当然如果事先在操作系统已经set完JAVA_HOME,可以忽略此步骤;
Hadoop本地模式安装完了
测试一下运行效果:
$mkdirinput
$cpconf/xmlinput
$bin/hadoopjarhadoop--examplesjargrepinputoutput'dfs[a-z]+'
$catoutput/
这个示例程序是hadoop自带的,用于把conf下的xml文件拷贝到input目录下,并且找到并显示所有与最后一个参数的正则表达式相匹配的行,output是输出文件夹。本节关于Hadoop本地安装介绍到这里,希望你有所收获。
22 伪分布式模式
下面就hadoop0201为蓝本,介绍在UbuntuLinux910下hadoop伪分布安装的方法。支持的平台:
Linux,可作为开发和产品部署的平台;
Windows,可作为开发平台。
事先需要的软件:
1JavaTM16x,必须安装,建议选择Sun公司发行的Java版本;
2ssh必须安装,并保证sshd运行,hadoop将以ssh进行通讯;
3如果是windows,则需要装Cygwin,用以支持shell命令。
安装步骤
1将hadoop安装包解压缩到某目录下;
2修改conf/hadoop-envsh文件,exportJAVA_HOME=那行设置正确的JAVA_HOME位置
3修改conf/core-sitexml,改为:
<configuration>
<property>
<name>fsdefaultname</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>fsdefaultname</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
4修改conf/hdfs-sitexml,改为:
<configuration>
<property>
<name>dfsreplication</name>
<value>1</value>
</property>
</configuration>
<configuration>
<property>
<name>dfsreplication</name>
<value>1</value>
</property>
</configuration>
5修改conf/mapred-sitexml,改为:
<configuration>
<property>
<name>mapredjobtracker</name>
<value>localhost:9001</value>
</property>
</configuration>
<configuration>
<property>
<name>mapredjobtracker</name>
<value>localhost:9001</value>
</property>
</configuration>
6设置本机ssh本机无密码
先测试一下,输入命令sshlocalhost,如果提示密码,则需要进行以下操作:
$ssh-keygen-tdsa-P''-f~/ssh/id_dsa
$cat~/ssh/id_dsapub>>~/ssh/authorized_keys
7格式化namenode:
$bin/hadoopnamenode-format
8启动Hadoop:
$bin/start-allsh
至此,hadoop伪分布模式安装完毕!
23 完全分布式模式
Hadoop完全分布模式安装步骤(这里的步骤只让hadoop能跑,不带任何调优步骤):
1下载并解压hadoop到集群中某台服务器目标目录。
2配置/etc/hosts文件
21确认集群中所有服务器均有hostname,并记录IP
22每一台服务器的/etc/hosts文件里配置hostname和IP对应关系,加快解析速度。
3配置SSH免密码登陆
31每台服务器上运行:
$ssh-keygen-tdsa-P''-f~/ssh/id_dsa
$cat~/ssh/id_dsapub>>~/ssh/authorized_keys
32把各台服务器的~/ssh/authorized_keys文件内容合并到一个总的authorized_keys文件;
33把那个总的authorized_keys文件scp到每台服务器,替换原有的authorized_keys文件;
34互相SSH对方机器,确认SSH登陆不需要密码
4配置各台服务器时间,确保每台服务器时间相同;Hadoop完全分布模式安装过程中还要配置Hadoop。
5配置hadoop
51配置conf/hadoop-envsh文件。配置JAVA_HOME一行,配置正确的路径。
52配置conf/core-sitexml文件
<configuration>
<property>
<name>fsdefaultname</name>
<value>hdfs://host:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>fsdefaultname</name>
<value>hdfs://host:9000</value>
</property>
</configuration>
注:这里的host必须改为对应的namenode的hostname
53配置conf/hdfs-sitexml文件,如果不修改使用默认设置也可以。
54配置conf/mapred-sitexml文件
<configuration>
<property>
<name>mapredjobtracker</name>
<value>localhost:9001</value>
</property>
</configuration>
<configuration>
<property>
<name>mapredjobtracker</name>
<value>localhost:9001</value>
</property>
</configuration>
注:这里的host必须改为对应的namenode的hostname
6配置conf/slaves和conf/master文件。 slaves文件里写datanode的hostname或IP,master里写namenode、secondarynamenode的hostname或IP,每行写一个服务器,以#开头的行视为注释。
7分发hadoop
直接通过scp,把hadoop整个目录复制到各台服务器的相同目录即可。
8格式化hadoop的namenode
执行命令:$bin/hadoopnamenode-format
9启动hadoop
执行命令:$bin/start-allsh
至此,Hadoop完全分布模式安装完毕,通常启动到所有服务器完全识别出来需要一定的时间(我这里是5分钟左右),要耐心等待,在namenode节点上,打开浏览器,输入http://localhost:50070/即可看到整个hadoop情况,JobTracker情况可以看每一个服务器的http://localhost:50030/。
3 Hadoop环境搭建
JDK的安装:要求必须安装jdk1507以上的版本。
31 硬件环境
我们采用了3台机器来构建,都安装的是RedHat412-42系统,并且都有一个名为“mingjie“的帐号,如下:
主机名称:hdfs1ip:1921680221功能:NameNode,JobTracker
主机名称:hdfs2ip:1921680227功能:DataNode,TaskTracker
主机名称:hdfs3ip:1921680228功能:DataNode,TaskTracker
重点:修改3台机器的/etc/hosts,让彼此的主机名称和ip都能顺利解析
127001localhost
192168037hdfs1
192168043hdfs2
192168053hdfs3 内容来自dedecms
32 安装java环境
每台机器都要安装java环境,我们的路径统一为“/opt/modules/jdk16“,并添加到系统环境变量sudovi/etc/profile
JAVA_HOME=/opt/modules/jdk16
PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin
CLASSPATH=$JAVA_HOME/jre/lib/rtjar:$JAVA_HOME/lib/toolsjar
exportJAVA_HOME
33 下载系统
下载hadoop0171,将hadoop解压到/home/mingjie/,建议最好也将hadoop的目录添加到环境变量里面去:
HADOOP_HOME=/home/mingjie/hadoop-0171#这是hadoop的主目录
exportHADOOP_HOME
HADOOP_CONF_DIR=$HADOOP_HOME/conf#这是hadoop的配置文件目录
exportHADOOP_CONF_DIR
HADOOP_LOG_DIR=/home/mingjie/hadoop-0171/log#存放运行日志目录
exportHADOOP_LOG_DIR
exportPATH=$PATH:$HADOOP_HOME/bin。Hadoop环境搭建过程中还需要安装SSH。
34 安装ssh,并生成公钥和私钥
安装ssh,并生成公钥和私钥运行ssh-keygen-trsa,根据屏幕提示直接选择“回车”,会在用户目录~/ssh/产生两个文件,id_rsa,id_rsapub
cat~/ssh/id_dsapub>>~/ssh/authorized_keys
以上配置完成后,执行一下sshlocalhsot,确认你的每台机器都可以使用ssh 织梦内容管理系统
35 复制SSH的key
将master服务器上的authorized_keys的内容加到slave两台机器的authorized_keys文件中。让master也可以不需要密码访问2台slave服务器。
Sudo scpauthorized_keyshdfs2:/home/mingjie/ssh/
sudoscpauthorized_keyshdfs3:/home/mingjie/ssh/
ssh hdfs2
ssh hdfs3
36 修改主机和从机文件
我们要修改hadoop的[conf/masters]、[conf/slaves]这2个文件:
Master设置(<HADOOP_HOME>/conf/masters):hdfs1
Slave设置(<HADOOP_HOME>/conf/slaves):hdfs2hdfs3
37 修改配置文件
修改[conf/hadoop-envsh]:
exportJAVA_HOME=/opt/jdk160_03
38 修改配置文件
修改[conf/hadoop-sitexml],这里只是几个常用的属性配置,有关hadoop的性能优化调整,需要研究hadoop-defaultxml。
39 hadoop的整体环境拷贝
然后将hadoop的整体环境拷贝到hdfs2、hdfs3上面去
scp-r/home/mingjie/hadoop0171hdfs2:/home/mingjie/hadoop0171
scp-r/home/mingjie/hadoop0171hdfs3:/home/mingjie/hadoop0171
310 名称节点实始化
在hdfs1这个namenode上面格式化一个新的分布式文件系统HDFS,就是hadoop-sitexml文件中指定的hadooptmpdir路径
<HADOOP_HOME>/bin/hadoopnamenode–format
到此大致上就完成了hadoop环境搭建
311 系统启动与停止
启动hadoop:<HADOOP_HOME>/bin/start-allsh
停止hadoop:<HADOOP_HOME>/bin/stop-allsh
说明:
(1)执行启动Hadoop进程后,
在master服务器会启动3个java进程,分别的NameNode,SecondNameNode,JobTracker,在LOG目录下会产生2个文件,分别对应NameNode的运行日志和JobTracker的运行日志,
在slave服务器会启动2个java进程,分别为DataNode,TaskTracker,,在LOG目录下会产生2个文件,分别对应DataNode的运行日志和TaskTracker的运行日志,可以通过查看日志分析hadoop的启动是否正确。
(2)通过IE浏览分布式文件系统中的文件
访问http://hdfs1:50030可以查看JobTracker的运行状态。
访问http://360quan-1:50060可以查看TaskTracker的运行状态。
1把织梦程序下载到电脑端,根据需求选择下载版本
2将下载的程序解压,等到文件dedecms-57,打开upload文件夹,直接将里面的文件全部压缩
3用ftp工具链接到网站空间
4直接把压缩文件上传到网站的根目录后进行解压
5访问自己域名,点击同意即可完成网站的搭建
一、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。
此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()要运行的代码$content=Ob_get_contents();将缓存内容写入html文件Ob_end_clean();二、数据缓存顾名思义,就是缓存数据的一种方式;比如,商城中的某个商品信息,当用商品id去请求时,就会得出包括店铺信息、商品信息等数据,此时就可以将这些数据缓存到一个php文件中,文件名包含商品id来建一个唯一标示;下一次有人想查看这个商品时,首先就直接调这个文件里面的信息,而不用再去数据库查询;其实缓存文件中缓存的就是一个php数组之类;Ecmall商城系统里面就用了这种方式;三、查询缓存其实这跟数据缓存是一个思路,就是根据查询语句来缓存;将查询得到的数据缓存在一个文件中,下次遇到相同的查询时,就直接先从这个文件里面调数据,不会再去查数据库;但此处的缓存文件名可能就需要以查询语句为基点来建立唯一标示;按时间变更进行缓存就是对于缓存文件您需要设一个有效时间,在这个有效时间内,相同的访问才会先取缓存文件的内容,但是超过设定的缓存时间,就需要重新从数据库中获取数据,并生产最新的缓存文件;比如,我将我们商城的首页就是设置2个小时更新一次。
四、页面部分缓存该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于ob_get_contents的方式实现,也可以利用类似ESI之类的页面片段缓存策略,使其用来做动态页面中相对静态的片段部分的缓存。
该种方式可以用于如商城中的商品页;五、Opcode缓存首先php代码被解析为Tokens,然后再编译为Opcode码,最后执行Opcode码,返回结果;所以,对于相同的php文件,第一次运行时可以缓存其Opcode码,下次再执行这个页面时,直接会去找到缓存下的opcode码,直接执行最后一步,而不再需要中间的步骤了。
比较知名的是XCache、TurckMMCache、PHPAccelerator等。
六、按内容变更进行缓存这个也并非独立的缓存技术,需结合着用;就是当数据库内容被修改时,即刻更新缓存文件;比如,一个人流量很大的商城,商品很多,商品表必然比较大,这表的压力也比较重;我们就可以对商品显示页进行页面缓存;当商家在后台修改这个商品的信息时,点击保存,我们同时就更新缓存文件;那么,买家访问这个商品信息时,实际问的是一个静态页面,而不需要再去访问数据库;试想,如果对商品页不缓存,那么每次访问一个商品就要去数据库查一次,如果有10万人在线浏览商品,那服务器压力就大了;七、内存式缓存提到这个,可能大家想到的首先就是Memcached;memcached是高性能的分布式内存缓存服务器。
一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
它就是将需要缓存的信息,缓存到系统内存中,需要获取信息时,直接到内存中取;比较常用的方式就是key_>value方式;connect($memcachehost,$memcacheport)ordie("Couldnotconnect");$memcache->set('key','缓存的内容');$get=$memcache->get($key);//获取信息>八、apache缓存模块apache安装完以后,是不允许被cache的。
厦门IT培训http://wwwkmbdqncn/认为如果外接了cache或squid服务器要求进行web加速的话,就需要在htttpdconf里进行设置,当然前提是在安装apache的时候要激活mod_cache的模块。
建给自己玩?还是给别人访问?
给自己:你需要一个集成的服务器程序如wamp即可。
给别人访问:你需要域名(域名解析到服务器IP)、备案、php+mysql空间或服务器。
然后你需要上传dedecms到网站根目录,安装dedecms(其实很多程序都可以使用,建议新手搞个论坛玩玩先,如discuz或者phpwind),安装完成后到后台设置即可!
如何上传:http://wwwzz1314com/viewthreadphptid=33&extra=page%3D1
程序使用:http://wwwzz1314com/forumdisplayphpfid=11
通过这个系统,可以方便的治理,发布,维护网站的内容,而不再需要硬性的写HTML代码或手工建立每一个页面。CMS有什么优点?可以应用在什么地方?在CMS领域,在各个层面都有极多地优点,在政府上网,学校上网,商业门户,信息港,地方门户网,等各种设计到文章发布和用治理的网站建设中。 可以针对各种内容进行分类和发布治理。可以针对不同类型的用户发布不同的内容,可以将各种内容进行分类。
可以任意定义内容类型与多媒体支持。
用户接口可编辑性强,可以根据客户要求订做用户接口和风格模块。
可分布式治理。站点治理和维护人员无须集中在同一个办公室,甚至都不用在同城,全球任何一个有网络的地方都可以让您实现高效率的治理。
可开发性强,可以针对不同的需求进行专门的开发。
轻易使用。任何一个人在经过十个小时左右的专业培训后就可以很轻松的治理并运作整套系统。
假如您的公司需要制作一个网站来介绍和推广您的产品,要进行网上客户支持或者开通上网购物等服务的话。一套继续了在线购物功能的CMS系统将可以成为非常不错的选择。同时各种类型的新闻以及文章发布,个人或者团体的weblog,在线小区,广告,下载,投票都可以选用CMS系统。CMS系统本身就是一个内容治理系统(英文全名:Contents Management System),在所治理的内容中,可以包括文章,,投票,广告,下载,多媒体文件,甚至可以嵌入论坛,留言板。对于文章可以进行分类治理,可以对同类型标题进行索引,根据要害字来搜索这个栏目中的相关主题的文章。对于的治理可以做成相册,也可以做成展览性质的专题站。在下载方面,可以通过FTP治理来进行下载,也可以使用普通常见的HTTP用户名加密访问进行下载,而CMS本身也支持下载治理,对各种属性的文件,流媒体都可以进行治理。社区论坛,留言板等需要进行用户治理的功能,可以通过CMS与论坛系统结合后实现,而CMS本身并非一个强大的用户治理系统,内容治理就是内容治理。相比之下,假如需要强大的用户治理功能,不如选择一套在用户治理上面比较专业的论坛。
1、下载安装包,登录织梦官网或百度搜索DEDECMS官方网站,目前最新版本为V57。
2、上传系统源文件,把压缩包内的upload目录下的文件上传到你的虚拟主机空间(或者服务器)。
3、运行安装程序,直接访问你的网站域名,系统自动跳转到安装向导页面。
4、许可协议,选中我已经阅读并同意此协议点击继续,这里系统跳转到环境检测页面。
5、环境检测,点击继续进入参数配置。
6、参数配置-数据库设置,填写连接信息,数据表前缀建议不要用默认的dede_。
7、参数配置-管理员初始密码,设置后台超级管理员的用户名和密码,注意一定要修改,默认都是admin可以说就是一种漏洞。
8、参数配置-网站设置及测试体验数据,注意这里不选择体验数据。
9、安装模块,系统自动安装选择的功能模块,例如最近加入的畅言评论模块。
10、安装完成,可以登录后台看看效果
11、登录后台,输入刚才设置的超级管理员账户和密码。
12、安装及检查完毕。
DEDECMS很容易入门,用的人多,漏洞也多,所以安装完之后要进行安全性设置。
求采纳。纯手打。
大体试用了一下三个系统,得出了一个比较粗浅的结论:
1、phpcms:
phpcms自2007版本开源以后才开始引起广泛关注,但这次也是头一次研究。用了几天,有了一点初步的印象。(以下以2007版为例,2008版尚未正式推出)
粗看起来,phpcms 2007是三者中最为完善的,各项功能考虑的很细致,导致进了新手进了后台先要晕半天才行。各项功能,比如UNIX系统的权限、模版修改、广告、商城、信息、单网页。。。。都做的相当的完备了。
发表文章的关键字、作者、来源、自动远程保存等等,都做的不错。但是,phpcms发表文章的摘要,似乎是只能自动截取,不能手工设置,灵活性欠佳。
发表的文章可以通过关键字来索引相关贴,做的不错。
支持通行证方式进行论坛和其它系统的整合,可以进行正向和反向两种方式的整合。但是文档说的不太清楚,研究了半天才成功。但是反向整合pw501登录后自动跳转不回来。
phpcms 2007的后台安排的太琐碎,看的头晕。发一篇文章也要晕半个钟头,而且首页的更新莫不清规律,幻灯片老半天不更新。
phcms尽管功能很强大,但是却缺少一样重要的东西:可视化的模版工具,这也是php168和dedecms共同的缺点。在这方面,他们甚至不如刚刚起步的DiyPage好,DiyPage只是一个刚刚具备了雏形的CMS系统,却拥有一个很方便的后台可视化界面设计工具,即使是菜鸟也可以轻松设计界面(虽然灵活性没那么强大,但是足够你用了)。
phpcms 2007整体以频道为依据进行组织,即使你不想用频道,哪也得用,这个已经由不了你了 。所以如果仅仅是一个比较简单的网站,也用上一个频道,看起来够别扭的,这是phpcms 2007最大的缺点,不过看了phpcms 2008beta2发现,phpcms终于解除了这个垃圾限制。
发现phpcms的广告功能似乎不完善,一个广告位定义了两个广告,不能自动轮换,总是显示第一个。
phpcms虽然实现了模块化,但是不管你用不用,一大堆模块稀里呼噜就装上了,看起来很不爽,也不直观。
phpcms虽然是很早就是商业化运作的软件,然后开发效率却是不高,新版本屡屡跳票,影响了它的产品形象,让开源以来积累的人气和一些拥趸大失所望。然而最近贴上了六间房以后,资金应该是没有压力了,新版本也开始浮出水面,2008beta1已经发布了,可惜问题多多。
phpcms 2008 beta2 在 MySQL4 上还是有使用问题,不过比beta1强一些,beta1直接就安装不了,不知道正式版是否会正式放弃MySQL4。
phpcms 2008beta2看上去不错,新功能令人振奋的,界面清爽。以前一团乱麻的后台界面已经打扫干净了。phpcms 2008的标签采用了中英文混合的方式,对菜鸟来说更加容易上手,比较新颖。另外,beta2好像是实现了类似php168的可视化模版中的标签设置方式,虽然不是可视化的设计模版,总归可以自定义一些元素样式了。不过这个beta2版也还是顶多算是个预览版,BUG极多,功能不全。如果准备用phpcms的话,怕是还要大大的等几天才行。
另外,phpcms官方论坛对免费版的支持很不到位,伤了很多粉丝的心。
2、dedecms
51应该是dedecms正式商业化运作以后推出的第一个版本吧?以前的dedecms个体作坊式的发展,由于作者兼职时间和精力不足,导致发展缓慢,新版本频频跳票,引起广大粉丝的强烈不满,甚至导致柏拉图和dedecms用家之间的语言冲突。然而dedecms在商业化运作以后,新版本的发布周期大大缩短,产品功能不断改进,界面美化了很多,人气和用户数量大大增长了,现在看发展势头不错。
dedecms的根目录是最简单的,只有几个文件,比以上两个都强多了,其实这样不仅看起来清爽,维护起来也方便,值得表扬
dedecms的频道非常费解,看起来只有频道模型,要增加频道就要添加模版文件有点费解,仔细研究发现,这个dedecms其实和php168的方式差不多,任何栏目都可以添加子目录,绑定域名,其实就和频道是一个意思,栏目和频道可以互相转换。
dedecms的通行证只支持反向整合,就是dedecms可以用服务端的用户数据登录。其实所谓整合,一般也就是这样的。论坛用整站用户数据的情况恐怕极为少见,对论坛管理也不利。
但是dedecms的通行证整合,需要修改论坛文件,不明白为啥要这样,是因为论坛的通行证功能还不完善吗?
dedecms的广告管理用起来比较麻烦,要先定义标签,然后手工在模板中插入。好像模版上没预定义好广告位置,实在是太不应该了。。。。相当于手动操作,不符合当今历史潮流啊。而且大家常用的广告自动轮换功能,也没有实现。
试用发现,dedecms有时还有一些小毛病,比如远程附件功能,有时发现无法自动转存到本地。另外,在模块数量上,dedecms也无法和php168和phpcms相比,只有文章、下载、、Flash等基本的功能,不知道dedecms 2007发布以后能否有所改观
dedecms的相关文章、热点文章等功能,用了静态生成的方式直接写入到了HTML文件中,这样在生成HTML后,无法自动更新,需要经常手工重新生成全部HTML才能更新相关文档和热点文档。但是大量的重复生成所有HTML文件效率太低下了,这方面dedecms不如php168最新添加的相关文章功能,是用JS方式实现的,不需要更新HTML就能自动索取最新的相关文章。但是使用JS方式也存在服务器效率的问题。
dedecms的首页、列表页、还有文章页都使用了单独的模板,没有使用header和footer模板,这样的好处是可以产生各种风格的页面(允许首页、列表页、内容页使用不同的风格),但是缺点是修改添加头部和底部广告、导航条的时候,相当费劲,要一个一个模板的修改。而且dedecms的版权声明字段设置太小,只有250字节,写不进去多少内容,顶多能添加个计数器就不错了。
dedecms起步就用了类似XML标签方式,而且官方还提供了Dreamweaver的插件来识别标签,应该说在国内是比较独到的。但是这种方式也需要新手一定的时间才能适应。同时,dedecms一直缺乏比较完善的文档,也进一步加大了菜鸟上手的难度。
dedecms最大的问题就是没有提供类似Diypage的可视化设计方式,因为标签比较难于上手,对新手来说做模板是很头疼的问题。
dedecms 51比40功能有了很多进步,增加DIGG功能,还有类似分类信息之类的功能都实现了。不过也有退步,比如关键词、相关帖功能都严重退步了,发帖也很不方便,而且dedecms在商业版本和免费版本之间做功能和代码区分,也自然会在免费版本上有所缩水。
dedecms商业化发展以后,目前出现的问题是免费版的技术支持做的不太到位,比phpcms强不了多少。
3、php168
php168关注很久了,却一直没怎么用过。当年整合论坛的30版给俺很深的印象,可惜论坛没有坚持下去。最近php168的开发工作很强劲,推出了N多模块,让人看的眼晕。
看过了phpcms的后台,再进php168的后台,感觉舒服多了,简洁多了,但是功能还可以。
php168的频道不是强制的,好像是栏目和频道可以转换,灵活性比phpcms强多了
关键字功能没有实现相关贴功能,不爽(新版本已经增加了,用JS方式实现的动态调用)。
php168一直不是用通行证实现整合论坛,这方面做的不好,灵活性欠佳。需要CMS和论坛安装在同一个数据库才行。
首页的标签设置,php168提供了一个可视化的工具,可以直接在上面设置标签,修改标签属性,这方面做的比phpcms强多了。虽然不能设计主页模板,但是可以方便的修改首页模板中元素的内容和显示方式,对菜鸟来说比较不错。dedecms的标签提供(或者公布)的属性比较少,想定制样式是比较麻烦的,目前可能是需要直接用PHP语句来修改。
但是要实现广告功能,还是要像dedecms一样,先定义标签,然后手工修改模版,有点太麻烦了,汗。另外,好像也没实现广告自动轮换功能()。
php168实现了模块化,可以一个一个的装,看起来比phpcms清爽多了
php168页面模板也是使用了标签方式,但是模板代码好像是类似phpwind的方式(这不奇怪,php168的作者本来就是从phpwind插件开发开始的),代码和模板的分离程度比较差,这个东西其实是个双刃剑,因为用php代码方式,灵活度是最大的,也不用像dedecms一样,标签难以上手,扩展困难;但是缺点也很大,就是不懂编程的人士难以上手,特别是美工和程序的分离不彻底(php168的官方模版就不如dedecms漂亮,不知道是不是这个原因)。
php168比dedecms多了一个可视化的首页标签定制功能,能设置首页元素的显示内容,显示方式,这是比dedecms略强了一些,有总比没有强啊。
因为php168研究的比较少,其它功能没仔细测试过,就不多讲了。总体来说,如果php168能稍加完善,其实是一个相当不错的整站程序。
0条评论