slashdot和digg

Posted by 5pu at August 28th, 2006

,

slashdot和digg都是科技类新闻社区,但事实上却代表着两种不同机制,或者说,两种不同文化的争鸣。具体而言,slashdot采用的是管理员 驱动(moderator driven)的机制:用户提交新闻,管理员审阅后决定这些提交的新闻是否出现在slashdot的主页上;而digg采取的 是用户驱动(user driven)的机制,它设置了一个新闻源的缓冲,用户提交的新闻首先进入这个缓冲,如果认同这一新闻的读者足够(digg通过一 种类似民主投票的方式来表示对新闻的支持和认可,这一过程叫做digg),就会从缓冲中脱颖而出,出现在digg页面上,否则就逐渐被挤出新闻源缓冲。说 的直观一点,slashdot由管理员控制,而digg则将权力下放给用户。

这两种不同的新闻提交机制,衍生出不同的社区文化。由于用户的高度自主性,以及和blog、website的有效集成,digg对最新的网络资讯 反应非常迅速,例如,某个新出现的网络服务开始发放邀请了,某个网络服务有了重要的更新,某种新产品登场了等等。任何人都可以将任何有趣的资讯提交到  digg(资讯的输入),任何人都可以对这些资讯进行评论或投票(资讯的处理),任何人都可以将这些资讯通过digg发布到自己的blog或者  website(资讯的输出)。由于大量用户通过digg的服务进行新闻资讯的输入、处理和输出,在短短几个月内,digg的用户和网页流量呈爆炸式增 长,并逐渐压倒slashdot。而随着digg的壮大,挑战slashdot的声音逐渐响起。1/ 2/ 3

和digg不同,任何提交到slashdot的新闻都必须通过技术人员的审核,因此slashdot对新事物的反应比较滞后,而由于审核人员的观 点和普通读者的观点可能有很大的差异,因此一些有趣的新闻可能会被过滤或忽略。两下一比较,看起来似乎digg更“进步”一些,但digg在带来用户自主 性的同时,也出现了不少难以解决的问题,比如经常会有一些无聊的文章,或者重复的文章得到“认可”并出现在主页上,某些评论错误百出,甚至不少是技术方面 的常识性错误,而这都是因为digg的门槛太低,以及用户群的知识层次有限所致。

相反,slashdot就很少出现类似的情况,原因在于其读者群整体素质非常高,其中大量充斥着geek和hacker,以及一些专门在大学或其 它学术单位做研究的教授及专业人士。尽管技术人员的审核有些缓慢,但却保证了新闻的质量,经过多年的沉淀,slashdot逐渐积累了一大批高品位的读 者,这些是digg这个短期暴发户所不能具备的。

Linus Torvalds在评论slashdotter时说到:他们不管懂还是不懂,总能发表一些所谓的精辟言论。为了免遭slashdotter的敲打,他补充到,其实他自己也一直是slashdot的读者。

尽管这些不过是Linus的一些戏言,但却从另外一个角度反应了slashdot为什么吸引人。事实上,留言一直是slashdot的最大特点。  slashdotter们围绕着最新的互联网科技、开源社区、unix/linux的发展、版权的纷争等话题热烈讨论,其容纳的资讯远远超过了新闻主题 本身,里面除了会出现一些和主题相关的重要补充和精彩发挥外,还不时地会出现一些给人启发的想法,让人获益匪浅。相比较而言,digg显得比较浅薄,除了 一些可有可无的口水外,你实在很难从中找出有意义的言论,而且,由于digg的读者绝大部分都是windows用户,因此对unix/linux非常排 斥,甚至一度出现过逐出linux新闻的言论,而这些都在一定程度上对digg产生不利的影响。

因此,尽管有不少狂热分子在吵着如何挑战slashdot,但事实上digg很难在实质意义上撼动slashdot的地位,更确切一点说,  digg今后的发展路线很难和slashdot产生交集,slashdot依旧走它自己的geek路线,而digg则会吸收越来越多的追求最新资讯的网 民,并形成自己所特有的平民文化。

Technorati , ,

Posted in 电子商务|  Tags: , , | No Comments | 

Unix/Linux的PHP编译安装

Posted by 5pu at August 7th, 2006

,

本节将指导如何在 Unix 系统下安装和配置 PHP。在开始安装之前,请务必研究自己使用的系统和 web 服务器的相关章节。

安装前需要考虑的事项一节提到,在本节主要以 web 为中心介绍 PHP 的设置。不过本节也会覆盖一些 PHP 命令行用法的设置方法。

在 Unix 平台下安装 PHP 有几种方法:使用配置和编译过程,或是使用各种预编译的包。本文主要针对配置和编译 PHP 的过程。很多 Unix 类系统都有包安装系统,可以用它来设置一个有着标准配置的 PHP。但是若需要与标准配置不同的功能(例如一个安全服务器,或者不同的数据库驱动扩展模块),可能需要编译 PHP 和/或 web 服务器。如果不熟悉编译软件,可以考虑搜索一下是否有人已经编译了包含所需要功能的预编译包。

编译所需的知识和软件:

  • 基础的 Unix 技能(有能力操作“make”和一种 C 语言编译器)
  • 一个 ANSI C 语言编译器
  • flex:版本 2.5.4
  • bison:版本 1.28(推荐)、1.35 或 1.75
  • 一个 web 服务器
  • 模块特别需要的组件(例如 gd、pdf 库等)

