FoxitReader在CentOS6中的使用

在FoxitReader官网上下载了适合于Linux的软件,但是使用的时候提示如下错误:

FoxitReader: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

解决方法:

# yum provides \*/libgtk-x11-2.0.so.0
# yum install gtk2-2.18.9-12.el6.i686

第一条命令查看提供文件libgtk-x11-2.0.so.0的rpm包,第二条命令安装对应的包。
现在可以正常运行FoxitReader命令,但是在终端中会有一些Gtk-Message,安装如下包可以解决:

# yum install PackageKit-gtk-module-0.5.8-21.el6.i686 \
libcanberra-gtk2-0.22-1.el6.centos.i686

Linux下PHP的mcrypt模块安装

参考:http://www.linuxidc.com/Linux/2009-05/20108.htm

1. 下载并安装libmcrypt-2.5.8.tar.gzmhash-0.9.9.tar.gzmcrypt-2.6.8.tar.gz

2. 安装php-devel,只有安装了php-devel后才会有命令phpize。

3. 下载相应的php版本的源码包,并解压缩后进入源码包的ext/mcrypt目录,执行:

# phpize
# ./configure && make && make install
# echo 'extension=extname.so' >> /etc/php.ini

CentOS安装php5.2

捣鼓了好久才搞定。

当前,CentOS6默认安装的php是5.3版本,使用默认源更新着会将php更新到5.5版本;CentOS5默认安装的php是5.1.6版本,使用默认源则不会更新。而当要使用最新的wordpress时候,需要的php最低版本是5.2.4;而要使用很多电子商务网站的php源码的时候,需要的php版本则要低于5.3版本,同时需要安装ZendOptimizer。

1.使用本地源来安装mysql和php及其组件

为此,于是重新安装额CentOS5.9的系统,然后通过系统盘创建了本地源,并使用本地源更新了php和mysql的其它模块。

# alias yumlocal='yum --disablerepo=\* --enablerepo=c5-media'
# yum install php* *mysql*  --skip-broken

只有更新php和mysql的其它模块,电子商务等php源码才能正常挂到网上。

2.更新php到5.2版本

参考该博客的一篇文章:http://www.webtatic.com/packages/php53/,提供了一个源用于更新php到5.2。

# rpm -Uvh http://mirror.webtatic.com/yum/centos/5/latest.rpm
# echo 'xclude=php*5.3*' >> /etc/yum.conf
# yum --enablerepo=webtatic install php
# yum --enablerepo=webtatic update php
# yum --enablerepo=webtatic install php php-xml php-ldap php-devel php-common php-gd php-mysql php-cli php-mbstring php-dba php-bcmath php-pear

以上第1条命令添加源;第2条修改yum配置文件,设置php不要更新到5.3;第3条安装php;第4条更新php及相关模块。

3.安装ZendOptimizer

现在的很多网站需要ZendOptimizer来进行网站加速加密。但是ZendOptimizer仅运用php5.3版本以下。当然ZendOptimizer有相应的升级版本Zend Guard Loader,支持php5.3及以上版本。但是很多网站的运行在Zend Guard Loader和php5.3及以上版本中无法运行。因此,需要安装ZendOptimizer。

使用搜索引擎搜索“ZendOptimizer3.3.9 linux x86_64”来下载ZendOptimizer3.3.9版本,然后进行安装:

# tar zxf ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz
# cp ZendOptimizer-3.3.9-linux-glibc23-x86_64/data/5_2_x_comp/ZendOptimizer.so /usr/lib64
# echo 'zend_extension=/usr/lib64/ZendOptimizer.so' >> /etc/php.ini
# /etc/init.d/httpd restart

CentOS安装zend

PHP 5.3 下,Zend Optimizer 已经被全新的 Zend Guard Loader 取代。

