| 走千走万's profile走千走万--走不完的路PhotosBlogLists | Help |
|
October 30 vsftp官方站不知道是不是官方站,反正我的vsftp就是从这里下载的
(1)下载软件
(2)参考INSTALL进行安装
(3)配置vsftpd.conf文件让vsftp能够以standalone方式运行
配置文件用到的几点说明:
#让vsftp能够以standalone方式运行
listen=YES
#让本机用户能够登陆ftp
local_enable=YES
#让匿名用户可以登陆
anonymous_enable=YES
#让用户可以对所属目录可写
write_enable=YES
我用到的就这些,以后有新的会再添加
转载一篇文章:Linux下安装最新Apache2+PHP5+GD2Apache2的安装就不用说了,这里主要着重说一下GD和PHP的安装。
1.安装GD
(1)安装zlib
# cd zlib-1.2.3
# ./configure --prefix=/usr/local/zlib2 (注意,如果您以前没有安装zlib,可以不指定路径,我是没有删除以前的低版本才指定的!以下雷同!)
# make # make install (2)安装jpeg
# cd jpeg-6b/ # ./configure --prefix=/usr/local/jpeg6 --enable-shared [注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库]
# make # make install-lib 如果你选择默认安装,可能很顺利,指定路径后,请先创建以下文件夹 错误提示:...... /usr/bin/install -c -m 644 jconfig.h /usr/local/jpeg6/include/jconfig.h /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg6/include/jconfig.h’: 没有那个文件或目录 make: *** [install-headers] Error 1 # mkdir /usr/local/jpeg6 # mkdir /usr/local/jpeg6/include # mkdir /usr/local/jpeg6/lib # make install-lib # make install 安装时如果错误提示: /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg6/lib/libjpeg.a’: 没有那个文件或目录 make: *** [install-lib] Error 1 创建如下文件夹: # mkdir /usr/local/jpeg6/lib # make install /usr/bin/install -c cjpeg /usr/local/jpeg6/bin/cjpeg /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg6/bin/cjpeg’: 没有那个文件或目录 make: *** [install] Error 1 # mkdir /usr/local/jpeg6/bin /usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/jpeg6/man/man1/cjpeg.1 /usr/bin/install: 无法创建一般文件‘/usr/local/jpeg6/man/man1/cjpeg.1’: 没有那个文件或目录 make: *** [install] Error 1 # mkdir /usr/local/jpeg6/man # mkdir /usr/local/jpeg6/man/man1 # make install 好了,直到安装成功! (3)安装libpng:
# cd libpng-1.2.12 # ./configure # make # make install (4)安装freetype:
# cd freetype-2.2.1 # ./configure --prefix=/usr/local/freetype2 # make # make install (5)安装gd2
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib2/ --with-png=/usr/local/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype2/ (请指定及格插件的安装路径,否则安装php的时候可能出错!) # make # make install 到这一步为止,gd已经安装完毕
2.安装php
主要的问题就是编译时的配置选项,把我的config选项拷贝下来,仅供参考。
#'./configure' '--with-apxs2=/usr/local/apache/bin/apxs' '--prefix=/usr/local/php' '--with-gd=/usr/local/gd2' '--with-jpeg-dir=/usr/local/jpeg6/' '--with-ttf' '--with-zlib-dir=/usr/local/zlib' '--enable-gd-native-ttf' '--with-freetype-dir=/usr/local/freetype2' '--with-png-dir=/usr/local' '--enable-mbstring=all' '--enable-mbregex' '--prefix=/usr/local/php' '--with-iconv=/usr/local/'
#make #make install
剩下的就是配置apache了,可以参考手册。
October 26 今天消防演习,下楼容易上楼难能不能不下去?不去爬那17层楼梯呢?
今天消防演习的主要内容分为火场逃生和急救知识,还有一点就是用灭火器灭火。
回来的时候电梯挤不上去了,挤了三部电梯,都说超载,可是我一下来电梯就关上门了,真是邪门。
最后没办法,爬楼梯吧,十七层的楼梯,越爬是步子越沉重阿,还有,大楼的保洁人员居然对着我笑,他们本来应该被我这种执着向上,不畏艰辛的精神所感动的,呵呵。
爬上了十七层,我的两腿打哆嗦,腿肚子都快往前了。。。。赶快让我坐一会吧,瘫倒在椅子上。 October 25 转载一篇关于 Linux下如何设置源码编译环境 的文章从源码包安装软件最重要的就是仔细阅读README INSTALL等说明文件 它会告诉你怎样才能成功安装
通常从源码包安装软件的步骤是:
tar jxvf gtk+-2.4.13.tar.bz2解开源码包
cd gtk+-2.4.13/ 进入源码目录
./configure 似乎在某些环境下./configure会造成终端退出。而使用. configure则会正常运行,如果有这个现象,就试试 . configure。通过configure程序猜测主机信息,最终建立Makefile,以完成make,所以如果./configure不成功而去make的话,就会出现"make: *** No targets specified and no makefile found. Stop."
make 当./configure成功结束后,就开始正式编译程序了.
make install 编译成功后使用make install安装
make uninstall 某些软件支持卸载,可能使用该方法卸载,如果支持的话,通常会在README中写到(似乎比较少)
configure程序带有很多参数,可以通过 ./configure --help查看详细内容,通常位于前面的是常规configure的参数说明,末尾是该程序的可用参数说明。
./configure --prefix=/usr 指定安装目录,通常从源码包编译安装的软件默认会放在/usr/ local下因为这是FHS(Filesystem Hierarchy Standard)的规定,不知道什么是FHS?看看这篇文章吧: http://www.pathname.com/fhs/pub/fhs-2.3.html 相信它会让你对linux系统结构有更好的理解,很值得读读。
再说一下几个关系到能否成功编译的东东:/etc/ld.so.conf ldconfig PKG_CONFIG_PATH
(1)首先说下/etc/ld.so.conf: 这个文件记录了编译时使用的动态链接库的路径。默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件如果你安装了某些库。
举例:
比如在安装gtk+-2.4.13时它会需要glib-2.0 >= 2.4.0,辛苦的安装好glib 后没有指定 --prefix=/usr 这样glib库就装到了/usr/local下,而又没有在/etc/ld.so.conf中添加/usr/local/lib 这个搜索路径,所以编译gtk+-2.4.13就会出错了 对于这种情况有两种方法解决: 一:在编译glib-2.4.x时,指定安装到/usr下,这样库文件就会放在/usr/lib中,gtk就不会找不到需要的库文件了 Smile 对于安装库文件来说,这是个好办法,这样也不用设置PKG_CONFIG_PATH了 (稍后说明)
二:将/usr/local/lib加入到/etc/ld.so.conf中,这样安装gtk时就会去搜索/usr/local/lib,同样可以找到需要的库 Smile 将/usr/local/lib加入到/etc/ld.so.conf也是必须的,这样以后安装东东到local下,就不会出现这样的问题了。将自己可能存放库文件的路径都加入到/etc/ld.so.conf中是明智的选择 添加方法也极其简单,将库文件的绝对路径直接写进去就OK了,一行一个。例如: /usr/X11R6/lib /usr/local/lib /opt/lib (2)再来看看ldconfig是个什么东东吧 :它是一个程序,通常它位于/sbin下,是root用户使用的东东。具体作用及用法可以man ldconfig查到简单的说,它的作用就是将/etc/ld.so.conf列出的路径下的库文件 缓存到/etc/ld.so.cache 以供使用因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下/sbin/ldconfig 使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用的,结果编译过程中抱错,缺少xxx库,去查看发现明明就在那放着,搞的想大骂computer蠢猪一个。 ^_^ 切记改动库文件后一定要运行一下ldconfig,在任何目录下运行都可以。
(3)再来说说 PKG_CONFIG_PATH这个变量吧:。
经常在论坛上看到有人问"为什么我已经安装了glib-2.4.x,但是编译gtk+-2.4.x 还是提示glib 版本太低阿?为什么我安装了glib-2.4.x,还是提示找不到阿?。。。。。。"
都是这个变量搞的鬼。先来看一个编译过程中出现的错误 (编译gtk+-2.4.13):
checking for pkg-config... /usr/bin/pkg-config checking for glib-2.0 >= 2.4.0 atk >= 1.0.1 pango >= 1.4.0... Package glib-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `glib-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'glib-2.0' found configure: error: Library requirements (glib-2.0 >= 2.4.0 atk >= 1.0.1 pango >= 1.4.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them. [root@NEWLFS gtk+-2.4.13]# 很明显,上面这段说明,没有找到glib-2.4.x,并且提示应该将glib-2.0.pc加入到 PKG_CONFIG_PATH下。 究竟这个pkg-config PKG_CONFIG_PATH glib-2.0.pc是做什么的呢?
先说说它是哪冒出来的,当安装了pkgconfig-x.x.x这个包后,就多出了pkg-config,它就是需要PKG_CONFIG_PATH的东东
pkgconfig-x.x.x又是做什么的? 来看一段说明: 代码: The pkgconfig package contains tools for passing the include path and/or library paths to build tools during the make file execution. pkg-config is a function that returns meta information for the specified library. The default setting for PKG_CONFIG_PATH is /usr/lib/pkgconfig because of the prefix we use to install pkgconfig. You may add to PKG_CONFIG_PATH by exporting additional paths on your system where pkgconfig files are installed. Note that PKG_CONFIG_PATH is only needed when compiling packages, not during run-time.
我想看过这段说明后,你已经大概了解了它是做什么的吧。其实pkg-config就是向configure程序提供系统信息的程序,比如软件的版本啦,库的版本啦,库的路径啦,等等这些信息只是在编译其间使用。
你可以 ls /usr/lib/pkgconfig 下,会看到许多的*.pc,用文本编辑器打开会发现类似下面的信息: 代码:
prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include glib_genmarshal=glib-genmarshal gobject_query=gobject-query glib_mkenums=glib-mkenums Name: GLib Description: C Utility Library Version: 2.4.7 Libs: -L${libdir} -lglib-2.0 Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include 明白了吧,configure就是靠这些信息判断你的软件版本是否符合要求。并且得到这些东东所在的位置,要不去哪里找呀。不用我说你也知道为什么会出现上面那些问题了吧。 解决的办法很简单,设定正确的PKG_CONFIG_PATH,假如将glib-2.x.x装到了/usr/local/下,那么 glib-2.0.pc就会在 /usr/local/lib/pkgconfig下,将这个路径添加到PKG_CONFIG_PATH下就可以啦。并且确保 configure找到的是 正确的glib-2.0.pc,就是将其他的lib/pkgconfig目录glib-2.0.pc干掉就是啦。(如果有的话 ^-^) 设定好后可以加入到~/.bashrc中,例如:
[root@NEWLFS~]#PKG_CONFIG_PATH=/opt/kde-3.3.0/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/pkgconfig:/usr/X11R6/lib/pkgconfig [root@NEWLFS ~]#echo $PKG_CONFIG_PATH /opt/kde-3.3.0/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/pkgconfig:/usr/X11R6/lib/ pkgconfig 从上面可以看出,安装库文件时,指定安装到/usr,是很有好处的,无论是/etc/ld.so.conf还是PKG_CONFIG_PATH默认都会去搜索/usr/lib的,可以省下许多麻烦。不过从源码包管理上来说,都装在/usr下管理是个问题,不如装在/usr/local下方便管理其实只要设置好ld.so.conf,PKG_CONFIG_PATH路径后,就OK啦 ^_^
另外某些软件因为版本原因(比如emacs-21.3),在gcc-3.4.x下编译无法成功,(make 出错) 使用低版本的gcc就可能编译通过。可能是因为gcc-3.3.x和gcc-3.4.x变化很大的缘故吧。
暂时想到了这么多,先记下这些吧,如果你对源码包编译有了一点的了解,就不枉我打了这么半天字啦。 ^_^ 另外./configure 通过,make出错,遇到这样的问题比较难办,只能凭经验查找原因,比如某个头文件没有找到,这时候要顺着出错的位置一行的一行往上找错,比如显示xxxx.h no such file or directory 说明缺少头文件然后去google搜。或者找到感觉有价值的错误信息,拿到google去搜,往往会找到解决的办法。还是开始的那句话,要仔细看README,INSTALL 程序如何安装,需要什么依赖文件,等等。 另外对于newbie来说,编译时,往往不知道是否成功编译通过,而编译没有通过就去make install必然会出错,增加了解决问题的复杂性,可以通过下面方法检查是否编译成功:
一:编译完成后,输入echo $? 如果返回结果为0,则表示正常结束,否则就出错了 echo $? 表示检查上一条命令的退出状态,程序正常退出 返回0,错误退出返回非0。 二:编译时,可以用&&连接命令, && 表示"当前一条命令正常结束,后面的命令才会执行",就是"与"啦。这个办法很好,即节省时间,又可防止出错。例: ./configure --prefix=/usr && make && make install October 24 巨堵的北京交通太堵了,以至于我每天都提心吊胆的担心迟到,在坐公交还是打车之间犹豫(好像最后没有一次打车,最后都是狠狠心坐公交,跟堵车和司机们拼了,跟他们死磕)。
在北京最明智的交通工具就是自行车了,环保,省钱,不用担心迟到,锻炼身体。。。。自行车 的好处说不完阿。。。。可是俺的自行车都已经丢了四五辆了,都丢伤心了。。。。
买车排在计划中,买就买个破的,破的不能再破的,破的连小偷都看不上眼的,有轮子就可以了,呵呵 October 17 perl中打开文件的方法先找一段网上不错的评论:
“句柄”是perl得到数据的一种方法,是perl进程与外部建立连接的桥梁,它与文件、过程、目录等建立起一种关联的关系,对这个概念的理解关键在“柄”一字。在perl中提供文件句柄和目录句柄两种。perl中不用特殊的字符来表示句柄,一般用大写字符来识别。
perl提供三种标准的文件句柄:STDIN、STDOUT、STDERR,它们由程序的父进程建立,并自动打开文件或设备。 然后打开文件的方法:
方法一:采用open方法获得文件句柄
读:open(文件句柄,"<文件名")/open(文件句柄,"文件名"),前提文件必须已经存在,否则会返回0,出错信息在$!中。
写:open(文件句柄,">文件名"),文件如果不存在,那么创建之,如果存在,内容被清空,长度截为0,$!中有出错信息。 追加:open(文件句柄,">>文件名"),基本同写,但有一点,文件中的内容不会被清空,新的内容会追加到原文后面。 读写:open(文件句柄,"+<文件名"),通过“+<”模式,你可以既可以读文件,又可以写文件。你可以通过tell() 函数在文件内部移动,通过seek()函数进行定位。如果文件不存在,就会被创建。如果文件已经存在,原来的数据不会被清除。 open(文件句柄,"+>文件名"),通过“+》”模式,可以同时读写文件,但与上面不同的是,它是破怀性写,会清除原来的内容。 例子: open(FD,"info.txt")||die("Can not open the file!$!n"); @line=<FD>; close(FD); 上面的例子是打开info.txt这个文件并把文件内容读入@line中,关闭文件。 方法二:采用new FileHandler方法
use FileHandle;
my $filehandle = new FileHandle("file");
关闭文件的方法跟上边两方法对应
方法一:close(FD);
方法二:close($filehandle);或者$fileHandle->close();
perl中defined函数的作用语法:defined($param)
用法:函数defined返回0、false或者非0、true。此运算结果依赖于传递给它进行计算的参数的内容。如果参数中不含有字符和数字值,则返回0;如果参数中包含一个字符或者数字值,则返回非0或者true值。这对于判断一个已经建立的数组中的每个元素是否已经定义非常有用。
注释:此函数作用不是判断某个变量是否已经定义,而是用来判断某个变量是否为空。 鼎好的开门时间是早上九点钟跑了一段冤枉路,还差点迟到。我比鼎好的小老板来的都早。
断网第一天,没有上网,看老婆,吃肯德基,吃的不少。。。。现在都感到饱。 October 16 没什么可说的,渡过了一个无聊的周末都忘记了周五下班后干嘛了。周五周六好像挺早睡觉的,到早上十一点才爬起来,睡了一个大懒觉。
周六混混沌沌的,打了几个电话,跟好久没有联系的哥们聊了几句,自己做了点饭吃,嘿嘿,要是在平时,我才不做呢。
不过老是这样也不好,家里网络开通不是个好事情,今天早上路过小区招贴栏的时候,看到ADSL终于进小区了,可是网通早干嘛来,不管如何,都决定要断网了。原来是因为工作需要装的宽带,现在也应该结束它的使命了。断网之后我觉得可以省下很多很多时间,做很多很多的事情,真是很爽呢。 October 13 长城宽带真是TM的慢断断续续,老牛拉破车。曾经做过一次试验,12个小时之内给我换了24个IP。访问国内大网站的速度还可以,访问国外网站的速度基本上是零。昨天晚上一个网页半个小时都没有打开,丫的上网系统估计是手工传递的吧。
晚上收到一条短信,今年毕业的同学去百度笔试了,凭他的能力,肯定没有问题,祝他好运。 October 12 行走在感冒和非感冒的边缘就要感冒了,鼻塞,嗓子干,天气挺冷晚上还不想盖被子,我终于发现向阳的房子也有它的缺点了,就是太热。十月份的天,关着窗子,站在阳台上,就像一个蒸笼,还好白天不在家,没什么可写的,写晚上看电影显得我太空虚,干脆去找点治疗感冒的方法得了。
(1)治疗感冒,我的方法就是抗住,跟丫死磕。通常的情况下,就是第一天感冒,晚上早早的睡个好觉,第二天就神奇的好了(而且这个方法还特别灵验)。
(2)在第一个方法的基础上,如果抗不住,就加衣服,平时多喝水;如果还是抗不住,就乖乖的去医院拿药去了吧(好像我还从来没有因为感冒去过医院)。
去网上查查,得到如下资料:
感冒很好治疗,一旦引发并发症,其并发症很不好治愈,花钱也比较多。感冒的并发症通常是引发高烧、鼻咽、咽炎、支气管炎、肺炎、扁桃腺炎。合并了上述并发症没有一周到两周的时间是治不愈的,所以要花几十元、上百元才能治愈。
感冒分两种:1、是伤风;2、是热伤风。 感冒的病因也分两种:1、是细菌性的;2、是病毒性的。 感冒的早期症状:流稀鼻涕、大喷嚏、咽部痒、嗓子痛、周身发冷,每个人的感受不一样,自己要总结每次感冒的最初症状是什么,记住它,下次再发现这个症状,你就应该马上意识到自己感冒了,马上吃感冒药就会治愈。 多次实践证明,感冒早期症状出现后4小时内吃了感冒药就会治好,不发生合并症。若感冒早期症状出现后8小时内没吃感冒药的话,病情就加重就会合并并发症。治起来就麻烦了。 看来得赶快吃药了
October 11 开路难刚刚发誓,要开始写日志,昨天终于没有写成,可能是有很多原因吧,理由是很多的,只要想找,呵呵。
既然已经答应,就得照章办事,否则只是空话,至少也得对得起自己,哪怕每天没有那么多事情,也得写写,至少每天得留下什么东东。将来有点回忆,呵呵。
想想我昨天都有什么奇遇,除了工作之外,好像也没有,难道中午出去也要算吗?虽然吃的相对不错(相对于中芯或者B1),水煮鱼才18块钱一份,附近都已经吃遍了,而且都吃腻了,吃恶心了。旁边的东海去过两次,太贵,吃不起;第三级的江南厨子吃过一次,也是太贵,拿着菜单直发愣,想找一百块钱以下的菜都难啊(这三次不掏钱,忽悠蹭饭吃,呵呵)。
工作很艰苦,基本上处于零的状态,起步很艰难,需要一点一点的积累。开路难,行路难啊.... |
|
|