PHP 初始的配置和安装过程被 configure 脚本中一系列命令行选项控制。可以通过 ./configure –help 命令了解 PHP 所有可用的编译选项及简短解释。本手册是分开对这些选项编写文档的。可在附录中找到核心配置选项,而扩展模块特定的配置选项分别在其函数参考页面中描述。

配置好 PHP 后,便可以开始编译模块和/或可执行文件。make 命令用来做这一工作。如果该命令执行失败而找不到原因,请参考安装问题一节。

Unix 系统下的 Apache 1.3.x

本节包括在 Unix 平台的 Apache 下安装 PHP 的说明和提示。我们在另外的页面也有 Apache 2 的安装和说明

可以从核心配置选项列表以及位于手册对应部分的特定扩展配置选项中选择参数并在安装步骤第 10 步将它们添加到 configure 命令中。版本号在这里被省略了以保证此说明的正确性。需要将这里的“xxx”替换为自己使用的文件的正确值。

例子 4-1. PHP 的 Apache 共享模块版本安装说明

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx
10. 现在,配置 PHP。这是定制 PHP 的不同选项的时候,例如要加载哪些扩展库。使用
./configure --help
来列出可用的选项。在下面的示例中只是简单地配置 Apache 1 和 MySQL 支持。
用户的 apxs 的路径可能和此示例中的不同。
./configure --with-mysql --with-apxs=/www/bin/apxs
11. make
12. make install
如果在安装之后决定修改配置选项,那么只需重复以上最后三步。只须重新启动
Apache 就可以使新模块生效。不需要重新编译 Apache。注意除非特别指出,
“make install”总是会安装 PEAR,各种 PHP 工具例如 phpize,PHP CLI 以及其它。
13. 建立 php.ini 文件。
cp php.ini-dist /usr/local/lib/php.ini
可以编辑 php.ini 来设置 PHP 选项。如果想把 php.ini 放在其它目录,在第
10 步加上以下选项:
--with-config-file-path=/path
如果选择了 php.ini-recommended,确保阅读一下其中的变更说明,因为这些会
影响到 PHP 的行为。
14. 编辑 httpd.conf 来加载 PHP 模块。在 LoadModule 语句右边的路径必须指向系统中
PHP 模块所在的路径。上面的 make install 步骤可能已经添加了,但还是检查确认一下。
对 PHP 4:
LoadModule php4_module        libexec/libphp4.so
对 PHP 5:
LoadModule php5_module        libexec/libphp5.so
15. 在 httpd.conf 中加入 AddModule 部分,在 ClearModuleList 下面的某处,加上这一句:
对 PHP 4:
AddModule mod_php4.c
对 PHP 5:
AddModule mod_php5.c
16. 告诉 Apache 将哪些后缀作为 PHP 解析。例如,让 Apache 把 .php 后缀的文件解析为
PHP。可以将任何后缀的文件解析为 PHP,只要在以下语句中加入并用空格分开。这里以
添加一个 .phtml 来示例。
AddType application/x-httpd-php .php .phtml
为了将 .phps 作为 PHP 的源文件进行语法高亮显示,还可以加上:
AddType application/x-httpd-php-source .phps
17. 用通常的过程启动 Apache(必须完全停止 Apache 再重新启动,而不是用 HUP 或者
USR1 信号使 Apache 重新加载)。

也可以将 PHP 作为静态对象来安装:

根据 Unix 系统和 Apache 安装方法的不同,有很多方法停止和重启动 Apache。以下是一些不同的 Apache/UNIX 下重启动 Apache 的典型命令。需要把 /path/to/ 替换成自己系统上的确切路径。

apachectl 和 http(s)dctl 程序所在的路径在不同系统中通常不一样。如果系统中有 locate 或者 whereis 或者 which 命令,那么可以帮助找到这些控制程序。

编译 PHP 和 Apache 的不同例子还有:

此配置将生成在 Apache 的 httpd.conf 文件中用 LoadModule 加载的 libphp4.so 共享库。而 PostgreSQL 支持将嵌入到 libphp4.so 库中。

此配置将生成 Apache 的 libphp4.so 共享库,并且还生成 pgsql.so 共享库,可以在 php.ini 文件中用 extension 指令加载,或者在 PHP 脚本中用 dl() 函数明确地加载。

此配置将生成 libmodphp4.a 库,mod_php4.c 和一些相关的文件并且拷贝到 Apache 源程序目录中的 src/modules/php4 目录下。然后用 –activate-module=src/modules/php4/libphp4.a 编译 Apache,Apache 编译系统会生成 libphp4.a 并且将其静态地连接到 httpd 程序中。PostgreSQL 支持也直接包括在这个 httpd 程序中了,因此最终结果是单一的一个包括了所有 Apache 和 PHP 支持的 httpd 可执行文件。

此配置和上面一样――除了没有在最后的 httpd 可执行文件中包括 PostgreSQL 的支持以及生成了一个 pgsql.so 共享库以外。该共享库可以在 php.ini 文件中或者用 dl() 函数加载。

当选择不同的方法编译 PHP 时,需要考虑每种方法的优势和缺点。用共享对象方式编译 PHP 意味着可以单独编译 Apache,并且不用在添加或修改了 PHP 的时候重新编译所有程序。用内置方法编译 PHP(静态方式)意味着 PHP 可以加载和运行得更快。更多信息见 Apache 的 DSO 支持页面

Technorati , ,

Posted in 虚拟主机|  Tags: , , | No Comments |