1. 下载对应版本的 Zend Guard Loader 压缩包,使用”php –version”参看php版本,然后下载对应php版本和系统32位或64位版本的安装包。(http://www.zend.com/en/products/guard/downloads)

2. 解压缩得到ZendGuardLoader.so(Linux)或 ZendLoader.dll(Windows)。将之复制到指定的系统路径下,比如 /usr/lib64/

3. 修改 /etc/php.ini 文件,在首行以下加入如下几行:

; Add the following line to your php.ini file for loading the ZendGuardLoader:
zend_extension=/usr/lib64/ZendGuardLoader.so
; Add an aditional line to your php.ini for enabling ZendGuardLoader
; Enables loading encoded scripts. The default value is On
zend_loader.enable=1
; Disable license checks (for performance reasons)
zend_loader.disable_licensing=0
; The Obfuscation level supported by Zend Guard Loader. The levels are detailed in the official Zend Guard Documentation. 0 - no obfuscation is enabled
zend_loader.obfuscation_level_support=3

4. 重启web服务,使用“php -v”查看安装情况。

ssh使用80端口进行登录

校园网只对外开放80端口,当多天出差的时候需要登录服务器。此时,需要将ssh默认的22端口改为80端口。同时,若占用了80端口,服务器对外的www服务则不能访问了,为了解决此矛盾,按如下方式解决:

1. 修改端口

# cd; pwd
/root
# cat > chport.sh
#!/bin/bash
perl -p -i -e 's/^Port 22/Port 80/' /etc/ssh/sshd_config
perl -p -i -e 's/^Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf

/etc/init.d/sshd stop
/etc/init.d/httpd stop

/etc/init.d/sshd start
/etc/init.d/httpd start

clear
ctrl + d
# chmod 755 chport.sh
# /root/chport.sh

以上命令建立了一个脚本文件/root/chport.sh。该文件用于修改sshd和http服务的端口,将sshd端口改为80,将httpd的端口改为8080.

这样,修改端口后,即可在外网使用如下命令登录服务器:

$ ssh -X -p 80 user@ip

2. 连接服务器后再改回端口

为了正常进行www服务器的访问,需要在登录进服务器后,将端口改回。这样通过ssh连接到了服务器,同时也能进行www访问了。

# cd; pwd
/root
# cat > rtport.sh
#!/bin/bash
perl -p -i -e 's/^Port 80/Port 22/' /etc/ssh/sshd_config
perl -p -i -e 's/^Listen 8080/Listen 80/' /etc/httpd/conf/httpd.conf

/etc/init.d/sshd stop
/etc/init.d/httpd stop
ctrl + d
# chmod 755 rtport.sh
# /root/rtport.sh

3. 登录到root时自动还原端口,退出root时自动修改端口

登录到了root,则不需要修改后的端口了,这是需要正常的www服务了。这时可以修改.bashrc文件;而退出root的时候,则需要修改端口,否则,下次登录就登录不上去了。这时,可以修改.bash_logout文件。

# cat >> /root/.bashrc
/root/rtport.sh
ctrl + d
# cat >> /root/.bash_logout
/root/chport.sh
ctrl + d

4. crontab定时修改或还原端口

若在还原端口后,突然断网导致中断链接,则再也不能登录服务器了,那不就悲剧了,特别是出差在外,不能回校的时候。此时就需要使用crontab来定时运行上述脚本:

# crontab -e
0       *       *       *       *       /root/chport.sh
30      *       *       *       *       /root/rtport.sh
:wq

上述命令在每小时0分钟的时候修改端口,于是能使用ssh进行远程登录了;每小时30分钟时候,则还原端口,可以正常访问www服务。

当然,在使用ssh登录后,在sudo到root权限,则自动还原端口,正常访问www服务。必要的时候手动运行以上脚本来开启www服务以维持www服务的运行。

5. 解决httpd不能重启的问题

这样反复重启服务,可能造成httpd重启的时候出错,提示程序已死但是pidfile存在的错误。则需运行如下命令来解决:

# ipcs -s | grep apache | \
perl -e 'while(<>){@a=split /\s+/, $_;print "ipcrm sem $a[1]\n"}' | \
sh
# rm -f /var/lock/subsys/httpd
# /etc/init.d/httpd start

USB安装64位的CentOS6.4

一、方法1

1. 官网下载系统安装包

2. 将DVD1包烧录至U盘

在windows系统下可以使用Ultraiso

3. 替换vesamenu.c32文件

此步骤为关键的步骤,若不进行,则会在U盘引导计算机时,启动后卡在下面的界面:Press the key to begin the installation process。

使用CentOS6.0版本的vesamenu.c32文件替换U盘中syslinux/目录下的vesamenu.c32文件,即可。

4. 镜像文件

64位的镜像文件较大,需要将DVD1文件复制到一个可以容纳该文件的文件系统中。使用Ultraiso烧录的U盘为fat文件系统,不能装入镜像文件;常用的windows下NTFS文件系统不能被centos识别。推荐另外找快容量较大的U盘或移动硬盘,格式换成linux系统识别的ext4文件系统。然后将DVD1文件复制到ext4文件系统的磁盘根目录下;同时提取iso文件中的image文件夹到该磁盘根目录下。

此步骤也关键,否则,“定位在 Hard drive 上, directory holding image”此关就过不去了。

参考自:http://blog.chinaunix.net/uid-22566367-id-3346333.html,可以在该站点下载到 vesamenu.c32.zip

此方法本人使用来一次,发现安装完毕后没能引导进入系统。推荐第二种方法,一次性成功。

二、方法2

方法来自:如何利用Usb盘安装CentOS操作系统20111208

1. 准备好CentOS镜像和容量足够的U盘,8G以上为宜

2. 在Linux上对U盘进行分区和文件系统创建

以下方法将U盘分成两个区:第一个区大小150M,用于fat32文件系统;第二个分区大小为剩下的所有部分,用于ext2文件系统。

# fdisk /dev/sdb
m    帮助命令
d    删除磁盘分区,如果有已经存在多个分区,多次该命令
n    新建分区
p    选择分区为主分区
1    第一个分区
  回车选择分区起始为默认的磁柱1开始
+150M    选择第一个分区大小为150M
t    分区的文件系统类型
l    列出所有的文件系统类型
b    选择文件系统为fat32

n    新建分区
p    选择分区为主分区
2    第二个分区
  回车选择分区起始为默认的磁柱开始
  回车选择分区结束区为最后的磁柱末

a    选择启动分区
1    以第一分区为启动分区
w    写入分区格式

分区完后,对分区进行格式化:

# mkfs.vfat -n BOOT /dev/sdb1
# mkfs.ext2 -m 0 -b 4096 -L DATA /dev/sdb2

以上第2个命令可能需要等待很长时间。

3. 挂在U盘分区并拷入文件

3.1 在默认情况下,重新插上U盘,则会自动将U盘分区挂载到了/media目录下。若默认情况下不挂载,则手动挂载如下:

# mkdir /media/BOOT /media/DATA
# mount /dev/sdb1 /media/BOOT
# mount /dev/sdb2 /media/DATA
# mount -ro loop CentOS-6.4-x86_64-bin-DVD1.iso /mnt

以上命令中也将CentOS6.4的镜像文件挂载到了/mnt中。

接下来需要将镜像文件中的isolinux文件夹拷贝到U盘的第一分区中,并稍作修改,并让第一分区作为启动分区,用来启动CentOS的安装界面;将镜像文件拷贝到U盘第二分区,支持整个系统的安装,同时将镜像中的images/install.img拷贝到U盘第二分区,用于系统的安装。

# cp CentOS-6.4-x86_64-bin-DVD1.iso /media/DATA/
# mkdir /media/DATA/images
# cp /mnt/images/install.img /media/DATA/images/

# yum install syslinux
# syslinux -s /dev/sdb1    配置syslinux在U盘第一分区
# dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb    写入MBR

# cp /mnt/isolinux/ /media/BOOT/syslinux
# mv /media/BOOT/syslinux/isolinux.cfg /media/BOOT/syslinux/syslinux.cfg
# rm -f /media/BOOT/syslinux/isolinux.bin

# umount /mnt
# umount /media/BOOT
# umount /media/DATA

至此,CentOS的U盘启动安装盘作好了,可以用于CentOS系统的安装。不需要像第一个方法中变更vesamenu.c32文件,这样可能是导致安装完毕后无法正常引导系统的原因。

需要注意的是,我是将第二分区内的镜像文件和images文件夹一起放在了centos文件夹下面;这样按如何利用Usb盘安装CentOS操作系统20111208中所述,则需要修改/media/BOOT/syslinux/syslinux.cfg文件,在文件中加入下述的斜体字部分。好处是让第二分区在进行正常文件存放时更整洁。

append initrd=initrd.img repo=hd:sdb2:/centos

同时,在安装过程中我卡在了“定位在 Hard drive 上, directory holding image”这一关卡上。首先硬盘驱动里面只有/dev/sda,没有/dev/sdb。于是我换了个USB插口,就能显示了(可能是USB口原因,或需要重新插拔U盘)。然后在下面的横线中出现的”/images/install.img”前面手动加上“/centos”,于是正确定位到了该文件(默认情况下不需要加“/centos”)。

ssh不提示将ip加入到known_hosts

需要使用ssh连接到指定的主机,然后运行一个命令后退出。但是该主机每次重新联网都会变化IP(PPOE上网).这时每次ssh的连接默认情况下会询问是否将主机ip永远加入到本地的~/.ssh/know_hosts中。

这种情况下则所需要的命令不会运行。比如运行程序:

$ ssh user@ip_address "mplayer ~/musics/audio/alarms/Beeps.mp3"

以上命令的目是主机上的声音。将此命令在远端服务器运行,来播放本地机上的一个提醒铃声。但是本地主机没有固定IP的时候,就不会有提醒。于是进行如下设置:

更改/etc/ssh/ssh_config文件

StrictHostKeyChecking no

远程服务器的命令——到本地声音提醒

使用ssh连接远程服务器后。每当运行一个较长的程序时候,不想一直等待,需要该程序结束后能有声音提醒。这时候可以参考我的使用方法:

1. 下载一些提醒铃声到本地文件中

本地一个铃声的存放路径:
~/musics/audio/alarms/Beeps.mp3

2. 和远程服务器相互设置无密码的ssh登录

参考我以前的一篇文章:CentOs配置OpenSSH无密码登陆

3. 编写脚本alarm.pl放置于服务器的系统路径下

#!/usr/bin/perl
use strict;

my $whoami = `whoami`;
$whoami =~ s/\s*//g;

my $lastlog = `lastlog`;

my $ip_address;

if ( $lastlog =~ m/^$whoami.*?(\d+\.\d+\.\d+\.\d+)/m ) {
	$ip_address = $1;
} else {
	die;
}

print "The ip_address is $ip_address\n";

my $commond = "ssh chenlianfu\@$ip_address \"mplayer -loop 0 ~/musics/audio/alarms/Beeps.mp3\"";
print "$commond\n";

`$commond`;

4. 每次执行运算时间较长的程序时则紧跟着运行 alarm.pl 则会在程序运行完毕后在本地计算机上提醒。

perl笔记

1. select函数

select FileHandl
该函数用来设置输出的文件句柄为默认文件句柄,并返回以前默认的文件句柄。最原始的默认文件句柄是 ‘main::STDOUT’ ,即标准输出。为了输出的方便,可以使用该函数指定默认的输出。
使用例子:

open FILE, '>', "job";
$oldHandle = select ( FILE );
print "This is sent to $oldHandle\n";print "This is sent to $oldHandle\n";
$origin = select ( $oldHandle );
print "This is sent to $origin\n";

2. 查找perl模块或卸载

使用以下命令列出所有perl模块的位置。eg:通过grep GD,来找出GD模块所处位置,然后直接rm掉即可。

$ perl -MFile::Find -le 'finddepth({wanted=>sub{print $_ if/\.pm$/},no_chdir=>1},@INC)' | grep 'GD'
/usr/local/lib64/perl5/GD.pm
/usr/local/lib64/perl5/GD/Simple.pm
/usr/local/lib64/perl5/GD/Polygon.pm
/usr/local/lib64/perl5/GD/Image.pm
/usr/local/lib64/perl5/GD/Group.pm
/usr/local/lib64/perl5/GD/Polyline.pm
/usr/local/share/perl5/GD/SVG.pm
/usr/local/share/perl5/Bio/Graphics/GDWrapper.pm
/usr/lib64/perl5/GDBM_File.pm

3. 十进制转二进制

$a = sprintf("%b",$a)+0;

使用代理上国外网站

经常的,会遇到重要的国外网站上不去。比如著名的bowtie软件,在国内就上不去该网站了。或者google时常抽风。欲解决这些问题,则要开启一些代理来正常访问国外的网站,以下是具体的方法:

1. 从一些网站搜索大量的代理IP

代理IP网来得到一些代理IP。此时打开该网站主页,选择国外代理页面。

$ wget http://www.dlipw.com/a/guowaidailiip/2013/0330/4269.html
下载了该网页的所有内容
$ grep -P "\d+\.\d+\.\d+\.\d+:\d+" 4269.html > IPs
通过perl的正则表达式提取出含ip地址的行
$ perl -p -i -e 's/^.*(\d+\.\d+\.\d+\.\d+:\d+).*$/$1/' IPs
继续将ip地址和端口提取出来,每行一个ip地址和端口信息

2. 代理猎手软件Proxy Hunter来验证IP

代理猎手软件解压缩后,在windows下打开直接使用。代理猎手下载网页:http://www.orsoon.com/soft/down3555.html。其使用方法:

验证数据设置:
选择系统菜单——参数设置——验证数据设置——添加——验证地址输入:http://bowtie-bio.s
ourceforge.net/index.shtml——特征字串输入:ultrafast——确定。
导入并验证IP:
点击搜索结果——导入结果,通过浏览来打开上一步骤中的文件——验证全部——Free的结果即为我
们需要的代理IP了。

使用以上方法搜索出的几个结果:

2.133.93.50:9090
2.135.237.92:9090
2.135.237.98:9090
2.181.177.7:8080
2.183.155.2:8082
2.184.30.2:8080
2.184.31.2:8080
5.8.242.11:8080
2.184.30.2:8080
2.183.155.2:8082
5.199.166.250:3128
1.34.181.22:110

3. firefox方便地代理上网

安装附加组件AutoProxy方便地代理上网,以免自己手动切换的麻烦。该组件设置一些规则,指定一些网站代理上网,其它网张正常上网。

4. 一些在线网页版的代理

http://proxyie.cn/