欢迎访问EBL主机团队博客

EBL主机是国内少有的专业Linux主机空间服务提供商,我们的空间均采用CentOS系统构架,预装正版Cpanel面板

Tag: linux

PHP还是嫁给Linux好

转载自:http://hostinginchina.net/2009/03/460.html

随着康盛系列产品在国内的普及,很多站长都从原来的ASP阵营转投PHP门下。在这里我们不再讨论PHP的优越性,而主要讨论站长们在选择PHP构架的网站程序时,如何选择更合适的服务器环境。

当ASP盛行的时候,WIN主机自然是用户普遍的选择。如果现在统计IDC的服务器系统,恐怕还是WIN的天 下。即使在当前大量网站转投PHP构架的时候,这种情况依然存在,Linux系统仍然是属于高手的游戏。所谓的全能主机大量冒出,甚至成为了服务商宣传的 口号。但是问下高手们,大家会异口同声的反对所谓的全能主机,PHP还是嫁给Linux好,这样的论调在大多数的PHP开源讨论社区内,已经成为共识。

这里具体说明一下为什么PHP建站还是选择Linux环境比较好:

1- PHP本身就是为Linux编写的,是Linux的原生服务。

大家买东西时都知道,什么产品都是原装的比较好。这个当然是从感情层面上来讲的,Linux 是PHP的原配,想当然的磨合的更好一些。具体来说,有一部分PHP的函数在WIN下是不工作的,或者工作效率低下。虽然PHP的兼容性一直是它最值得推 崇的一个因素,但事实是PHP只有在Linux下才能完全编译。比如最有用的mail函数,在WIN下就不能工作,其他的例子请看这篇文章《想要精通PHP吗?先学好Linux/unix和c吧

2- PHP在Linux下性能发挥更好。

在相同的硬件环境条件下,PHP+apache+Linux可以处理更多的并发链接,可以更好的处理多线程,web服务运行更加平稳,不会像WIN下面一样在压力下出现频繁死机无响应的状况(可以参看这篇文章《PHP运行到Windows上的几个弊端》),再加上Linux服务器本身在性能和稳定性上就胜过WIN一筹,LAMP在性能上比WAMP高出不少。

3- Linux下网站的安全性更能得到保障。

这个倒不是Linux更安全,而是因为针对WIN的攻击太多。没办法,人怕出名猪怕壮,Microsoft名气太响,盖茨挣钱太多,因此WIN的敌人也更多,

4- PHP是免费的,很多站长使用开源的PHP程序,相应的Linux也是免费的,PHP+Linux有无可比拟的成本优势。

因此,Linux主机在国外大量盛行,但这一点目前在国内还无法体现。大家都有注册机,WIN的版权可有可无,所以在成 本上甚至比Linux还要低,呜呼哀哉…… 但从长远考 虑,这种本末倒置的现象肯定会改善,MS不会坐视不管,所以Linux在中国的发展是必然的趋势。做为站长,应该眼光放的更远一些,技术掌握在人民群众的 手里远比在寡头资本家手里更有发展前景。

综上所述,PHP嫁给Linux是正确的选择。有实力的站长,应该多学习centos之类的服务器技术,自己来 构建网站LAMP环境。大型网站维护人员对Linux的要求越来越高,专业的Linux服务器管理员可是市场上的抢手货。而中小型的网站可以Linux主 机作为托管的优先选择,近年来不少新兴虚拟主机服务商专注于Linux服务器技术。像笔者所用的EBL主机就 是非常典型的代表,使用强大的cpanel面板,但价格只是传统服务商的一半。另外还有盘古息壤、梦游等一批服务商以较低的价位和更好的服务在不断冲击着传统的IDC市场。他们的出现使Linux托管市场开始发展壮大,同时以稳定、方便的服务消除了用户对Linux技术的陌生感。希望他们能够像国外著名的bluehosthostgator一样,依靠不断积累的口碑逐渐成长为重量级、大品牌的虚拟主机托管商。

对全能主机说再见吧,让linux主机的时代早点到来!

