我用的是freebsd作为dede的操作系统,系统运行非常好,但近期图片是比较多,而通过网络上传的话经常卡在那里,于是便通过自己新建文件夹,通过ftp上传。这之后就出现了缩略图不能生成的问题。
国庆期间时间富裕,便动了研究的心思,先用ftp软件连接到网站,比较之前和之后文件夹的属性,发现了问题。
我用的是vsftp作为ftp服务器,设置为umask=022,这样新建文件夹和上传的文件的权限就是755,也就是创建文件的用户可以拥有全部权限,而组和公共用户只有读和执行的权利。而拥有全部权限的用户是我新建的用户,比如是abc,而dede属于默认的apache用户组www的,所以当www自己建立目录的时候有权限能够在自己建立的文件夹内新建缩略图。而当我手工建立文件夹的时候,dede所属的用户就没有权限在文件夹内新建文件,缩略图自然无法生成。
发现这个问题后,在新建完文件夹后,将属性设为775(我默认的abc所在组也是www的),再次上传图片,选择图集第一张为缩略图,一次成功。
分类: IT天地
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()函数将文件读入到一个数组中,对应自己的程序,想到可以尝试一下。果然是一次成功,省略了原先文件传输的时间,算是小有收获。
最初学习,兴趣为主,看的书一般都不是很系统,而这方面台湾的作者,写作手法或者说技能要好于国内的,一般能抓住学习者的兴趣点,由浅入深,逐步深入,但受篇幅所限,多是举出常用实例,然后对例子中的关键之处进行一些指导,学下来之后也就是照猫画虎,算是入门的良品。美国的书则是,以我为主,娓娓道来,初看很是枯燥,与自己所学关系不大,但看来要想深入,还是看看专业、系统的书籍。
DEDE的会员功能试用和自己的看法
一直在使用dede,但最近才开始细细研究一下,今天试了试会员功能,使用之后发现的确不错,构思好,设置也很完善。会员的权限要低于管理员,可以防止误删或者任意修改非自己发表的文档,每个人有自己的圈子,管理员通过管理会员可以去芜存菁,将网站建设的百花齐放。目前国家对论坛的管理力度正在加大,而论坛最大的问题就是不便管理,不像是议事厅,更像是茶馆龙门阵。会员功能如果控制得当,形成一个交流意见、发表自己文章的场所,特定用途的网站完全可以替代论坛的,甚至达到论坛达不到的功能。
但是感觉初次注册的会员权限是不是大了点,注册之后就可以发表文章,上传附件。虽然还需要审核,但我感觉还是缺少限制,能不能像博客多用户系统lifetype那样对新注册会员审核之后才能使用完全的功能。但在后台管理里面找了半天,还没有找到相关的设置,看来是把门槛设的低了点,估计还是为了更好吸引参与者吧。
初试RAID
2002年升级机器的时候,选择的是曾经很经典的磐正8K7A+,525元,为了这个+号,多花了25元,主要是看中带RAID功能。但用了4年,机器再次升级换下这块板子也没有用到RAID功能。
最近手头恰好有两块10G的旧希捷硬盘,于是又动了实验的念头,拿出闲置1年的主板,外观上还算是崭新的,做工更不是现在产品所能比较的。
接上两块硬盘,进入CMOS将板载的high point芯片的raid功能打开,保存后检验完bios后提示按ctl+h进入raid设置。设置界面也很简单,首先选择raid模式,选择的raid1,然后就是选择硬盘,选中检测到的硬盘后,再确认哪块为主,确认后没有再修改管理界面中其他例如传输模式等,直接选择创建。经过近20分钟的过程后,提示成功。
再次进入cmos将启动选项中将raid项也添加进去,开始安装FreeBSD6.1,fdisk的时候,选项中有3个选项,两个ad,一个ar0,选择ar0,然后进行最小化安装,重新启动之后一切正常。
虽然晚了5年,但总算是一个新的开始。
安装jabber2,运气真是不错
过完年算是忙过一个阶段,突然起了建一个内部即时通讯系统的念头,到网上找了找,freeBSD下比较有名的是jabber2,从2开始已经支持数据库,默认的是mysql,同时也支持PostgreSQL。单位的机器不能连接外网,但有了上次安装php的经验,不管三七二十一进入ports下的net-im,找到jabberd直接make install。自然是提示找不到文件,将需要的文件复制到google上搜寻下载,然后ftp到ports下的distfiles文件夹继续安装,只是需要两个文件包就安装完毕。
我使用的是mysql数据库,于是先进入/usr/local/share/jabberd目录,再使用有建立数据库权限的用户进入mysql,然后执行. db-setup.mysql执行默认的脚本文件建立数据库。这之后还需要使用grant进行授权,这一点很关键,有很多网上帖子中忽略了这一步。
此后进入/usr/local/etc/jabberd目录,如果不考虑mysql用户和密码,其实只需要修改两个文件sm.xml、c2s.xml,把其中的localhost替代为主机的ip地址就可以了(我使用的是局域网,不需要用域名)。
安装好了之后在rc.conf文件中加入jabberd_enabled=”yes”,重新启动机器后,看message记录一切正常,便从网上下载了gaim作为客户端,注册是成功的,但总是连接不上,正好下班时间到了,便没有再测试。
回到家里,还是不甘心,就又在自己的服务器上试验一下。单位机器系统是6.0,家里的是6.1,年前一次昏头删除了不少功能,所以安装过程中出现了一次错误,主要是提示一个目录不存在,建立后倒是正常,再就是安装结束后,无法正常启动。查看message,是提示没有权限操作 /var/jabberd/pid/下的文件,网上说是没有建立jabberd用户,查看其实已经建立了,单位机器不存在这个问题,估计是系统不完整的原因,就使用chmod命令进行授权,再重起机器,一切正常了。
单位的gaim不能工作,就换了psi,界面操作都要好不少,但却又无法注册,直接查看mysql数据库,里面也没有记录。后来查看网上资料,有一篇提到修改sm.xml文件,启用auto-create功能,进去一看,果然,6.1下的和6.0不同,默认的是关闭用户自动注册的,取消了限制,登录成功!
一晚上都很兴奋,早上到了单位换上psi,一切正常,加了几个用户,传输文件、通讯都没有问题。虽然小有挫折,这次算是顺利的,运气不错。
从存在的问题看,是与版本有关,下次安装6.2的时候重新测试一下,应该有结论。
学无止境,总有收获
年底忙着年转工作,进入2007年又忙着追杀堵截那该死的熊猫,打开博客一看,已经1个多月没有写东西了。
这几天会计要打印2006的账页,于是把去年的程序拿出来修改,这个程序主要是针对建行DCC系统不能人性化的打印、整理满页账,为了减轻前台人员压力用delphi+mysql编写的。程序运转倒还正常,只是由于今年的文件比较多,总是提示out of index,只好把文件分成几次导入,倒也没有大碍,唯一不满意的还是最后文件的倒出,总要费上他5、6分钟。
原先程序使用delphi的功能多一些,而数据库主要起到的是存储功能而已,最近又学习了一下mysql,决定修改一下程序,发挥数据库的功能。改造也很简单,把原先一条条记录查找、核对、写入改为用sql语句,跨表一次性把所需数据导出写入文本文件。结果效果很惊人,只用了不足10秒钟就解决了。
delphi文本操作和mysql数据查询功能果然名不虚传。
看来真是学无止境,只要学习,总会有收获。
关于麒麟系统不吐不快的观点
随着麒麟系统通过验收,在CU论坛上兴起一阵洪水。但奇怪的是,首先发帖不是原先的责难者,而是那些不知何种目的的支持拥护者,为首者为一名为LInuxserver的,他们的观点也很奇怪,也不否认麒麟与FreeBSD的关系,只是泛泛攻击那些质疑者,颇有一副“既然有了,你能拿我怎么办?存在就是合理的,接受就是了”的愚民观点,开始还不是拽出几句古文,到了后来反驳的人多了,也就顾不上咬文嚼字,有些现代流行诗的架势了。
我菜鸟一名,对质疑者提出的证据只是看看热闹而已,本来不该参与其中。但那些所谓的LZ满帖子也没有多少技术含量,憋屈许久,也就不吐不快,说说自己的看法。
那些lz所持观点到很一致,就是先嘲笑那些质疑者,如鲁迅先生所说那样:我是正确的,我批驳你们,你们就是错误的;既然你们是错误的,那么你们批驳的麒麟就是正确的,既然麒麟没有问题,那我就是正确的。仅此而已。
其实撇开技术而言,大家鄙视麒麟,(其实真正鄙视是其开发者,或者是鼓吹者),不是因为他们的工作,而是因为他们的诚实。如果他们开头就宣称自己是基于或者参考FreeBSD,大家肯定不会有这么大的意见,关键一点是一直在有意否认或者回避这一事实,虽不能说是道德问题,但至少有违诚信。
举个例子,单位让我做一个网站,有一定要求,出于便于管理也罢,安全也罢,要求自己能够完全控制,也就是自主产权吧。我的水平有限,自己用apache+php+mysql做出来的领导不满意,自己饭碗自然受到威胁,于是在网上寻名师,访高友,发现DEDE CMS不错,还是开源的。于是拿来修改logo,power by等等,换成我们自己的,一个网站初具规模。后来发现还有很多不能满足我们使用的,比如没有影视下载频道等,于是在其软件下载频道基础上进行自主修改,使其符合我们的要求。然后参考别人的帖子,加上自己的学习,对一些细节进行添加,终于投入使用。
这时候问题就出来了,如果我对领导实话实说,领导会夸我“工欲善其事,必先利其器”会善于利用现有资源圆满完成任务,季度绩效工资多发几个就是。如果见单位里面懂计算机的人不多,就在领导面前腆着脸皮说是自己开发的系统,花费了自己大量精力云云,以此博得领导欢心,多那几个大洋,一旦遇到明眼人看出系统出处,必然为周围同事不齿,自己恐怕只能是无地自容,在单位也就没有立足之地了。
但麒麟似乎根本没有这个顾虑,上有领导庇护,下有喽罗鼓噪,好不自在。明理人不会指责麒麟的拿来主义,也不是眼红7000万的经费,大家愤恨的是其虚伪,严重的说就是欺世盗名。
如90年代初看的一部苏联电视剧中所说,如果一个国家的科学决定权在政治,那这个国家就完了。
无耻啊!无耻!
今天在网上看新闻,得知麒麟操作系统通过了验收,可能是为了避免往日的尴尬,在麒麟前面又加上了一个银河的前缀,文章里面倒是提到了与FreeBSD的关系,虽然是轻描淡写,但至少是承认了与FreeBSD的关系,也只是宣称是自主产权而已。
但打开电视,新闻联播的第一条就是这个新闻,但里面恬不知耻全篇宣称独立自主开发,丝毫没有提到与FreeBSD的关系。毕竟新闻联播是为了宣传的,而网络上这件事已经是轰动一时,不给个说法无法服众,但到了电视上就是另一码事,只要政绩哪管良心。
无耻啊!
DEDE CMS 3.0.1升级失败
单位用的原先是DEDE CMS 3.0.1,数据已经积累了不少,最近柏拉图发布了最新3.1lit的11月11日版本,修正了不少原先的bug,加上自己家里的3.1lit运行一直不错,就没有再等待正式升级文件的发布,按照论坛一个“精华”贴在进行了升级。
先是把3.01升级到3.1beta2,再升级到3.1lit,结果第一步就提示出错,但随即显示升级完成,但进行第二步升级之后,就根本进入不了系统了,提示找不到include目录下的config_hand.php文件,那是一个系统参数的文件,找不到自然没有办法进入系统,于是自作聪明把另一个3.1lit的文件修改后拷贝到这个目录下,倒是不提示错误了,但是无法进入后台管理,总是提示密码错误。估计是$cfg_cookie_encode的问题,由于每次安装的值不同,所以也就不能通用。而造成这个问题的原因初步判断是由于第一次升级的时候是把整个目录复制到服务器的,覆盖文件的同时也把文件夹的属性改变了,从而导致config_hand.php。
幸亏升级之前进行了数据备份,于是恢复数据,后台仍然无法进入,显示密码错误。用mysql管理器进入dede数据库,在dede_admin表中找到那条记录,看看md5加密后的数据,并没有问题,只好有update一下,同样密码,同样加密后的字符,这次居然成功了。
一番折腾,总算有惊无险。看来升级不能太随意,而很多非官方的东西,搀杂了太多一些特殊条件,还是不用也罢。