FreeOZ论坛

标题: 请教建立网站的方案 [打印本页]

作者: key    时间: 8-5-2009 18:54
标题: 请教建立网站的方案
我现在打算给一个单位建立他们的网站/网络应用系统,提供下面的功能:

1. 内容发布和管理(CMS)
2. 一个在线论坛(BBS)
3. 在线视频播放(FLV播放器的集成)
4. 一个依附论坛的用户blog(Weblog)

特性要求:
1. 24 x 7运行
2. 300并发用户访问
3. 国际化支持

应该还有其他功能,我还在考虑中。我现在打算用下面的平台进行系统的搭建:
1. Joomla!
2. Discuz!
3. PostgreSQL/MySQL
4. CentOS 5.2

我自己在php方面只是入门水平。Java会好一些。不过用Joomla的话估计真正开发php的可能性并不大。

大家有什么意见和建议,欢迎批评并指导。谢谢
作者: coredump    时间: 8-5-2009 19:15
Drupal!
作者: stgeorge    时间: 8-5-2009 19:21
为什么选择 centos? 一般都用ubuntu, debian做企业级的东西。
推荐使用joomla.
或者discuz+supersite
作者: key    时间: 8-5-2009 19:31
原帖由 stgeorge 于 8-5-2009 18:21 发表
为什么选择 centos? 一般都用ubuntu, debian做企业级的东西。
推荐使用joomla.
或者discuz+supersite


centos还好吧,我对redhat系列的东西比较熟,对debian系列的就一般般了。
ubuntu似乎更象desktop系统,升级太快,一定做不了企业应用。
如果选用desktop系统来做,我会选fedora,因为熟悉。

discuz!我用得很少,我担心国际化问题搞不好。supersite暂时没用过。

我打算是LAMPP + Joomla! + 论坛模块
作者: justinli79    时间: 8-5-2009 20:09
django
作者: ubuntuhk    时间: 8-5-2009 20:17
标题: 回复 #4 key 的帖子
做国际化不要考虑discuz和supesite,没有英文方面的支持。

论坛和blog,看你是看中哪方面的功能,国际化的论坛软件可以考虑phpBB和vbullietn,blog当然是Wordpress比较受欢迎。

如果重blog,可以考虑Wordpress+SimplePress plugin,参考:
http://themehybrid.com/support/topic/best-wordpress-forum
http://simplepressforum.com/support-forum/spf-version-4/

OS采用CentOS没有任何问题,我也不用ubuntu做服务器,ubuntu我觉得更适合做desktop用。

在线视频(如果是FLV是否不需要特别集成播放器,只要做好界面,用Flash可以直接播放?)和CMS我没有经验,听其他同学介绍。
作者: ritz    时间: 8-5-2009 21:12
中国的公司还是澳洲的公司?

澳洲的可以选 drupal + fluxbb 或者phpbb

CMS的东西如果不是现成的功能就能用的话,都有一点学习曲线的,drupal/joomla都是
作者: bg1pdq    时间: 8-5-2009 21:21
操作系统用 centos 或者 debian 都可以, ubuntu 不是一个好的选择。

joomla 性能更好,wordpress 在大访问量时,会有一些问题。
作者: gdzack    时间: 8-5-2009 21:30
joomla 支持的插件多,drupal就自己写PHP吧。如果楼主不想学PHP,joomla是个不错的选择。
作者: stgeorge    时间: 8-5-2009 23:44
提醒一句,如果你选择joomla,涉及到二次开发,就比较麻烦。我现在就碰到了这个问题。对joomla的学习曲线比较长。不过,选那个都是这样。 另外一个选择,用现成的框架cakePhp,codeigniter 自己写,也挺麻烦的。但比较好debug。
作者: oldqin    时间: 9-5-2009 00:36
这个需求当然是用Drupal了,弄几个模块配置一下基本功能就都全了
作者: key    时间: 9-5-2009 00:53
原帖由 ubuntuhk 于 8-5-2009 19:17 发表
做国际化不要考虑discuz和supesite,没有英文方面的支持。


国际化可能不单单涉及到中/英双语,可能涉及到更多。不过暂时先只考虑中/英两个版本。

