重拾Linux

原先学习使用过一段时间linux,用的是红帽7.2,后来想用自己的二手机器建网站的时候,开始使用的是曼德拉草的9.0,再赛扬850的机器上安装运行的速度实在难以忍受,所以开始学习FreeBSD。接触FreeBSD后,感觉他更为简单,且对硬件要求更低,便用FreeBSD建站,从4.10到6.2.

最近因为dede在Linux下缩略图的问题,自己在FreeBSD上实验感觉和linux还是有所差别的,便动了再次尝试学习的念头。

操作系统选择的是ubuntu 6.06服务器版。最近Linux中风头最盛的应该就是ubuntu了。用6.06是因为他的体积要小一些,只有400M,到ubuntu的网站下载需要的时间少一些。同时顺便在网上填写了免费邮寄的7.0,看看是否真的能够收到光盘。

下载镜像文件刻盘,放入机器中启动进入安装选项,其中有一个选项是“install a LAMP server”,选择这个选项进行安装,会在安装系统同时安装好apache2.0、mysql5.0、和php5.0,安装时间。

开始安装后,首先提示什么安装语言、所在国家、键盘、类型等,接着是网络设置部分,只要网卡不是太少见,系统都可以识别出来(我用的是3com的集成网卡,8139更是没有问题),这时就自动寻找DHCP服务,可以按ESC键掠过,系统就会让你手动输入网络参数,如IP地址、子网掩码、网关、DNS,这些如同windows下一般。设置完毕后会让设置主机名和代理服务器,按需要设置就可以。

下一步是对硬盘进行分区和挂载。由于用的是替换下来的硬盘,就选择了清空整个硬盘,自动进行分区,这样系统就会自动将硬盘分为ext3文件分区和swap交换分区并挂载。这个倒是很是省心。

Ubuntu和别的系统不太一样的是没有root用户,需要安装的时候设置一个管理员用户,然后在管理中执行sudo来行使管理员权限。按提示输入用户名和密码后就开始安装系统。Ubuntu和freebsd一样对网络依赖比较大,所以有一段时间要扫描镜像站点更新,比较耗费时间,我的机器安装一共用了30分钟安装完毕。

安装完毕才发现,虽然叫LAMP,但是没有安装ftp软件,没法上传数据,真是做好人也不做到底。先不急着安装ftp,先安装openssh,这样就可以不用坐在服务器旁边用键盘录入了。

Ubuntu的软件安装也很方便,把安装光盘放进光驱,使用sudo apt-get install openssh-server安装好openssh,这样就可以坐在自己机器旁使用putty等远程登录软件管理自己的“服务器”了。但用起来才发现,putty乱码不少,无论是中文还是英文的,先将就着用吧。

登录服务器后,再用sudo apt-get install vsftpd命令安装好vsftp服务器。但默认的安装中只能用匿名用户登录,找到vsftp的配置文件,使用sudo vi /etc/vsftpd.conf命令修改一下服务器设置:把anonymous_enable=YES 改为anonymous_enable=NO,同时把

local_enable=YES

write_enable=YES

local_umask=022

这三个选项前面的#删除,使发挥作用。然后 sudo /etc/init.d/vsftpd restart 或者等调试完后面的一起重启机器也可以。

ftp设置好了,下一步就是关键的apache了。默认的apache用户是www-data,文档默认目录是/var/www,查看/etc目录下的ftpusers文件,里面没有www-data的大名,说明可以使用ftp管理,便先使用sudo passwd www-data对www-data用户修改密码。这里和网站上面的PDF文件中的说明有所不同,web服务器的文档根目录实际就是/var/www,而不是他下面的那个apache2-default目录。

目录默认的所有者是root的,先修改权限,

cd /var

sudo chmod 755 –R www(将网站根目录设为755的权限)

sudo sudo chown -R www-data.www-data www(把www也就是网站根目录的权限授予www-data组的www-data用户)

权限设置好了,再修改一下apache的配置文件,ubuntu已经为我们配置好了大部分,我们需要修改的不多,sudo vi /etc/apache2/apache2.conf修改配置文件

主要就是把

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

两句前面的#删除,使得apache能够和php结合起来,否则会把php文件作为一个文本文件让你下载。

