rpm -i your-package.rpm
其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。
安装过程中可能出现下面的警告或者提示:
... conflict with ... 可能是要安装的包里有一些文件可能会覆盖现有
的文件,缺省时这样的情况下是无法正确安装的可以用
rpm --force -i 强制安装即可
... is needed by ...
... is not installed ... 此包需要的一些软件你没有安装可以用
rpm --nodeps -i 来忽略此信息
也就是说,rpm -i --force --nodeps 可以忽略所有依赖关系和文件问题,什么包
都能安装上,但这种强制安装的软件包不能保证完全发挥功能
2.如何安装.src.rpm软件包
有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时
需要进行编译。这类软件包有两种安装方法,
方法一:
1.执行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件
4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
5. ./configure 这一步和编译普通的源码软件一样,可以加上参数
6. make
7. make install
方法二:
1.执行rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS
前两步和方法一相同
3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件
这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)
在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。
执行rpm -i new-package.rpm即可安装完成。
3.如何卸载rpm软件包
使用命令 rpm -e 包名,包名可以包含版本号等信息,但是不可以有后缀.rpm
比如卸载软件包proftpd-1.2.8-1,可以使用下列格式:
rpm -e proftpd-1.2.8-1
rpm -e proftpd-1.2.8
rpm -e proftpd-
有时会出现一些错误或者警告:
... is needed by ... 这说明这个软件被其他软件需要,不能随便卸载
可以用rpm -e --nodeps强制卸载
4.如何不安装但是获取rpm包中的文件
使用工具rpm2cpio和cpio
rpm2cpio xxx.rpm | cpio -vi
rpm2cpio xxx.rpm | cpio -idmv
rpm2cpio xxx.rpm | cpio --extract --make-directories
参数i和extract相同,表示提取文件。v表示指示执行进程
d和make-directory相同,表示根据包中文件原来的路径建立目录
m表示保持文件的更新时间。
5.如何查看与rpm包相关的文件和其他信息
下面所有的例子都假设使用软件包mysql-3.23.54a-11
1.我的系统中安装了那些rpm软件包
rpm -qa 讲列出所有安装过的包
如果要查找所有安装过的包含某个字符串sql的软件包
rpm -qa |grep sql
2.如何获得某个软件包的文件全名
rpm -q mysql 可以获得系统中安装的mysql软件包全名,从中可以获得
当前软件包的版本等信息。这个例子中可以得到信息mysql-3.23.54a-11
3.一个rpm包中的文件安装到那里去了?
rpm -ql 包名
注意这里的是不包括.rpm后缀的软件包的名称
也就是说只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。
如果只是想知道可执行程序放到那里去了,也可以用which,比如
which mysql
4.一个rpm包中包含那些文件
一个没有安装过的软件包,使用rpm -qlp ****.rpm
一个已经安装过的软件包,还可以使用rpm -ql ****.rpm
5.如何获取关于一个软件包的版本,用途等相关信息?
一个没有安装过的软件包,使用rpm -qip ****.rpm
一个已经安装过的软件包,还可以使用rpm -qi ****.rpm
6.某个程序是哪个软件包安装的,或者哪个软件包包含这个程序
rpm -qf `which 程序名` 返回软件包的全名
rpm -qif `which 程序名` 返回软件包的有关信息
rpm -qlf `which 程序名` 返回软件包的文件列表
注意,这里不是引号,而是`,就是键盘左上角的那个键。
也可以使用rpm -qilf,同时输出软件包信息和文件列表
7.某个文件是哪个软件包安装的,或者哪个软件包包含这个文件
注意,前一个问题中的方法,只适用与可执行的程序,而下面的方法,不仅可以
用于可执行程序,也可以用于普通的任何文件。前提是知道这个文件名。
首先获得这个程序的完整路径,可以用whereis或者which,然后使用rpm -qf例如:
# whereis ftptop
ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz
# rpm -qf /usr/bin/ftptop
proftpd-1.2.8-1
# rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt
proftpd-1.2.8-1
总结:
获得软件包相关的信息用rpm -q,q表示查询query,后面可以跟其他选项,比如
i 表示info,获得软件包的信息;
l 表示list,获得文件列表;
a 表示all,在所有包中执行查询;
f 表示file,根据文件进行相关的查询;
p 表示package,根据软件包进行查询
LAMP
配置环境
操作系统:Redhat Enterprise AS 4
已安装包:httpd2.0.4, mysql4.1,libxml2.6.16, zlib1.2.1.2,gd2.0.28, libpng1.2.7
说明:网上的各种安装说明都不是很好地说明了配置参数的来由,本文将尽可能标明每一步的必要性.已安装包不是必需的,其中mysql可以独立安装,而rpm包形式的httpd因为不是mod-so形式安装的,如果要支持php或者其它模块,要强制remove重安装编码版本. #rpm --nodeps --erase httpd
其它php可能需要的模块功能说明:
libxml2: xml解析库
zlib: 开源压缩库
gd: 图形库
libpng: 用来处理png图像格式文件的库
freetype: TrueType字体绘制引擎
ZendOptimizer:
第一步:安装apache
进入安装目录,依次执行下面命令:
解压源码包
# tar -zxf httpd-2.0.55.tar.gz
进入安装目录
# cd httpd-2.0.55
配置apache安装信息, 配置安装后目录,模块动态配置,允许重写重配置
# ./configure --prefix=/usr/local/apache --enable-modules=so --enable-rewrite
执行make安装
# make; make install
第二步:配置apache
修改httpd.conf文件
//ServerName 修改主机名称,若无dns,则用IP替代
ServerName 192.168.36.163:80
//DocumentRoot 修改文档路径,就是要放置目标网页的地方
DocumentRoot "/var/www/html"
//DirectoryIndex 修改默认的首页名称
DirectoryIndex index.html index.php index.htm
2 把PHP 5.2.3 zip package 里面的php_mysql.dll拷贝到PHP安装根目录,建议重新启动下IIS,再来调试phpMyAdmin 3.配置php.ini PHP5默认不支持MSQL,所以我们需要配置下PHP.INC (1) 设置扩展路径 查找 extension_dir 有这么一行 ;extension_dir = "./" 在此行后面加入一行(注意是加入一行,不是加到后面) extension_dir = "d:\php\ext" 其中d:\php是你安装php的路径。路径不正确将无法加载dll (2) 查找 extension extension=php_mbstring.dll extension=php_gd2.dll extension=php_mysql.dl 把上面3项前面的分号去掉,这样IIS启动时就可以加载这些dll了 (3) 设置会话保存路径 查找session.save_path 有这么一行 ; session.save_path = "N;/path" 在此行后加入一行 session.save_path = "C:\WINDOWS\Temp" 保存到你的临时目录下,这里完全可以保存到windows临时目录Temp下 (4) 还有比较值得注意的是 short_open_tag 默认是Off的
也就是说 php不能使用短标记如 ?> 必须使用 由于短标记使用方便,并且很多程序也是用短短标记来写,如discuz等 如果不把 short_open_tag 改成On将出现的症状将很难判断是上面原因,这里建议修改 查找 short_open_tag = Off 改为 short_open_tag = On (5) 是否显示错误 display_errors 出于安全性考虑,display_errors 也默认为 Off 就是说在调试时,如果php代码有误,就只出现一个空白页。而不会显示出错原因和出错行数。 这样调试起来将非常不便,建议根据自己需要修改 查找 register_globals = Off 改成 register_globals = On (6) register_globals 出于安全性考虑它默认也是Off 当register_globals=Off的时候,下一个程序接收的时候应该用$_POST['user_name']和$_POST['user_pass']) 当register_globals=On的时候,下一个程序可以直接使用$user_name和$user_pass来接受值。 建议根据自己需要修改 (7) php5时差问题 时间相差八小时 为什么呢?PHP5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时 查找date.timezone有这么一行 ;date.timezone = 将;去掉,改成 date.timezone = PRC
其中PRC:People's Republic of China ××× 第一个问题:“无法载入mcrypt扩展,请检查PHP配置”。 1、没有正确安装Mysql数据库,在系统服务中Mysql相关的服务没有启动。 2、在系统的 system32(C:\windows\system32) 目录下缺少 libmcrypt.dll文件,解决方法
是找到php目录下的libmcrypt.dll,并将libmcrypt.dll复制到C:\windows\system32目录中,然后重新启动Web服务。 3、在PHP目录下的php.ini文件中,没有将“;extension=php_mcrypt.dll”中的前面一个“;”去掉,所以不能使用相应功能,解决方法是打开php.ini文件,找到;extension=php_mcrypt.dll改成extension=php_mcrypt.dll //去掉前面的;使之生效
apache_1.3.11.tar.gz (服务器) mod_ssl-2.5.0-1.3.11.tar.gz (SSL接口模块) openssl-0.9.4.tar.gz (ssl安全和算法类库) mod_perl-1.21.tar.gz (perl接口模块) rsaref20.tar.Z(RSA算法包) perl5.005_03.tar.gz(perl环境)
2、mod_ssl - http://www.modssl.org/ 这是一个为Apache1.3.x web server提供强力加密的的软件模块,它使用的是SSL v2和v3 以及TLS(Transport Layer Security)v1 协议。该软件包是在BSD的license下开发的,在非商业的情况下,你可以自由地使用它,要判断该使用哪一个版本的mod_ssl很简单,它的版本号是-格式的,也就是说,你如果用的是1.3.11的Apache,那么就该用2.50-1.3.11的mod_ssl。 3、mod_perl - http://perl.apache.org/dist/ Apache1.3.x 的perl接口模块 4、Open SSL - http://www.openssl.org/ ?????? 这一软件包提供了SSL v2/v3(Secure Sockets Layer)及TLS v1(Transport Layer Security) 协议的加密保护。 5、RSAref - 用搜索引擎查找一下"rsaref20.tar.Z"应该就能找到了RSA加密算法的实现软件包 6、Perl减压缩、安装(详见Perl介绍) Perl是一种编程语言。它是一种非常流行的编程语言,在文本处理、端口通信、协调多个不同应用以及完成其他诸多任务时都受到人们的欢迎。Perl同时也是一种颇有名气的流行CGI编程语言,不过这只是Perl诸多应用中的一种 我们将把这些程序安装于/usr/local目录下增加功能模块可以给阿帕奇更强大的功能,如果你需要更多的模块的话,自己去获得它并且加载,比如mod_php这一模块也是现在流行的,可以使阿帕奇提供php脚本支持…… 三、软件包的安装 在实际安装前我们要决定我们将把web server安装在什么环境下,对于一个对安全有相当高要求的人来说,可以将服务器和软件安装于chroot环境,chroot改变root 目录并且仅在这一目录中执行程序,这提供了一个内建的小环境,即使***者已经通过cgi程序或者其它办法通过80端口获得了系统的进入权限,它也只能够在这一受限的环境中活动,从安全角度考量,这当然是最好的,但对系统管理员来说,这样安装相对麻烦一些,还必须把一些必要的库,perl以及相关工具也搬到chroot中,所以——你自己决定吧,这里我们介绍的是在chroot下安装。 展开这些软件包: #gzip -d -c apache_1.3.11.tar.gz | tar xvf - #gzip -d -c mod_ssl-2.5.0-1.3.11.tar.gz | tar xvf - #gzip -d -c openssl-0.9.4.tar.gz | tar xvf - #gzip -d -c mod_perl-1.21.tar.gz | tar xvf - 展开并且编译rsaref #mkdir rsaref #cd rsaref #gzip -d -c ../rsaref20.tar.Z | tar xvf - #tar xvf rsaref.tar #cp -rp install/unix temp #cd temp #make #mv rsaref.a librsaref.a #cd ../../
编译OpenSSL #cd openssl-0.9.4 #perl util/perlpath.pl /usr/bin/perl (Path to Perl) #./config -L`pwd`/../rsaref/temp/ #make #make test #cd .. 将mod_perl加到Apache的编译选项里 #cd mod_perl-1.21 #perl Makefile.PL APACHE_PREFIX=/usr/local/apache \ APACHE_SRC=../apache_1.3.11/src \ USE_APACI=1 你会得到下面的提示: Configure mod_perl with ../apache_1.3.11/src ? [y] 直接按enter就是默认的yes 然后Makefile会问你是否建立httpd,可以用n选择不。 #make #make install #cd .. 将mod_ssl加到Apache中 #cd mod_ssl-2.5.0-1.3.11 #./configure --with-apache=../apache_1.3.11 \ --prefix=/usr/local/apache \ --with-ssl=../openssl-0.9.4 \ --with-rsa=../rsaref/temp \ --activate-module=src/modules/perl/libperl.a #cd .. 编译Apache: #cd apache_1.3.11 在编译以前我们可以再做一件事——编辑包含http server版本号的文件,使想得到它的***者摸不着脑袋长哪儿:) # src/include/httpd.h 寻找下面的行 (approx. 454)并且改变server的名字及版本号——可以随便用你想改成的东西。 define SERVER_BASEVERSION "Apache/1.3.11" 现在你可以编译阿帕奇了 #make 现在你可以生成一个CA了(actual certificate). #make certificate 按照该授权书的安装介绍做。 #make install
这将会把阿帕奇装在/usr/local/apache。 测试web server (还没装SSL)是否运行正常 ----调用web server: /usr/local/apache/bin/apachectl start ?? 当WEB服务器运行起来后,你可以用 lynx或者任意什么浏览器连接你的80端口,如果能看到apache的欢迎页,就OK了。 停止server: /usr/local/apache/bin/apachectl stop 测试web server (同时起SSL) - 调用带SSL的WEB服务器 /usr/local/apache/bin/apachectl startssl 服务器运行时你用Netscape或者其它支持SSL的浏览器来看https://your.ip.here/,看到欢迎页了么? 要停止SERVER: /usr/local/apache/bin/apachectl stop ???? 四、阿帕奇的配置 现在我们可以来看看阿帕奇的配置文件了——需要记住的是如果你对它做了更改, 在未重新启动httpd守护进程前,它是不会发生作用的。好,现在我们可以进目录 /usr/local/apache/conf看看了。 httpd.conf - 这是阿帕奇的主要配置文件,你可以在这里设定服务器启动时的基本环境,比如服务 ?? 器的启动方式、端口号、允许的最多连接数等等,这一文件的注释非常详细,要看明 ?? 白应该没什么问题。 access.conf - 这一文件是设定系统中的存取方式和环境的,但现在已经可以在httpd.conf中设定了, 所以推荐你别动它,放空好了。 srm.conf - 这家伙主要做的是资源上的设定,你也可以放空,仅仅设定httpd.conf中的相关项。 现在重启web server来使改动生效: #/usr/local/apache/bin/apachectl restart
2、mod_ssl - http://www.modssl.org/ 这是一个为Apache1.3.x web server提供强力加密的的软件模块,它使用的是SSL v2和v3 以及TLS(Transport Layer Security)v1 协议。该软件包是在BSD的license下开发的,在非商业的情况下,你可以自由地使用它,要判断该使用哪一个版本的mod_ssl很简单,它的版本号是-格式的,也就是说,你如果用的是1.3.11的Apache,那么就该用2.50-1.3.11的mod_ssl。 3、mod_perl - http://perl.apache.org/dist/ Apache1.3.x 的perl接口模块 4、Open SSL - http://www.openssl.org/ ?????? 这一软件包提供了SSL v2/v3(Secure Sockets Layer)及TLS v1(Transport Layer Security) 协议的加密保护。 5、RSAref - 用搜索引擎查找一下"rsaref20.tar.Z"应该就能找到了RSA加密算法的实现软件包 6、Perl减压缩、安装(详见Perl介绍) Perl是一种编程语言。它是一种非常流行的编程语言,在文本处理、端口通信、协调多个不同应用以及完成其他诸多任务时都受到人们的欢迎。Perl同时也是一种颇有名气的流行CGI编程语言,不过这只是Perl诸多应用中的一种 我们将把这些程序安装于/usr/local目录下增加功能模块可以给阿帕奇更强大的功能,如果你需要更多的模块的话,自己去获得它并且加载,比如mod_php这一模块也是现在流行的,可以使阿帕奇提供php脚本支持…… 三、软件包的安装 在实际安装前我们要决定我们将把web server安装在什么环境下,对于一个对安全有相当高要求的人来说,可以将服务器和软件安装于chroot环境,chroot改变root 目录并且仅在这一目录中执行程序,这提供了一个内建的小环境,即使***者已经通过cgi程序或者其它办法通过80端口获得了系统的进入权限,它也只能够在这一受限的环境中活动,从安全角度考量,这当然是最好的,但对系统管理员来说,这样安装相对麻烦一些,还必须把一些必要的库,perl以及相关工具也搬到chroot中,所以——你自己决定吧,这里我们介绍的是在chroot下安装。 展开这些软件包: #gzip -d -c apache_1.3.11.tar.gz | tar xvf - #gzip -d -c mod_ssl-2.5.0-1.3.11.tar.gz | tar xvf - #gzip -d -c openssl-0.9.4.tar.gz | tar xvf - #gzip -d -c mod_perl-1.21.tar.gz | tar xvf - 展开并且编译rsaref #mkdir rsaref #cd rsaref #gzip -d -c ../rsaref20.tar.Z | tar xvf - #tar xvf rsaref.tar #cp -rp install/unix temp #cd temp #make #mv rsaref.a librsaref.a #cd ../../
编译OpenSSL #cd openssl-0.9.4 #perl util/perlpath.pl /usr/bin/perl (Path to Perl) #./config -L`pwd`/../rsaref/temp/ #make #make test #cd .. 将mod_perl加到Apache的编译选项里 #cd mod_perl-1.21 #perl Makefile.PL APACHE_PREFIX=/usr/local/apache \ APACHE_SRC=../apache_1.3.11/src \ USE_APACI=1 你会得到下面的提示: Configure mod_perl with ../apache_1.3.11/src ? [y] 直接按enter就是默认的yes 然后Makefile会问你是否建立httpd,可以用n选择不。 #make #make install #cd .. 将mod_ssl加到Apache中 #cd mod_ssl-2.5.0-1.3.11 #./configure --with-apache=../apache_1.3.11 \ --prefix=/usr/local/apache \ --with-ssl=../openssl-0.9.4 \ --with-rsa=../rsaref/temp \ --activate-module=src/modules/perl/libperl.a #cd .. 编译Apache: #cd apache_1.3.11 在编译以前我们可以再做一件事——编辑包含http server版本号的文件,使想得到它的***者摸不着脑袋长哪儿:) # src/include/httpd.h 寻找下面的行 (approx. 454)并且改变server的名字及版本号——可以随便用你想改成的东西。 define SERVER_BASEVERSION "Apache/1.3.11" 现在你可以编译阿帕奇了 #make 现在你可以生成一个CA了(actual certificate). #make certificate 按照该授权书的安装介绍做。 #make install
这将会把阿帕奇装在/usr/local/apache。 测试web server (还没装SSL)是否运行正常 ----调用web server: /usr/local/apache/bin/apachectl start ?? 当WEB服务器运行起来后,你可以用 lynx或者任意什么浏览器连接你的80端口,如果能看到apache的欢迎页,就OK了。 停止server: /usr/local/apache/bin/apachectl stop 测试web server (同时起SSL) - 调用带SSL的WEB服务器 /usr/local/apache/bin/apachectl startssl 服务器运行时你用Netscape或者其它支持SSL的浏览器来看https://your.ip.here/,看到欢迎页了么? 要停止SERVER: /usr/local/apache/bin/apachectl stop ???? 四、阿帕奇的配置 现在我们可以来看看阿帕奇的配置文件了——需要记住的是如果你对它做了更改, 在未重新启动httpd守护进程前,它是不会发生作用的。好,现在我们可以进目录 /usr/local/apache/conf看看了。 httpd.conf - 这是阿帕奇的主要配置文件,你可以在这里设定服务器启动时的基本环境,比如服务 ?? 器的启动方式、端口号、允许的最多连接数等等,这一文件的注释非常详细,要看明 ?? 白应该没什么问题。 access.conf - 这一文件是设定系统中的存取方式和环境的,但现在已经可以在httpd.conf中设定了, 所以推荐你别动它,放空好了。 srm.conf - 这家伙主要做的是资源上的设定,你也可以放空,仅仅设定httpd.conf中的相关项。 现在重启web server来使改动生效: #/usr/local/apache/bin/apachectl restart
一切运行正常后我们可以删除前面的那些服务器安装的东西——/usr/local下的, 包括服务器以及那些内建的模块等等。 #rm -rf /usr/local/apache #rm -rf /usr/local/mod_ssl-2.5.0-1.3.11/ #rm -rf /usr/local/mod_perl-1.21/ #rm -rf /usr/local/openssl-0.9.4/ #rm -rf /usr/local/rsaref 如果以后还想改变它们的配置,增加新的模块,那么将原先的apache留下来也行。 将阿帕奇设定为在开机时自启动,修改/etc/rc.d/rc.local并且加入以下行: echo "Starting Apache-SSL" /usr/sbin/chroot/apache/bin/apachectl startssl 如果一切都运行正常的话,那么恭喜你,你已经成功地运行了带SSL支持的阿帕奇 ?? 了,这会使你的web server更加安全,如果你希望加入更多的模块实现其它功能的 话,自己动手吧,最后要说明的是:在chroot环境中最好只有必需的一些二进制程 序,而SUID程序还是干掉比较好些。(http://www.fanqiang.com/) 进入【UNIX论坛】 注明: 在局域网中这样是可行的,但是在广域网可能会出现这样一种情况: 由于加密证书是我们自己生成并自签的,并没有得到广域证书提供商认可,可能在html连接上,会弹出提问,是否信任证书提供商(这个时候的证书提供商就是本公司)。如果想要得到广域证书提供商的证书,可以寻找相关网站,花费大概300-500美元,这样在html连接上,由于有了广域证书,就不会弹出上面的提问了。 第三节Perl介绍及安装 以版本 5.00503 为例,上述命令会在目前目录下建立一个 perl5.005_03 的子目录, 接著 cd perl5.005_03 ./Configure 这时 Configure 会尝试取得针对你的系统应有的设定值, 都按 [Enter] 就行了 如果您觉得按 [Enter]回答问题很累的話, ./Configure 这个命令可以换成./Configure -des, 那么 Configure 会直接使用它找出来的设定值, 不再寻求使用者的确认. 接下来 make make test