论坛和blog,看你是看中哪方面的功能,国际化的论坛软件可以考虑phpBB和vbullietn,blog当然是Wordpress比较受欢迎。


weblog可能只是一个bonus,不是太重要。如果选用joomla来做基础平台,我打算只是采用合适的plugin来做就算了。

在线视频(如果是FLV是否不需要特别集成播放器,只要做好界面,用Flash可以直接播放?)和CMS我没有经验,听其他同学介绍。

在线视频我之前印象中见过一个open source的server,我找找笔记应该能找到。
作者: key    时间: 9-5-2009 00:55
原帖由 oldqin 于 8-5-2009 23:36 发表
这个需求当然是用Drupal了,弄几个模块配置一下基本功能就都全了


我手上暂时没有Drupal的资料。
事实上我现在最担心的是Joomla!过于强大,带来一些后期维护的问题。
我的意思是说,我担心这个系统交付后,用户自己怎样加入新的内容的问题。

是不是需要我加入一些专门的新闻发布模块,还是本身就自带了?
事实上我不希望用户看到太复杂的东西,如果通过权限管理等可以让用户
只看到最基础的编辑框,应该就好了。
作者: key    时间: 9-5-2009 00:57
原帖由 stgeorge 于 8-5-2009 22:44 发表
提醒一句,如果你选择joomla,涉及到二次开发,就比较麻烦。我现在就碰到了这个问题。对joomla的学习曲线比较长。不过,选那个都是这样。 另外一个选择,用现成的框架cakePhp,codeigniter 自己写,也挺麻烦的 ...


如果用Java我就一点也不担心这个问题。
但似乎成熟的Java CMS平台我印象中没有,至少象Joomla!这样的平台我没有见过。
作者: key    时间: 9-5-2009 00:58
原帖由 bg1pdq 于 8-5-2009 20:21 发表
操作系统用 centos 或者 debian 都可以, ubuntu 不是一个好的选择。

joomla 性能更好,wordpress 在大访问量时,会有一些问题。


joomla的性能哪里能看到相关资料?我需要给客户一个比较official的资料。
作者: ritz    时间: 9-5-2009 02:16
http://drupal.org/cases
http://drupal.org/success-stories

http://buytaert.net/drupal-vs-joomla-performance
http://www.alldrupalthemes.com/b ... nce-comparison.html
作者: ritz    时间: 9-5-2009 02:17
IBM有个Drupal的教程
http://www.ibm.com/developerworks/ibm/library/i-osource5/
作者: ubuntuhk    时间: 9-5-2009 02:28
原帖由 key 于 8-5-2009 23:55 发表


我手上暂时没有Drupal的资料。
事实上我现在最担心的是Joomla!过于强大,带来一些后期维护的问题。
我的意思是说,我担心这个系统交付后,用户自己怎样加入新的内容的问题。

是不是需要我加入一些专门的新闻 ...


动态的内容是不是主要就是新闻,如果是的话,我觉得没有必要搞太复杂的CMS,否则后期的维护可能真的很头疼。
作者: key    时间: 9-5-2009 10:49
原帖由 ritz 于 9-5-2009 01:16 发表
http://drupal.org/cases
http://drupal.org/success-stories

http://buytaert.net/drupal-vs-joomla-performance
http://www.alldrupalthemes.com/b ... nce-comparison.html


非常感谢!very impressive
作者: key    时间: 9-5-2009 10:50
原帖由 ubuntuhk 于 9-5-2009 01:28 发表


动态的内容是不是主要就是新闻,如果是的话,我觉得没有必要搞太复杂的CMS,否则后期的维护可能真的很头疼。