同时默认的字符编码还是有些问题,如果网页自己不指明中文编码,网页会出现乱码,考虑到大多用的都是中文网页,把里面的加上一行AddDefaultCharset       GB2312或者是修改默认的AddDefaultCharset,将网页的默认编码改为GB2312。

Mysql和php安装的比较彻底,GBK编码已经安装可以使用唯一需要修改的就是mysql的root用户口令是默认为空的,最好还是修改一下加上口令。

这样重新启动机器,使用ftp软件用www-data用户把dede5上传到目录下。输入ubuntu的ip地址,熟悉的dede安装界面出现了。安装顺利,可以进入管理后台,但发表带图片的文章,总是没有反应,查看一下phpinfo信息,原来GD没有安装,使用sudo apt-get install php5-gd进行安装,重新启动apache之后情况正常。

重新尝试Linux,使用简易度来看,linux是大有改进,其实linux发展不一定非要和微软一拼高低,走视窗化的道路不是它的特长,而服务器方面的设置我感觉简单应用Linux并不比windwos复制。

与FreeBSD相比,性能比较方面我没有什么发言权,但从应用看,如果是为了应急使用,linux还是有他的优势,那就是一张光盘基本解决了基本问题,自己不再需要编译内核等,由于是局域网安装,没有试验apt的网络安装的功能,但从光盘安装看,和FreeBSD的ports安装差别不大。

如果说不满意,那就是Linix下的文本编辑,被FreeBSD的ee惯坏了,再使用vi等编辑,怎么都觉得很别扭。

微星似乎和硬盘有仇

昨天单位的某品牌微机出现故障,机器需要重启几次才能启动,通过CMOS的内设自检功能检测,的确是硬盘损坏,不愧为大公司,上午保修,下午临下班维修人员就带着主板、硬盘等备件赶到了。这其实已经不是第一次了,去年3月这台机器刚使用2周也是出现此种故障,也是当天维修人员赶到,二话没说把希捷硬盘换成三星硬盘(sata)的。所以这次也是直接换上硬盘,不愧为双核的PD925,虽然噪音大些,但速度倒也傻快,很快装好了,但发现只有前置面板的音响有声音,后面的不发声。

无奈,售后人员只好又换上带来的主板,这下问题解决。期间我在旁边观战,无聊中拿起主板一看,一个熟悉的商标进入视线–微星。

这已经不是我第一次遇到此类情景,而主角都是微星。最初,朋友G有勇力,先是装风扇按坏一块毒龙CPU,后来又将主板AGP插槽后端用显卡压下一块,别的同事把限制的微星kt133借给他,不出几个月,他的80GBB西数硬盘无法启动,检查一下,发现有坏道,幸好没出质保期,于是换了一块,不久又损坏。虽然又换了,但很是郁闷,当时认为是电源的问题,于是机箱主板一起换,换上磐正的kt600,之后相安无事。

之后又不久,开会期间与Z聊天中,Z感慨IBM一批硬盘不好,连坏两块,本来那是IBM玻璃硬盘名声不好,也是不足为奇,但知道他用的和G是一样的主板,便起了狐疑,劝Z还是升级为妙。

04年回淄博,遇到一个朋友,他买了二手主板,结果连换两块硬盘,我第一感觉就是问:“是不是微星的kt133”得到的是肯定的答复。

现在又遇到了这种情况,主角还是微星。按理说硬盘由电源直接供电,和主板只是数据传输而已,出现这种情况应该是电源为罪魁祸首,但碰到的都是微星主板,只能说微星和硬盘有仇了。

FreeBSD大搬家

原先单位用的机器是淘汰下来的DELL机器,CPU还算可以,但sd内存太小,年底买了新的主板、cpu、内存、硬盘准备重新安装,使用FreeBSD7.0,但由于7.0release推迟,所以决定先把机器安装起来使用。

主板是intel的原厂的945gc,硬盘是sata接口的。原先也曾导过几次硬盘,但都限于是pata硬盘间的,第一次在不同接口硬盘间“搬家”还是有些紧张。

机器安装很快,把原先硬盘拆下来接到新主板唯一的ide口上,启动机器,一切顺利,同时系统也识别出新的sata硬盘,显示为ad4.使用fdisk分区,原先只有一个/挂载点为ad0s1a,由于用途单一,所以新硬盘也是如此设置,相应的为ad4s1a。然后按照网上的教程:

cd /mnt

mkdir root

cd /mnt/root

dump -f- / | restore -f- -r

毕竟是新硬盘,备份速度比原先的快多了,只用了原先一半的时间就完成。因为需要拆掉旧硬盘,就将新硬盘的etc下的fstab文件内进行修改,把原先的ad0s1a改为ad4s1a,然后umount /mnt/root关机,拆掉旧硬盘启动,结果很失望,系统自检完毕后无法检测到启动的系统,死在那里了。

只好把旧硬盘重新接上,启动后一切正常,难道是不支持sata硬盘?查看fstab文件,里面依然是ad4s1a,说明分区,挂载都是没有问题啊。问题出在什么地方?转念一想。既然分区没有问题,不正常启动就是出在引导分区上了,突然想到分区完毕的时候系统曾经提示自己按照FreeBSD引导,当时随手选择的是不。急忙重新分区,备份,重新做了一遍,这下开机一切正常了。

看来一切都不能随手、随意而为啊。

竞争的宽带,济南人幸福的宽带

今日看到北京网通新业务看到4M就要258元,而且还要评户口办理,真是感觉济南人太幸福了。毕竟济南1M只要50元,2M的为60,如果办理亲情一家,据说10M的不过是110元左右,还包含了固话的座机费。

济南的宽带资费,应该在全国的省会中算是低的了。归根溯源,还是要归功于当年百灵网的推广。我至今从未对百灵网出言不敬,只有感激之情。当1999-2000年百灵网推广高峰期,我白白使用了一年,虽然功能还不完善,但却让济南人体验到了什么叫做宽带,而当时网通还在使用56K的小猫。即便是随后开始收取每月100元的包月费,但还是足以羡慕死网上的一圈网友。

正是有了百灵网的推广,网通在2000年底也推出了56K的600元包年,也激励着广电网利用CM在济南低价推广宽带,01年中期开始大范围使用40-50包月的宽带。竞争虽然激烈,但供应商还是乐于杀进来,到了03年底,网通推出了600元预缴费一年赠送3个月的优惠活动,据说就是针对蠢蠢欲动的电信的推广活动,也就是从此之后,宽带的费用被压在50元/月/1M左右。

费用的降低,源于竞争,源于新势力的加入。如果是北京,在天子脚下,像百灵网这样的公司要进入市场,还不知到经过多少审批,没准早胎死腹中。也许这就是济南人的一种幸福吧。

dell与微软真是一位好伙计

今天同事从网上订购的一台dell台式机到货,型号是INSPIRON531算得上是物美价廉,而且机器预装的是vista家庭版,并随机带有安装盘。但同事对vista的速度实在不感兴趣,非要装上xp。

看到机器带有系统驱动盘,于是动手重新安装。速度极快,熟悉的xp桌面就呈现在面前。但用dell自带的驱动安装软件,只发现了一个显卡8300的驱动,安装上后一切正常,但其他的xp驱动一个也找不到。只好到dell网站下载,结果一样,到了上面xp的驱动只有一个显卡的。

看来只能用公版驱动了,便用everest查看系统信息便于下载,查看了一下,发现主板是c61的,声卡也是realtek的,忽然想起前几个月给同事装的机器主板用的就是双敏的c61,配置差不多。而主板驱动恰好还在,就抱着大不了重新安装的心理把光盘插进去,按照提示进行安装,重新启动机器后,真是喜出望外,除了一个叹号外,其他驱动都安装完毕,而且正常使用。

另一位同事还不甘心,打800电话询问对方技术支持,对方只是称可以下载,但却给不出更多的支持。

看来dell和微软真是一对好伙计,看到微软vista推广不利,就不惜掐断用户“后退复辟”的道路,来帮助vista,真够义气。

无奈的mysql的浮点运算

最近用php+mysql4.1做了一个查询系统,有一个项目就是根据发票金额按照千分之三的返还率计算出佣金额。发票金额和佣金字段设定的是decimal(8,2)。通过对原始数据通过逐条分解,插入到数据库中。为了减少数据量,佣金是在数据插入完毕之后通过update语句生成的。原先倒也一直顺利。