在以数据为中心的信息时代,如何妥善有效地保护数据是存储系统的核心问题之一。人们可以忍受计算机宕机,所有应用程序重新启动或者硬件损坏,但是他们要求信息永远不会丢失。冗余磁盘阵列(Redundant Array of Independent Disks )技术是各种企业信息系统和个人广泛使用的解决方案,一般的中高档服务器多使用硬件RAID控制器,但是由于硬件RAID控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得软件RAID的解决方法得到人们的重视。RAID类型有许多种,由于篇幅限制,在这里只简单介绍一下由两块硬盘组成的RAID1出现问题时的解决方案。

一、简介

在Linux系统中目前以MD (Multiple Devices)虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟块设备,并且利用条带化(stripping)技术将数据块均匀分布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗余算法来保护用户数据不会因为某个块设备的故障而完全丢失,而且还能在设备被替换后将丢失的数据恢复到新的设备上。
在流行的Linux的发布版中,如FedoraCore,Gentoo, Ubuntu,Debian,SuseLinux系统中一般已经将MD驱动模块直接编译到内核中或编译为可动态加载的驱动模块。我们可以在机器启动后通过 cat /proc/mdstat看内核是否已经加载MD驱动或者cat /proc/devices是否有md块设备,并且可以使用lsmod看MD是否是以模块形式加载到系统中。笔者使用的CentOS系统内核是已经加载国MD驱动的。

二、mdadm (Linux的软件RAID管理程序)

mdadm程序是一个独立的程序,能完成所有的软RAID管理功能,主要有7种使用模式:

模式名字                                          主要功能
Create             使用空闲的设备创建一个新的阵列,每个设备具有元数据块
Assemble        将原来属于一个阵列的每个块设备组装为阵列
Build               创建或组装不需要元数据的阵列,每个设备没有元数据块
Manage           管理已经存储阵列中的设备,比如增加热备磁盘或者设置某个磁盘失效,然后从阵列中删除这个磁盘
Misc                报告或者修改阵列中相关设备的信息,比如查询阵列或者设备的状态信息
Grow               改变阵列中每个设备被使用的容量或阵列中的设备的数目
Monitor            监控一个或多个阵列,上报指定的事件

更为详细的使用方法可以通过man mdadm来查询。

三、实例:在VMware workstation中模拟并解决RAID1硬盘故障

前面介绍了一些基础知识,下面该接触一下具体的例子了。由于,真实情况下硬盘损坏很难模拟,我们选择在VMware Workstation下面安装CentOS系统并组建一个由两块硬盘组成的软件RAID1。(具体设置过程略)
这样的磁盘阵列中,硬盘损坏无非有下列三种情况:

1)按照安装接口顺序的第二块硬盘(hd1)损坏。
(注:”#”表示Linux提示符,”//”为注释,下同。)

#mdadm –D /dev/md0
//查看当前RAID状态。

#mdadm /dev/md0 –f /dev/sdb1 –r /dev/sdb1
//标记损坏硬盘并从md0中移除,在真实环境中坏硬盘会被系统标记。用smartctl 查看并记录损坏硬盘的序列号码。然后关机,换上新硬盘。

#fdisk /dev/sdb
//给新硬盘创建分区表:输入n创建;输入a标记为可启动;输入t更改系统id为fd(linux raid autodetect),否则再次重启后新盘无法加载;输入w将分区表信息写入磁盘。

#mdadm /dev/md0 –a /dev/sdb1
//将新硬盘加入阵列中,此后mdadm会自动同步数据,此时系统会满负荷运作,可通过cat /proc/mdstat 查看同步进度。

#grub
//进入grub配置启动信息:
grub>root (hd0,0)
grub>setup (hd0)
grub>root (hd1,0)
grub>setup (hd1)
grub>reboot
//将两个盘的启动信息都写入配置文件,重启系统。

2)按照安装接口顺序的第一块硬盘(hd0)损坏。
关机后拔下坏盘后,需要将原来第二块盘(hd1)的数据线插在原(hd0)的插槽上,否则无法从硬盘启动。
剩下的步骤与1)相同。

3)两块硬盘都损坏……祈祷上帝,这种情况最好不要发生。否则,只有把硬盘交给专业人员进行数据恢复了。