是的,这是我一直对joomla有所保留的原因
作者: stgeorge    时间: 9-5-2009 11:44
你可以先自己安装一个joomla和drupal,先自己进行一下技术评估。应该很好安装的,如果碰到问题,可以来问我,一起商量。
我个人觉得joomla比drupal的资料,Plugin和社区更繁荣一点。(不权威,仅供参考。)所以我一般都选择joomla。如果有人,有好的理由,我也愿意尝试一下drupal.
其实,最麻烦的是,如果你碰到bug,就要不得不去自己查joomla的源码。而且如果需要二次开发,就很麻烦。
看你的需求,我觉得,你很有可能需要二次开发。因为等你一上线,所有的需求就马上出现。(什么,blog要和CMS有关联,flv要和cms集成,增加部分业务逻辑,那个时候,就惨了。你总不能说,我建这个网站用了1一个月,但要加这么一点功能,要半年。打死客户,他们也不相信这个事实。)
作者: coredump    时间: 9-5-2009 11:51
标题: 回复 #21 stgeorge 的帖子
二次开发Joomla比不上Drupal
作者: gdzack    时间: 9-5-2009 13:33
原帖由 key 于 8-5-2009 23:57 发表


如果用Java我就一点也不担心这个问题。
但似乎成熟的Java CMS平台我印象中没有,至少象Joomla!这样的平台我没有见过。

用java是杀鸡用牛刀啊。
作者: oldqin    时间: 9-5-2009 14:34
原帖由 coredump 于 9-5-2009 10:51 发表
二次开发Joomla比不上Drupal


强烈同意,这就是选DRUPAL的原因
作者: key    时间: 9-5-2009 14:58
原帖由 gdzack 于 9-5-2009 12:33 发表

用java是杀鸡用牛刀啊。


不觉得java是牛刀
就算是牛刀,也只是一把刀柄很大很大,刀身很小很小的刀,不方便用,哈
作者: stgeorge    时间: 9-5-2009 19:39
标题: 回复 #24 oldqin 的帖子
请教一下,为啥drupal要比joomla二次开发容易?如果您们能给出strong的理由,我就转到drupal上了。但是就我的调查,joomla的extension要比drupal多很多。
作者: key    时间: 9-5-2009 20:35
Joomla!有七级用户,从我两年以前简单的试用经验来说,这7级用户,尤其是Author, Editor以及Publishers这中间三级,是通过比较“繁复”的发布流程来表现的。对于程序员来说,这样的流程当然很简单,但对于用户来说,就不是太直观了。

如果我能设置一个用户,如editor,他登陆系统后就只看到一个简单的文章采篇的界面,可以简单的添删改文章,可以在不同的分类之间切换,文章发布之前有一个站点预览,那基本上就成功了。除了站点预览之外,其他功能很类似于一个BBS系统。比如我设置某三个BBS的栏目即为新闻发布栏目,只有某几个用户可以编辑。他们添删改的文章将作为官方新闻显示在frontpage和相应新闻栏目中,我觉得问题似乎就解决了。

总之,简单,直观,比完善的功能更重要。
作者: ritz    时间: 9-5-2009 20:47
标题: 回复 #26 stgeorge 的帖子
Drupal Modules - Search, Rate, and Review Drupal Modules
你看看这里的modules够不够多?
作者: coredump    时间: 9-5-2009 21:28
原帖由 key 于 9-5-2009 19:35 发表 Joomla!有七级用户,从我两年以前简单的试用经验来说,这7级用户,尤其是Author, Editor以及Publishers这中间三级,是通过比较“繁复”的发布流程来表现的。对于程序员来说,这样的流程当然很简单,但对于用户来说, ...
Drupal适合这种需求,权限和等级都是可以非常灵活得定义的。
作者: coredump    时间: 9-5-2009 21:30
http://www.google.com/search?rlz ... ;q=drupal+vs+Joomla
作者: coredump    时间: 9-5-2009 21:31
这个比较的比较全面:joomla-and-drupal-which-one-is-right-for-you

Druapl比Joomla强的地方在:
User Permissions
Content Management
Multisites Management
Documentation
Internationalization
等方面,而且这几点都是LZ比较看重的功能。
就扩展模块来说,Drupal本身就是特别针对扩展性设计的,各种模块数量不仅多,而且质量也很高,更重要的是Drupal针对开发自定义模块的友好性是Joomla所远远不及的。总体来说,Joomla Out-Of-Box的功能比Drupla多,对用户的技术要求比Drupal低,但是功能和可扩展性比Drupal差。不过毫无疑问,2个都是非常优秀的php CMS。
还有一点对开发人员也很重要的是,Drupal的社区非常强大和活跃,开发的RoadMap也很清晰。
作者: coredump    时间: 9-5-2009 21:56
Performance: Drupal vs Joomla!