但从上个月开始,对账期间发现佣金合计出现偏差。于是把文本原始数据导入excel,按照计算公式逐条核对,发现了问题。同样用round(佣金*0.003,2),mysql计算的大多数情况下与excel是相同的,但当发票金额为整数,且个位为5,的时候,计算出的金额不会四舍五入,比如48.455,得出就是48.45,而excel得出的是48.46,用php计算,也是48.46.

到网上查询,这是mysql存在的一个浮点计算问题,据说在5.1版本中已经解决。没办法,还是用php逐条计算吧。

欣喜!龙芯的新进展

驱动之家昨日转载了一篇文章http://news.mydrivers.com/1/93/93679.htm,是龙芯的最新消息,也是经过官方确认的消息。

从龙芯经过鉴定到现在,也就是从上次我发表相关博客感慨已经是1年半左右时间了,虽然时间飞逝,但总算走出一大步,而且产品也由e升级到了f,虽然晚了点,但还算不迟。

之前龙梦已经推出过一次龙梦2E福珑迷你电脑,那次是限量,算是测试版,这次推出了分为3个种类,包括福珑迷你电脑(针对pc),梦珑笔记本、海珑网络存储针对(存储)和脉珑NC。当初在论坛上的提议虽然可能其实也不可能起到作用,但关键的一条双网卡是已经被应用在新的产品中了。

龙芯做为台式机与Intel和AMD竞争,是没有什么前途的,就像在中国Linux与windows争锋一样。而龙芯正是依靠Linux的,作为PC机,竞争力并不大,而作为网络用设备则是前途远大,而这方面没有双网卡的支持是不可想象的。从官方网页的订购顺序就可以看出,海珑网络存储放在第一位,而福珑排在最后一位。

这个应该是前段时间福珑测试的结果吧。如果是那样,那么第一批的测试算是有价值的。在目前这个一提到电脑,就问兼容windows不,似乎windows就是一切的中国,家用或者说是作为主流pc机的替代品,龙芯电脑是力不从心的,在将突破点放在这里,算是一条死胡同。而作为其他用途的,龙芯还是前途远大。

前一阵子威盛也推出了新的itx主板,在上面应用了传说中的8251南桥,主板上也有直接安装CF卡的接口,而这次海珑更为彻底,内置了32M Nor flash,目标直指嵌入式操作系统。看来龙芯已经确定了今后的主打方向。

同时海珑也有4个esata接口,这个也和新威盛主板相同。现在宣传的是主要应用在家庭网络中心,这样的市场也算广阔,前一阵子一位同事就是为了组装一台类似功能机器,购买了250G硬盘,bt不久也就满了,今后家庭的存储将成为一个计算机主要应用,而对计算要求不高而对功耗、噪音、体积要求更高,这些都是龙芯电脑难得的优势所在。还有一个应用龙梦没有提及,可能还有避讳,那就是网络应用,从最简单的路由器,到复杂一些的简单应用服务器。

有了双网卡,不做路由器简直就是浪费,不宣传可能怕得罪了最近想破头对付通过路由器上网的网络供应商们。有了海珑,通过linux设置,作为一个软路由,家庭可以共享上网,接上硬盘,可以作为一个家庭的存储服务器。如果需要,安装好apache+php+mysql,一个简单应用的服务器就已经成型(唯一遗憾的是不支持FreeBSD),这些是龙芯的优势所在。以己之短攻敌之长,是自寻死路,而以己之长攻敌之短,是生存之道。

价格方面,虽然海珑价格还未公布,但估计要高出福珑的1800不少,就像威盛的新功能板子要高出芯板不少一样,如何降低成本应该成为推广者的当务之急。即使是高科技企业,要想发展也是离不开营销团队的努力。要想降低成本,产量就要上去,而产量要上去又离不开销量的支持。如同上面写的,要扬长避短,把能够市场化的部件拿掉,比如硬盘和内存。这个龙芯联盟并不生产,加在里面只是为其他生产销售商徒增利润而已。再就是细化产品,这次每个产品已经细分为几种产品,但细分还不是细化。既然龙芯已经市场化了,那就要把它当作一件产品卖出去,而不是什么爱国的产物,盲目的高科技产物,只要有需求,可以安装要求生产相应的产品。要求价格低,而自己有计算机diy能力的,就只卖给他们最基础的,有需求没有能力自己动手的,那就按照需求卖给他们满足要求的成品,等等…

