2008年(456)
分类: 服务器与存储
2008-05-31 18:26:42
小知识
LAMP L:Linux;A:Apache Web服务器;M:MySQL数据库;P:Perl, Python或者PHP编程语言。LAMP是一种网络应用程序开发和开发环境,功能非常强大,使用却相对来说比较简单和容易。LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件虽然并不是从一开始就设计为一起使用的,但是,这些开源软件都可以很方便的随时获得并免费获得。这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得非常普便。为了改善不同组件之间的协作,已经创建了某些扩展功能。
现在,我们就可以把这台经过一番改造后的Xbox的外壳盖上了,然后把它放置在柜子或房间中的一个角落,随便放在哪都行。从现在开始,所做的一切都将是通过SSH来操作的。在开始操作之前,如果有读者对Linux的操作不是很熟悉的话,请先准备一下相关这方面的知识。在作为root用户登录进入Xbox后,格式化和装载我们的新硬盘需要输入如下的一些命令。
fdisk /dev/hdb n (创建一个新的分区) p (主分区) 1 (分区1) enter (来选择分区1的默认首柱面) enter (使用整个硬盘空间来创建这个分区) w (把新分区的信息写入到这个硬盘中) q (退出) |
然后使用如下的命令来格式化刚创建的这个分区:
mkfs -t ext2 -j -m 1 /dev/hdc1 |
现在在这个你将装载的分区中创建一个目录使用如下的命令:
mkdir /samba_share (或者其他任何一个你自己想要创建的目录名称) |
接下来,对每个用户授与读和写的权限:
chmod 777 /samba_share |
如果我们想在这台Xbox每次启动时都能够自动地装载上这个硬盘的分区,可使用vim编辑器来编辑/etc/fstab文件,在些文件的最底部添加如下一行的内容:
/dev/hdb1 /big_daddy ext3 defaults 2 1 |
再退出vim编辑器并把分区装载上:
mount /mnt/hdb1 |
安装和移除软件
OK,现在只要启动进入到Linux,并使用SSH连接到你的Xbox中,你将会得到一个名为samba_share的共享文件夹。在这台NAS里,任何存放在这个文件夹中的数据都能够被网络中的其他用户共享访问。
现在就到了安装一些应用软件的时候了。Debian有大量的命令可用来安装软件,并可检查所有的相关性,因此我们完全不必担心这方面的问题。在这台经过改造的Xbox上,笔者会安装Samba来允许网络上的文件共享,为了Samba配置上的方便,还会安装SWAT,以使用一个比较完美的GUI界面来配置Samba。
由于等会我们要安装TorrentFlux BitTorrent客户端软件,故也要安装它所需要的支持软件,在这台Xbox中,笔者安装了Apache web服务器软件,MySQL数据库软件和PHP4脚本语言。还有一个用户可自选选择安装的是phpmyadmin,它是一个基于web的图形管理界面,用来管理这台机器上的MySQL数据库。请使用如下的命令来安装这些软件:
apt-get update apt-get install samba apt-get install swat apt-get install apache apt-get install mysql-server apt-get install php4 apt-get install phpmyadmin (optional) |
因为在服务器上并有安装显示器,而是通过远程连接来执行安装过程。你可能会想到如果我们把现在Xbox上运行的Linux中的X-Windows和其它一些用不到的东西给卸载掉,这样就可释放部分的系统内存来供应用程序运行。要达到这一目的,请执行如下的命令:
dpkg --purge xfs dpkg --purge x-window-system dpkg --purge xdm apt-get remove lpr (如果你不想把这台Xbox作为一台打印服务器来使用的话) |
现在,假设你的所有安装步骤都是没有出现任何错误提示的,一切都还正常,那这台Xbox就应该是完全可作为一台LAMP web服务器来运行的了。在我们的另外一台计算机浏览器的地址栏中输入:(这个地址各位输入自己设备所获得的真实地址),我们就应该能得到一个屏幕内容,告之这个页面正处在开发之中。
Samba和SWAT
到这,就让我们来把Samba设置好,因为如果我们要通过Windows网络来共享位于前面安装的第二块硬盘中的内容,那就必须通过Samba方式了。SWAT(Samba Web管理工具)可允许用户通过一个界面优美、人机接口完善的图形界面来配置Samba服务器。因为有关Samba服务器的各项设置值都是保存在samba.conf这个配置中,我们使用这个SWAT后,就不用再费力地去修改该文件中的各个设置值。如果要浏览有关SWAT的帮助信息,请各位读者自己参阅中的相关内容。
要开启SWAT,我们需要在/etc/inetd.conf文件中把这个工具添加进去。请输入如下的命令:
vi /etc/inetd.conf |
在这个配置文件的底部,我们应该可看到一行如下的内容:
swat stream tcp nowait.400 root/usr/sbin/tcpd /usr/sbin/swat |
可能,各位可看到有这样一行的内容,不过,它的前面可能加了一个“#”号把这一行给注释了。我们可把它前面作注释用的#号给去掉,或者说在这一行的下面再复制另一新行除#号外的内容。并且,在这个文件中检查一下涉及到有“smbd”和“nmbd”的一行内容,不过很可能它是被注释掉了的。但无论如何,在各位关闭这个文件之前,一定要确认一下在这个文件中是否包含有如下两行的内容:
netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd |
现在输入如下的命令来重新启动网络功能:
/etc/init.d/inetd restart |
这样通过如上的操作就开启了Samba网络功能,并可允许netbios名称解析功能。一旦这些都运行之后,以后我们在登录或使用这中Xbox时就可能用它的DNS名字了(在前面的安装过程中,笔者选择给这台设备取的名字是“xbox”),而不用去麻烦地输入它的IP地址,实际上两者的功能是一样的。
接下来,在PC中打开web浏览器,在地址栏中输入:901(那当然,在这你也要视具体的情况使用自己的那个IP地址),如果一切都没错的话,你应该能够看到一个管理的web页面。在这个页面的顶部,点击“Status”(状态)按钮,我们就应该能够看到smbd和nmbd正在运行当中。如果你并看不到这一切,那很有可能前面所作的那些修改过程中哪里出了问题,返回到前面那一步骤中,重新检查一下/etc/inetd.conf文件中的内容,确认它们都是正确无误的。
在这个页面中,点击“Shares”(共享),输入一个你想在网络上共享的名称(如什么“samba_share”之类的),然后再点击“Creat Share”(创建共享)。按下创建共享的按钮后,会有一个有关新共享选项的列表出现,在这,我们把共享的路径更改为刚才在这个硬盘上所创建的那个共享目录的名称,按照上例就是“/samba_share”。再设置有关这个共享权限的内容,把read only(只读)选项关闭,打开“guest ok”(允许guest用户访问)选项,然后再点击“Commit Changes”(提交更改)。这样我们就为网络上的所有用户创建了一个共享,每个用户都对其有读取和写入的权限。如果对这个共享目录你想为用户添加一些特殊的限定,那就可在这个页面中来指定你所想要授权给用户的权限。
如果现在在Windows计算机中打开网上邻居,浏览工作组计算机,我们就应该能够看到一个新的设备了,就是刚才的这台Xbox。打开它的图标,应该是可以看到你刚才设置的共享目录,还有其他的一些项目如打印机和传真等。为方便使用,我们可在网络中的每一台Windows计算机中把这个共享目录映射为一个器盘符(笔者是把它映射为S:盘的)。
BitTorrent与TorrentFlux
现在我们来开始安装TorrentFlux这个BitTorrent客户端软件了,我们先到TorrentFlux的主页上去看看,了解一下它的相关知识,再检查一下看有没有最新的版本可供下载。TorrentFlux不同于Azureus,但它对硬件配置的要求很低,正适合于笔者的使用。在本文中,使用的版本是2.0 beta 1。马上开始吧,进入到你Xbox中的home目录中,输入如下的命令(注意,以下的所有命令都是一行):
wget |
然后等待那个gzip文件下载以你的home目录中,接下来请输入:
tar -zxvf torrentflux-20.beta1.tar.gz |
这是把该文件解压到与文件名同名的目录中(torrentflux-2.0beta1)。再进入到这个解压文件的目录下,仔细阅读一下它的安装文档。
接下来,再把这个目录中的html目录整个地拷贝到你想保存web页面的另一个目录中。如:
mkdir /var/www/torrentflux cp -r html /var/www/torrentflux |
现在,我们要使用TorrentFlux的话,需要创建MySQL数据库。命令如下所示:
mysqladmin create torrentflux |
利用系统所提供的torrentflux.sql示例脚本,来建立所有所需要的数据库条目,即把torrentflux.sql中的内容全部导入到我们刚才所创建的那个数据库中。如下:
mysql torrentflux < torrentflux.sql |
接下来,我们需要来创建一个mysql用户,因此,进入到mysql的命令行并输入如下的命令:
mysql |
然后再连接到刚才你所创建的那个数据库上:
connect torrentflux |
现在来创建一个新的用户,并对该用户设置相应的密码。使用如下的命令:
grant CREATE,INSERT,DELETE,UPDATE,SELECT on torrentflux.* to tf@localhost; set password for tf = password('MyPassword'); |
现在使用“exit”命令退出MySQL。
然后再把那两个bottorent python文件拷贝到/usr/local目录下,并执行它们,使用如下的命令:
cp TF_BitTornado/ /usr/local/ chmod +x /usr/local/TF_BitTornado/btphptornado.py chmod +x /usr/local/TF_BitTornado/btshowmetainfo.py |
接下来,我们要编辑一下config.php文件了:
vi /var/www/torrentflux/config.php |
打开这个文件后,在顶部不远的地方,你应该能够看到有各种不同的设置值,经过修改后,它们看起来应该跟下面的内容差不多的,只不过有些具体的值用户要修改成自己环境下的具体值(如用户密码等):
$cfg["db_type"] = "mysql"; $cfg["db_host"] = "localhost"; $cfg["db_name"] = "torrentflux"; $cfg["db_user"] = "tf”; $cfg["db_pass"] = "MyPassword"; $cfg["path"] = "/samba_share/downloads/"; $cfg["btphpbin"] = "/usr/local/TF_BitTornado/btphptornado.py"; $cfg["btshowmetainfo"] = "/usr/local/TF_BitTornado/btshowmetainfo.py"; |
在这,还有一些其他的选项,例如像使用的端号等,你也可以把它的端口号修改成自己想使用的任何一个(当然不要与系统保留的那几个端口相冲突),这些另外的设置值都很明显,很容易找到的。保存修改后再退出这个文件,然后再在另个的一台计算机的浏览器上进入到/torrentflux(当然,同样要使用你自己的IP地址),一切顺利的话,你应该会得到一个登录的屏幕,在这会要求输入一个用户名和密码,注意,在这输入的用户名和密码将会保存为超级用户。
如果你以前使用过BitTorrent,那TorrentFlux的客户端程序就用不着作任何的解释了,基本上差不多的,什么都看上去一目了然。如果你在这方面遇到了什么困难的话,可到TorrentFlux的论坛中去看一看,里面有很多有关使用方面疑难问题的解答。
到现在为止,第二部分的内容也算是完成了。在本文的下一部分内容也即是中,我们还会对这台自己组建的NAS产品来测试一下它的文件服务性能到底如何。
小知识:
Azureus是一个基于JAVA的多torrent下载程序,可以手动设置某个torrent的优先权,加入了irc聊天室功能,增加了一些基本的irc命令,可以看见在线人数和ID,支持多tracker url,对于多tracker发布的torrent可自动切换,并可以手动更改tracker url。