如果比较关注性能的话,这个图表应该算是比较strong的理由了。
作者: bfox    时间: 11-5-2009 17:46
如果只用cms的话, open cms也是很成熟的cms方案, 问题是java 的虚拟主机相对比难找, open cms用过的人应该也比php的cms 少。
作者: key    时间: 11-5-2009 17:51
原帖由 bfox 于 11-5-2009 16:46 发表
如果只用cms的话, open cms也是很成熟的cms方案, 问题是java 的虚拟主机相对比难找, open cms用过的人应该也比php的cms 少。


我简单见识过opencms,基本上不能接受,否则我也不会扬短避长的去找php方案了
作者: stgeorge    时间: 11-5-2009 21:34
今天,仔细对比了drupal和joomla,下定决心干,joomla了。哈哈,如果楼主决定了用joomla,我们可以一起讨论一下。
作者: herejingying    时间: 11-5-2009 22:03
提示: 作者被禁止或删除, 无法发言 我基本就用 dz7+ss7,开源,bbs+cms+blog,
已经有中英版(半官方),日语德语阿拉伯等等....包网友也在开发中
楼主说的都能满足了,
访问量更不成问题了,
看看freeoz有多少人在线就知道了。呵呵
作者: key    时间: 11-5-2009 23:10
原帖由 herejingying 于 11-5-2009 21:03 发表
我基本就用 dz7+ss7,开源,bbs+cms+blog,
已经有中英版(半官方),日语德语阿拉伯等等....包网友也在开发中
楼主说的都能满足了,
访问量更不成问题了,
看看freeoz有多少人在线就知道了。呵呵


对于我们混教育网BBS出来的同学来说,freeoz是个小站,哈哈。。。
作者: ritz    时间: 11-5-2009 23:19
标题: 回复 #36 herejingying 的帖子
discuz/康盛的东西其实不是开源的,你仔细看看他们的licenses就知道了
顶多是允许你非商用的情况下免费使用而已

康盛所有的产品做多语言都是噩梦,我目前的工作的一部分就是捣鼓ucenter home
作者: herejingying    时间: 12-5-2009 14:10
提示: 作者被禁止或删除, 无法发言 我倒,我就是随便举个例子,那discuz.net如何?最高22000人在线。
你自己说的300人就ok,discuz给你都大材小用了
特性要求:

2. 300并发用户访问

原帖由 key 于 11-5-2009 22:10 发表


对于我们混教育网BBS出来的同学来说,freeoz是个小站,哈哈。。。

作者: herejingying    时间: 12-5-2009 14:39
提示: 作者被禁止或删除, 无法发言 哈,反正comsenz官方公告天下说他是开源的
多语言做的确实不好,不过好在网友已经弥补了很多

原帖由 ritz 于 11-5-2009 22:19 发表
discuz/康盛的东西其实不是开源的,你仔细看看他们的licenses就知道了
顶多是允许你非商用的情况下免费使用而已

康盛所有的产品做多语言都是噩梦,我目前的工作的一部分就是捣鼓ucenter home

作者: bg1pdq    时间: 12-5-2009 15:08
原帖由 key 于 2009/5/11 21:40 发表


对于我们混教育网BBS出来的同学来说,freeoz是个小站,哈哈。。。


这点确实没说错。
作者: 小波    时间: 12-5-2009 15:20
都是高手
想问问,并发300
就是可以支持同时300人访问?
是这个意思吗?
作者: coredump    时间: 12-5-2009 20:08
标题: 回复 #42 lxbtiger 的帖子
差不多,精确的说法应该是同时保持300个活动的链接,和同时在线人数还是不一样的。一个同时在线300人的网站,很可能最高峰的并发度也就是几十到100之间.
作者: ritz    时间: 13-5-2009 04:37
discuz的在线算法一般是算1800秒内有用户request页面的就算,所以总在线人数(注册+非注册)/1800 大约就是网站的并发值
作者: key    时间: 13-5-2009 13:40
原帖由 herejingying 于 12-5-2009 13:10 发表
我倒,我就是随便举个例子,那discuz.net如何?最高22000人在线。
你自己说的300人就ok,discuz给你都大材小用了
特性要求:

2. 300并发用户访问



嗯,我也只是开开玩笑,不要介意。

不过就技术角度看,300并发是指300个同时发起的请求,包括300个连接同时访问同一个页面,或随机访问多个页面,
如果站点本身没有做缓冲和平滑的话,这个请求其实有点大了。如果做了缓冲和平滑,响应时间允许为2s,同时300并发为
峰值支持,那么还可以接受。所以,我提出这个性能要求有点高,实际的性能要求只需要30并发应该可以。哪些同学
帮我用随机过程算一下是不是这个数?谢谢

一个web站点的并发访问数只有admin才真正知道。但从发贴量来看,freeoz的确是很小的一个站点,
和那些每秒几百上千个新贴的教育网大站来说,当然是小站啦。

当然我要做的也是一个小站,估计比freeoz还要小几个级别。

以上言论只谈技术问题,没有贬低freeoz的成份。
作者: key    时间: 13-5-2009 14:15
原帖由 ritz 于 13-5-2009 03:37 发表
discuz的在线算法一般是算1800秒内有用户request页面的就算,所以总在线人数(注册+非注册)/1800 大约就是网站的并发值


不能这样算吧,hoho~

用 在线人数 / 1800 来算,那是不对的,因为这样的话你假设了这些在线的人在1800s中
各点击了 1 次,显然和实际相差很远。

如果想通过在线人数来估算并发值,需要比较复杂的推算过程:

首先假设每一个访问者的访问行为是随机的,也就是他们的访问合乎正态分布。
为了简化起见,可以假设在1800s里的N个在线用户他们分别发起了X个不同的请求,
并假设论坛+网络响应时间为2s,所以,这N个用户中最大个人访问量为:
1800s / 2s = 900次

设 f(x) = y,其中 y 为访问次数,而 x 为访问了 y 次的人数,
那么 y => ( 1 ~ 900 ), x => ( 1 ~ 300 )

但是,用户的访问极限由服务器+网络的响应来限制,所以我们不能取一个平均值 450
来设计一个概率分布。所以,虽然用户的访问可以用正态分布的随机过程来模拟,
但f(x)还是不能简单的取一个正态分布的曲线。

所以,最好的,也是唯的的办法是找core同学或ub同学问一下,到底论坛的访问峰值是多少?
peak time的访问均值是多少。

[ 本帖最后由 key 于 13-5-2009 13:19 编辑 ]
作者: stgeorge    时间: 13-5-2009 20:55
谈一下个人观点:
并发是什么?为什么要考虑并发?
给大家分享报告:
测试过程:
每台计算机每隔10分钟同时递增发出20个模拟访问线程,每次持续10分钟,在经过五个半小时的压力测试后,测试计算机群在第34次增加并发线程后,服务器的并发进程达到2040线程/秒。

服务器的技术状态如下:

◇ CPU占用率:83%-98%之间浮动,平均为91%;
◇ 内存使用量:2967M,其中服务器在测试前内存使用520M,(2967-520)/2040=1.2,也就是说每增加一个并发进程,服务器将消耗1.2M的内存;
◇ 服务器数据吞吐:32M/每秒。

测试结论:
在2000用户并发进程内服务器每个并发平均响应时间为:15ns
服务器在超过2000个并发进程后,每增加60个并发,响应时间明显延缓,在并发进程达到2240时,系统平均响应时间为43ns,服务器达到饱和状态,CPU长时间100%占用。按照10%系统资源空闲标准,服务器可以接受2000个用户并发请求处理。

使用同样的方法更换服务器硬件进行并发压力测试,得出以下结论:

◇ XEON 2.8*2,4G memory,SCSI5阵列的服务器可以支持2000个用户并发,支持40000用户+
◇ 单XEON 2.4 1G memory,SCSI5阵列的服务器可以支持800个用户并发,支持16000用户+
◇ P4 2.8G,1G memory,SATA HDD的普通PC可以支持150个用户并发,支持3000用户+

对资源的依赖型的强弱如下:服务器线路>内存>硬盘>总线>CPU

所以单纯的谈并发,意义并不大。必须要结合硬件,前提要排除软件自身死锁或其他bug.
我理解的意思,系统可以同时处理的用户服务请求。
超过最高并发,会引起os级调度,或app级调度问题。
作者: key    时间: 13-5-2009 21:40
原帖由 stgeorge 于 13-5-2009 19:55 发表
每台计算机每隔10分钟同时递增发出20个模拟访问线程,每次持续10分钟,在经过五个半小时的压力测试后,测试计算机群在第34次增加并发线程后,服务器的并发进程达到2040线程/秒。


不是太清楚你说的“持续10分钟”是什么意思,应该是类似:
while(get_curr_time() - start_time < 20m) { do_request(); }

简单算了一下,你用3台客户机做模拟。不过我不认为你的服务器在应付2040线程/秒。

在2000用户并发进程内服务器每个并发平均响应时间为:15ns

15ns这个响应时间应该是错的。我这样认为是因为15ns小于一个系统的正常时间片的值,也就是说,
即使请求在一个时间片内完成,N个请求的平均时间也不会是15ns

平均响应时间的计算应该等于sum(t0, t1, ...., tN) / N,你需要准确的获得所有的t值,然后再计算。
我估计你的计算是:T<total> / N<connections> = 15ns,但这个不是平均响应时间。

另一个问题就是这些响应有多少返回了正确值。这个也很重要。系统达到一定访问后,因为connection backlog有限,有些请求会直接deny的,
如果是web服务器,有些响应来不及处理,也会返回40X的错误。

我以前试过用SmartBit来做测试客户机,这东西贵得要命,不过还算好用。
另外有同事试过JMeter之类的。
我自己写过脚本去做这类事,但一般只是测试一下机器死了没有,也就是压力测试,而不是性能测试。
作者: ubuntuhk    时间: 13-5-2009 22:30
这个帖子讨论得真热烈

对于并发访问,我觉得得分不同的情况:
1.访问jpg/css/js/html等静态页面(不包括伪静态页面)
这种情况对服务器的压力主要表现在磁盘响应速度、系统TCP连接数和带宽容量,一般来说只要带宽容量足够的话,使用高效的web服务器(lighttpd、nginx等),1G RAM+2G CPU+SATA硬盘,单台处理1000-5000并发,问题应该不大。

2.访问php动态页面,php不访问数据库
和(1)相比,这个对服务器的负载稍微大一些,主要是对CPU的处理能力要求更高一些,同样的硬件条件,单台服务器处理500-1000并发,也应该很轻松

3.访问php动态页面,php需要访问数据库
这种情况对服务器的负载要求是最大的,主要瓶颈在数据库访问上,特别是如果单个数据表记录达到百万条以上(FreeOZ现在的帖子数达到180w+),索引就会比较大,对内存和CPU处理能力的要求都很高,discuz的代码和数据设计都不算很优化,在上面的硬件资源条件下,内存已经不足了,进行SQL联合搜索的时候,有些SQL指令的执行速度就变得很慢了,甚至超过10+秒才能响应,如果这种查询+某些SQL插入导致数据库部分表被暂时锁住的话,对不起,这台服务器只能响应一个并发。

所以一个php网站要想提高并发访问能力,最主要要提高第三种情况下的网站处理能力(通过优化数据库、增加sql cache服务器、增加服务器内存、改用SAS、SCSI硬盘等),说起来容易,背后的功夫还是挺多的。

对于FreeOZ目前的并发访问情况来说,服务器大部分处理时间都用于第三种情况的处理,平时约5-10并发/秒,确实是个小站
作者: flyspirit    时间: 14-5-2009 01:02
这个贴子我喜欢,学很多东西。




欢迎光临 FreeOZ论坛 (https://www.freeoz.org/ibbs/) Powered by Discuz! X3.2