龙芯已经走出了一大步,那就扎实地走下去。

Freebsd下提取图集第一张图片错误的解决办法(特定情况)

我用的是freebsd作为dede的操作系统,系统运行非常好,但近期图片是比较多,而通过网络上传的话经常卡在那里,于是便通过自己新建文件夹,通过ftp上传。这之后就出现了缩略图不能生成的问题。
国庆期间时间富裕,便动了研究的心思,先用ftp软件连接到网站,比较之前和之后文件夹的属性,发现了问题。
我用的是vsftp作为ftp服务器,设置为umask=022,这样新建文件夹和上传的文件的权限就是755,也就是创建文件的用户可以拥有全部权限,而组和公共用户只有读和执行的权利。而拥有全部权限的用户是我新建的用户,比如是abc,而dede属于默认的apache用户组www的,所以当www自己建立目录的时候有权限能够在自己建立的文件夹内新建缩略图。而当我手工建立文件夹的时候,dede所属的用户就没有权限在文件夹内新建文件,缩略图自然无法生成。
发现这个问题后,在新建完文件夹后,将属性设为775(我默认的abc所在组也是www的),再次上传图片,选择图集第一张为缩略图,一次成功。
  

FreeBSD6.1升级笔记

原先使用的FreeBSD6.1是从6.0版本升级上来的,当时参考的是LLZQQ的《服务器托管一般性设置)期间也有区别,但还算顺利。最近换了网络,想把6.1再次升级,开始依旧参考原先的资料,但进行到make installworld一部出错,总是无法继续。

 

看来版本升级方法有所变化,便有上网搜寻一番,并参考了安装手册,重新进行安装:

1、升级源代码和ports,修改内核配置文件(MYCONFIG)这个与原先的没有差别。

2、#cd /usr/src

#make -j4 buildworld

#rehash

#make -j4 buildkernel KERNCONFIG=MYCONFIG (这一步时,KERNCONFIG少输入了一个N,结果重建的默认的内核,浪费不少时间)

#rehash

#reboot

3、重启机器后再次进入/usr/src,执行mergemaster -p后,执行make -j4 installworld,这时出现了问题,总是提示:

install:rename: /sbin/init to /sbin/init.bak:Opereation not permitted然后安装中止。

试图修改init.bak的属性,但不成功。查询了半天,最后还是在freebsd的英文社区找到答案,

chflags noschg /sbin/*取消了该目录下的权限修改保护,再执行安装命令,一切正常。

4、安装完毕,执行mergemaster后重新启动机器。

5、重启机器后

#cd /usr/obj

#chflags -R noschg *

#rm -rf *

至此,系统被升级到6.2版本,运行正常。

PHP文本文件操作的新收获,兼对学习书籍的粗略认识

最近做的一个程序,需要从文本中提取数据。最初的时候按照原先学习的php对文件的操作,使用的是fopen函数读取通过表单文件域传递过来的文件,然后再使用fgets函数进行一行一行的读取数据。这就存在一个问题,如果直接读取本地文件,然后上传到服务器的数据库中时,总是提示文件有误。开始知识有限,查看文件域,对应的字符串为/var/tmp下的文件名,以为php只能是操作远端服务器中的文件,便在前面添加了一行cp语句,将文件上传到服务器后再操作,倒也正常。

但随着文件的逐渐增大,上传的时间已经快赶上处理数据的时间了,恰好昨天系统学习php中的文件操作,学到可以用file()函数将文件读入到一个数组中,对应自己的程序,想到可以尝试一下。果然是一次成功,省略了原先文件传输的时间,算是小有收获。

最初学习,兴趣为主,看的书一般都不是很系统,而这方面台湾的作者,写作手法或者说技能要好于国内的,一般能抓住学习者的兴趣点,由浅入深,逐步深入,但受篇幅所限,多是举出常用实例,然后对例子中的关键之处进行一些指导,学下来之后也就是照猫画虎,算是入门的良品。美国的书则是,以我为主,娓娓道来,初看很是枯燥,与自己所学关系不大,但看来要想深入,还是看看专业、系统的书籍。