centos 加载so(centos镜像下载)
这篇文章给大家聊聊关于centos 加载so,以及centos镜像下载对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
CentOS5.3 - mysql-6.0.10-alpha 源代码和设置
1,下载mysql数据库源代码: mysql-6.0.10-alpha.tar.gz 2,解压文件比较多,解压也一段时间。 src]# tar vxzf mysql-6.0.10-alpha.tar.gz 3,进入目录进行->配置,编译,安装 ]# cd mysql-6.0.10-alpha配置生成 makefile文件 ]#./configure--sysconfdir=/etc checking for termcap functions library... configure: error: No curses/termcap library found出现错误,也就是生成 makefile文件出错了。 [root@localhost mysql-6.0.10-alpha]# make make:*** No targets specified and no makefile found. Stop.如果你硬要输入 make命令是不行的,因为 makefile根本没有生成成功。解决办法:我们加入--with-named-curses-libs=/usr/lib/libncursesw.so.5进行生成 makefile./configure--sysconfdir=/etc--with-named-curses-libs=/usr/lib/libncursesw.so.5 Thank you for choosing MySQL!看到这句话,生成 makefile成功了。下面进行make编译:需要的时间比较长。 ]# make编译安装虽然花费的时间比较长,但是它应该可以适合任何一个发行版本的 Linux,编译的中途过程我就不播放视频出来了,截断一部分。我现在已经编译完成。 make[1]: Leaving directory `/opt/mysql-6.0.10-alpha/sql-bench' Making all in win make[1]: Entering directory `/opt/mysql-6.0.10-alpha/win' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/opt/mysql-6.0.10-alpha/win'最后进行安装 ]# make install编译安装完毕,有时候需要很长时间,如何判断是否死机?注意观察主机的硬盘灯,编译安装时候硬盘灯是一闪一闪的,有数据读取。下面拷贝配置文件 ]# cp/usr/local/share/mysql/my-large.cnf/etc/my.cnf以后配置mysql,就修改/etc/my.cnf即可 4,初始化数据库# useradd-d/usr/local/var mysql# su- mysql$/usr/local/bin/mysql_install_db初始化出现错误。 Installing MySQL system tables... 090518 7:16:41 [ERROR]/usr/local/libexec/mysqld: unknown option'--skip-federated' 090518 7:16:41 [ERROR] Aborting 090518 7:16:41 [Note]/usr/local/libexec/mysqld: Shutdown complete我们解决办法是,先删掉/usr/local/var下的 mysql文件夹 rm-rf/usr/local/var/mysql然后修改 vi/etc/my.cnf找到skip-federated注释掉,也就是改成####skip-federated然后保存退出 su- mysql用会 mysql身份,来重新初始化/usr/local/bin/mysql_install_db这次成功了吧,没有出现错误信息。 5,启动服务器 [mysql@localhost var]$/usr/local/bin/mysqld_safe&现在成功了,用 netstat-tnl看到 3306熟悉的 mysql默认端口 6,登陆测试 [mysql@localhost local]$ mysql-u root成功的话,出现 mysql> mysql>\s mysql>\q可以使用 show databases;一般,如果你是编译安装mysql,建议你像我下面的做法提升为 root用户, su- cp/usr/local/share/mysql/mysql.server/etc/init.d/mysqld mysql关闭的命令为:/etc/init.d/mysqld stop [root@localhost~]#/etc/init.d/mysqld stop Shutting down MySQL.090518 07:26:41 mysqld_safe mysqld from pid file/usr/local/var/localhost.localdomain.pid ended SUCCESS!就会显示关闭成功。 mysql启动的命令为:/etc/init.d/mysqld start [root@localhost~]#/etc/init.d/mysqld start Starting MySQL. SUCCESS!下面修改服务器启动时候,就自动运行 mysql 6.0 vi/etc/rc.d/rc.local我把它运行在 tomcat前面,然后保存退出。#####################分隔######################--查看数据库的字符集 show variables like'character\_set\_%'; show variables like'collation_%'; 13:15浏览(587)评论(0)分类: CentOS 2009-07-21缩略显示 CentOS5.3编译 mod_jk 1.2.15链接器整合apache httpd和 tomcat关键字: centos mod_jk现在我们来做一个整合,也就是当访问 apache 80端口时候遇到 jsp文件也可以正常访问。如果不整合,你的apache 80是不能运行jsp文件的,只能使用8080端口,也就是tomcat来访问。如何整合呢?要借助一个叫做 apache tomcat的链接器。下面是官方网站的下载地址,目前为止最新版是 1.2.15。。。 文章最后我会把这个工具提供下载,如果官方网站太慢的话。首先下载 jakarta-tomcat-connectors-1.2.15-src.tar.gz到服务器解压 ]# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz注意是进入: jk/native这个目录 ]# cd jakarta-tomcat-connectors-1.2.15-src/jk/native请确认你的 apache的 apxs文件位置 native]#./configure--with-apxs=/usr/local/apache2/bin/apxs编译生成mod_jk native]# make拷贝编译完成生成的 mod_jk.so文件,这里也是要注意你的apache modules目录位置 native]# cp./apache-2.0/mod_jk.so/usr/local/apache2/modules/===============================================修改apache配置文件# vi/etc/httpd.conf在DirectoryIndex中添加 index.jsp<IfModule dir_module> DirectoryIndex index.html index.jsp</IfModule>增加关于加载mod_jk的语句: LoadModule jk_module modules/mod_jk.so Include/usr/local/apache2/conf/mod_jk.conf添加以下内容(添加的时候去掉注释,可能文件不能显示中文):######指出mod_jk模块工作所需要的工作文件workers.properties的位置 JkWorkersFile/usr/local/apache2/conf/workers.properties###### Where to put jk logs JkLogFile/usr/local/apache2/logs/mod_jk.log###### Set the jk log level [debug/error/info] JkLogLevel info###### Select the log format JkLogStampFormat"[%a%b%d%H:%M:%S%Y]"###### JkOptions indicate to send SSL KEY SIZE, JkOptions+ForwardKeySize+ForwardURICompat-ForwardDirectories###### JkRequestLogFormat set the request format JkRequestLogFormat"%w%V%T"######将所有servlet和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理 JkMount/servlet/* worker1 JkMount/*.jsp worker1 JkMount/*.do worker1把一些注释去掉吧,只些一些起作用的语句上去。保存退出。===================================================在/usr/local/apache2/conf/下面建立两个配置文件mod_jk.conf和workers.propertie注意:(如果没有 conf目录,可以建立,因为我安装时指定把 httpd.conf放在/etc下的,就没有 conf目录了)# vi mod_jk.conf添加以下内容(添加的时候去掉注释,可能文件不能显示中文):######指出mod_jk模块工作所需要的工作文件workers.properties的位置 JkWorkersFile/usr/local/apache2/conf/workers.properties###### Where to put jk logs JkLogFile/usr/local/apache2/logs/mod_jk.log###### Set the jk log level [debug/error/info] JkLogLevel info###### Select the log format JkLogStampFormat"[%a%b%d%H:%M:%S%Y]"###### JkOptions indicate to send SSL KEY SIZE, JkOptions+ForwardKeySize+ForwardURICompat-ForwardDirectories###### JkRequestLogFormat set the request format JkRequestLogFormat"%w%V%T"######将所有servlet和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理 JkMount/servlet/* worker1 JkMount/*.jsp worker1 JkMount/*.do worker1------------------------------------------------------------# vi workers.properties添加以下内容:####### Defining a worker named worker1 and of type ajp13 worker.list=worker1####### Set properties for worker1 worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009 worker.worker1.lbfactor=50 worker.worker1.cachesize=10 worker.worker1.cache_timeout=600 worker.worker1.socket_keepalive=1 worker.worker1.socket_timeout=300-------------------我的tomcat配置文件路径:/usr/local/tomcat/conf/server.xml最后编辑Tomcat的配置文件server.xml,在<Host段中加入:<Context path="" docBase="/usr/local/apache2/htdocs" debug="0" reloadable="true" crossContext="true"/>重新启动Apache和Tomcat。。。 [root@localhost bin]#./shutdown.sh Using CATALINA_BASE:/usr/local/tomcat Using CATALINA_HOME:/usr/local/tomcat Using CATALINA_TMPDIR:/usr/local/tomcat/temp Using JRE_HOME:/usr/java/jdk1.7.0 [root@localhost bin]#./startup.sh Using CATALINA_BASE:/usr/local/tomcat Using CATALINA_HOME:/usr/local/tomcat Using CATALINA_TMPDIR:/usr/local/tomcat/temp Using JRE_HOME:/usr/java/jdk1.7.0#/usr/local/apache2/bin/apachectl stop#/usr/local/apache2/bin/apachectl start刚才我在修改 httpd.conf可能写入了一些多余信息导致apache配置文件出错,我注释就可以了。在/usr/local/apache2/htdocs/下删掉 index.html建立一个index.jsp,写入一些简单的内容:<% out.println("Hello www.17rumen.com");%>用浏览器访问服务器 ,看到正确的页面了。说明apache遇到jsp页面,它可以提交给 tomcat去处理。。。 18:21浏览(315)评论(0)分类: CentOS 2009-07-21缩略显示 centos“You don't have permission to access/index.html on this server.”关键字: centos Forbidden You don't have permission to access/index.html on this server.开始我以为我配置出错,花半天时间都没有搞定,今天终于搞定了.原因:index.html是用root用户建的文件,apache权限不够。解决方法:更改文件权限;chmod 755 index.html 17:09浏览(498)评论(0)分类: CentOS 2009-07-17缩略显示 CentOS5.3编译安装 apache 2.2.11 web服务器(httpd-2.2.11.tar.gz)关键字: centos apache(现检测是否已经安装apapche,如果有的话请卸载后重新安装) 1,首先你必须下载: httpd-2.2.11.tar.gz当然你也可以到官方 上下载。 2,解压 src]# tar vxzf httpd-2.2.11.tar.gz 3,进入目录# cd httpd-2.2.11 httpd-2.2.11]#./configure--sysconfdir=/etc--enable-ssl--enable-modules配置文件放在/etc下 no SSL-C headers found configure: error:...No recognized SSL/TLS toolkit detected没有ssl我们,生成makefile文件失败,以后再安装 openssl也可以 httpd-2.2.11]#./configure--sysconfdir=/etc--enable-modules好,这次没有发现什么错误,--enable-modules这个强烈建议加上,也就是说以后apache可以添加其他的模块,方便很多。下面进行编译,make编译需要一定的时间,不过比起编译mysql要快些。 httpd-2.2.11]# make下面进行安装 httpd-2.2.11]# make install安装完成了。。。 4,启动服务测试一下吧。 ]#/usr/local/apache2/bin/apachectl start netstat-tnl可以看到 80端口,说明apache启动了。 tcp 0 0:::80:::* LISTEN打开浏览器进行访问吧。# ifconfig查看 Linux服务器ip地址。 inet addr:192.168.138.128 看到It works!说明正常工作了 cd/usr/local/apache2/可以看到 htdocs就是 web服务器的目录所在你可以想我这样 vi test.html上面写一些信息,然后进行访问。让Apache自动启动# echo"/usr/local/apache2/bin/apachectl start&">>/etc/rc.local(或者手动在/etc/rc.d/rc.local中设置)好,然后重启服务器,就可以发现 apache自动启动了
如何在CentOS系统利用命令行操作文件以及文件夹
下面总结一些linux,CentOS下面常用的命令:
cd pwd
NO1.显示当前路径
[root@rehat root]# pwd
NO2.返回用户主目录
[root@rehat root]# cd
NO3.改变到其它路径
[root@rehat root]# cd/etc
NO4.返回到上一级目录
[root@rehat root]# cd..
NO5.返回到根目录
[root@rehat root]# cd/
查询文件或文件夹的CentOS常用命令 find
NO1.查找当前用户主目录下的所有文件
[root@rehat root]# find~
NO2.让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
[root@rehat root]# find.-perm 644-exec ls-l{}\;
NO3.为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;
[root@rehat root]# find/ size 0-type f-exec ls-l{}\;
NO4.查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;
[root@rehat root]# find/var/logs-mtime+7-type f-ok rm-i{}\;
NO5.为/找系统中所有属于root组的文件;
[root@rehat root]# find/-group root-exec ls-l{}\;
NO6. find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件
[root@rehat root]# find.-name"admin.log[0-9][0-9][0-9]"-atime-7-ok rm{}\;
NO7.为了查找当前文件系统中的所有目录并排序
[root@rehat root]# find.-type d| sort
NO8.为了查找系统中所有的rmt磁带设备
[root@rehat root]# find/dev/rmt
显示文件/文件夹清单的CentOS常用命令 ls/ dir
NO1.显示所有文件,包括以.开头的隐含文件
[root@rehat root]# ls-a
NO2.显示文件的详细信息
[root@rehat root]# ls-l
NO3.显示当前目录及所有子目录信息
[root@rehat root]# ls-Rl
NO4.以时间排序显示目录,这在找最新文件有用
[root@rehat root]# ls-tl
NO5.以文件大小排序
[root@rehat root]# ls-Sl
NO6.显示文件大小,并按大小排序
[root@rehat root]# ls-s-l-S
移动或更改文件/文件夹名称的CentOS常用命令 mv与 cp命令用法相似
NO1.若移动目标文件已存在,要在移动之前,先备份原来的目录文件
[root@rehat root]# mv-b test.txt test2/
这样在 test2下将有两个文件 test.txt及 text.txt~
其中 test.txt~是备份文件,test.txt是新的文件
NO2.若移动目标文件已存在,但不想弹出是否覆盖的提示,直接覆盖
[root@rehat root]# mv-f test.txt test2/
NO3.当源与目标都拥有同一个文件,若源文件比目标新则移动,否则不移动
[root@rehat root]# mv-u test.txt test2/
NO4.更改文件名称
[root@rehat root]# mv test.txt test2.txt
NO5.更改目录名称
[root@rehat root]# mv/test2/test2_2[/size]
创建/改变文件系统的CentOS常用命令
NO1.创建文件系统类型
[root@rehat root]# umount/dev/sdb1
[root@rehat root]# mkfs-t ext3/dev/db1
[root@rehat root]# mount/dev/sdb1/practice
改变文件或文件夹权限的CentOS常用命令chmod
NO1.将自己的笔记设为只有自己才能看
[root@rehat root]# chmod go-rwx test.txt
或者
[root@rehat root]# chmod 700 test.txt
NO2.同时修改多个文件的权限
[root@rehat root]# chmod 700 test1.txt test2.txt
NO3.修改一个目录的权限,包括其子目录及文件
[root@rehat root]# chmod 700-R test
改变文件或文件夹拥有者的CentOS常用命令
chown该命令只有 root才能使用
NO1.更改某个文件的拥有者
[root@rehat root]# chown jim:usergroup test.txt
NO2.更改某个目录的拥有者,并包含子目录
[root@rehat root]# chown jim:usergroup-R test
查看文本文件内容的CentOS常用命令cat
NO1.查看文件内容,并在每行前面加上行号
[root@rehat root]# cat-n test.txt
NO2.查看文件内容,在不是空行的前面加上行号
[root@rehat root]# cat-b test.txt
NO3.合并两个文件的内容
[root@rehat root]# cat test1.txt test2.txt> test_new.txt
NO4.全并两具文件的内容,并追回到一个文件
[root@rehat root]# cat test1.txt test2.txt>> test_total.txt
NO5.清空某个文件的内容
[root@rehat root]# cat/dev/null> test.txt
NO6.创建一个新的文件
[root@rehat root]# cat> new.txt按 CTRL+ C结束录入
编辑文件文件的CentOS常用命令vi
NO1.新建档案文件
[root@rehat root]# vi newfile.txt
NO2.修改档案文件
[root@rehat root]# vi test.txt test.txt已存在
NO3. vi的两种工作模式:命令模式,编辑模式
NO4.进入 vi后为命令模式,按 Insrt键进入编辑模式
按 ESC进入命令模式,在命令模式不能编辑,只能输入命令
NO5.命令模式常用命令
:w保存当前文档
:q直接退出 vi
:wq先保存后退出。
:q!强制不保存退出
创建目录的CentOS常用命令mkdir
NO1.在当前路径创建一级目录
[root@rehat root]# mkdir test
NO2.在当前路径创建多级目录
[root@rehat root]# mkdir-p mytest/test1/test1_1
NO3.在创建目录的同时给新建的目录赋权限
[root@rehat root]# mkdir-m 777 testmod
这样任何人对此目录都有任何权限
复制文件与文件夹的CentOS常用命令cp
NO1.复制指定目录的文件到当前目录,并重命名
[root@rehat root]# cp~/.bashrc bashrc_bak
NO2.强制复制指定目录的文件到当前目录,而不管当前目录是否含有该文件
[root@rehat root]# cp-f~/.bashrc bashrc
NO2.复制指定目录到当前目录
[root@rehat root]# cp-r/root/test.
[root@rehat root]# cp-r/root/test/.
两者效果一样,在复制目录时,会将源路径的最后一级目录全部复制过去,包括它本身。
NO3.复制指定目录的文件到指定目录
[root@rehat root]# cp~/.bashrc/bak/.bashrc
NO4.在复制时将源文件的全部属性也复制过来。若不指定参数,则目标文件与源文件属性可能不一致。
[root@rehat root]# cp-a~/.bashrc/bak/.bashrc
NO5.若两个文件夹要保证同步,一个文件的改了,另一个文件也跟着改,但是要保证两个文件的文件都是最新的。
[root@rehat root]# cp-u/src/.bashrc/bak_src/bashrc
建立链接文件,包括硬链接与软链接的CentOS常用命令ln
NO1.建立类似于 Windows的快捷方式
[root@rehat root]# ln-s test.txt test.txt_slnk
NO2.当想备份一个文件,但空间又不够,则可以为该文件建立一个硬连接。这样,就算原文件删除了,只要该链接文件没被删除,则在存储空间里还是没有被删除。
[root@rehat root]# ln-l test.txt test.txt_hlnk
使用CentOS常用命令查看cpu
more/proc/cpuinfo| grep"model name"
grep"model name"/proc/cpuinfo
[root@localhost/]# grep"CPU"/proc/cpuinfo
model name: Intel(R) Pentium(R) Dual CPU E2180@ 2.00GHz
model name: Intel(R) Pentium(R) Dual CPU E2180@ 2.00GHz
如果觉得需要看的更加舒服
grep"model name"/proc/cpuinfo| cut-f2-d:
使用CentOS常用命令查看内存
grep MemTotal/proc/meminfo grep MemTotal/proc/meminfo| cut-f2-d: free-m|grep"Mem"| awk'{print$2}'
使用CentOS常用命令查看cpu是32位还是64位查看CPU位数(32 or 64)
getconf LONG_BIT
使用CentOS常用命令查看当前linux的版本
more/etc/redhat-release
cat/etc/redhat-release
使用CentOS常用命令查看内核版本
uname-r
uname-a
使用CentOS常用命令查看当前时间
date上面已经介绍如何同步时间了
使用CentOS常用命令查看硬盘和分区
df-h
fdisk-l
也可以查看分区
du-sh
可以看到全部占用的空间
du/etc-sh
可以看到这个目录的大小
使用CentOS常用命令查看安装的软件包,查看系统安装的时候装的软件包
cat-n/root/install.log
more/root/install.log| wc-l
查看现在已经安装了那些软件包
rpm-qa
rpm-qa| wc-l
yum list installed| wc-l
不过很奇怪,我通过rpm,和yum这两种方式查询的安装软件包,数量并不一样。没有找到原因。
使用CentOS常用命令查看键盘布局
cat/etc/sysconfig/keyboard
cat/etc/sysconfig/keyboard| grep KEYTABLE| cut-f2-d=
使用CentOS常用命令查看selinux情况
sestatus
sestatus| cut-f2-d:
cat/etc/sysconfig/selinux
使用CentOS常用命令查看ip,mac地址
在ifcfg-eth0文件里你可以看到mac,网关等信息。
ifconfig cat/etc/sysconfig/network-scripts/ifcfg-eth0| grep IPADDR cat/etc/sysconfig/network-scripts/ifcfg-eth0| grep IPADDR| cut-f2-d= ifconfig eth0|grep"inet addr:"|awk'{print$2}'|cut-c 6- ifconfig| grep'inet addr:'| grep-v'127.0.0.1'| cut-d:-f2| awk'{ print$1}'
查看网关
cat/etc/sysconfig/network
查看dns
cat/etc/resolv.conf
使用CentOS常用命令查看默认语言
echo$LANG$LANGUAGE
cat/etc/sysconfig/i18n
使用CentOS常用命令查看所属时区和是否使用UTC时间
cat/etc/sysconfig/clock
使用CentOS常用命令查看主机名
hostname
cat/etc/sysconfig/network
修改主机名就是修改这个文件,同时最好也把host文件也修改。
使用CentOS常用命令查看开机运行时间
uptime
09:44:45 up 67 days, 23:32,...
看来刚才确实是网段的问题,我的机器还是67天前开机的。
系统资源使用情况
vmstat 1-S m procs-----------memory-------------swap-------io------system-------cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 233 199 778 0 0 4 25 1 1 3 0 96 0 0 0 0 0 233 199 778 0 0 0 0 1029 856 13 1 86 0 0
删除文件的CentOS常用命令rm
NO1.删除当前目录的文件
[root@rehat root]# rm test.txt
NO2.强制删除当前目录的文件,不弹出提示
[root@rehat root]# rm-f test.txt
NO3.强制删除整个目录,包括目录与文件全部删除,需要管理员权限
[root@rehat root]# rm-r-f test
删除文件夹的CentOS常用命令rmdir
NO1.删除一个空目录
[root@rehat root]# rmdir emptydir
NO2.删除多级空目录
[root@rehat root]# rmdir-p emptydir/d1/d11
挂载文件系统与卸载文件系统的CentOS常用命令
mount/ umount
NO1.挂载光驱
[root@rehat root]# mount-t iso9660/dev/cdrom/mnt/cdrom
NO2.挂载光驱,支持中文
[root@rehat root]# mount-t iso9660-o codepage=936,iocharset=cp936/dev/cdrom/mnt/cdrom
NO3.挂载 Windows分区,FAT文件系统
[root@rehat root]# mount-t vfat/dev/hda3/mnt/cdrom
NO4.挂载 Windows分区,NTFS文件系统
[root@rehat root]# mount-t ntfs-o iocharset=cp936/dev/hda7/mnt/had7
No5.挂载 ISO文件
[root@rehat root]# mount-o loop/abc.iso/mnt/cdrom
NO6.挂载软驱
[root@rehat root]# mount/dev/fd0/mnt/floppy
NO7.挂载闪盘
[root@rehat root]# mount/dev/sda1/mnt/cdrom
NO8.挂载 Windows操作系统共享的文件夹
[root@rehat root]# mount-t smbfs-o username=guest,password=guest//machine/path/mnt/cdrom
NO9.显示挂载的文件系统
[root@rehat root]# mount
[root@rehat root]# cat/etc/fstab显示系统启动自动加载的文件系统
[root@rehat root]# cat/etc/mtab显示当前加载的文件系统
CentOS中httpd源代码安装与测试步骤分享
环境:CentOS6.4 x86_64
所需应用程序:APR()、APR-UTIL()、 httpd()
在Linux中软件安装有两大类,一类是软件包安装,一类是源代码安装。软件包安装就是指将编译好的二进制封装成rpm包,可以直接使用rpm工具和yum工具安装。源代码安装是指没有编译成二进制,需要通过手动编译的。使用源代码安装的原因有两个,一个就是想使用最新版的软件,另一类就是想自定义其功能的。
源代码安装的步骤:
展开压缩文件一般把文件都解压缩到/uer/local/src中在解压缩文件目录中使用./configure选项来检测编译环境,产生makefiel文件使用make进行编译 make install安装
下面就介绍如何在CentOS中通过源代码安装httpd以及测试。
用源代码安装软件首先要在系统中安装相应的编译环境;在RedHat中搭建编译环境需要的工具有DevelopmentLibraries、Development Tools、Legacy Software Development、X Software Development,这些开发环境在RehdHat是不可缺少的。在CentOS中需要的开发工具主要有两个,AdditionalDevelopment、Development tools。所以在进行源代码安装时需要搭建编译环境。
那么首先我们要挂载我们的光盘,通过光盘查找我们要安装的软件包组,挂载光盘的命令是:mount/dev/cdrom/media/cdrom光盘挂载成功后我们可以通过 yum--disablerepo=\*--enablerepo=c6-media grouplist查询我们所需要的软件包组。通过查询我们发现如图中圈出来的必须的两个开发软件包组。那么就来安装这两个软件包组吧,使用命令 yum–disablerepo=\*--enablerepo=c6-media groupinstall“AdditionalDevelopment”“Development tools”
安装完成后,接下来就进行httpd的安装,在安装httpd前需要先安装apr和apr-util
在这里我们用apr-1.4.6.tar.gz、apr-util-1.5.1.tar.gz和httpd-2.4.4.tar.bz2为例;首先把这些压缩文件解压缩到/usr/local/src目录中,使用命令
对三个压缩文件解压缩
解压缩完成后进入/usr/local/src目录中就能发现我们刚刚解压缩的三个文件所形成的目录
先来安装apr,那么要先进入/usr/local/src/apr-1.4.6目录中
可以看到一个configure文件这个文件就是我们用来配置选项,检测编译环境。还有一个README或者是INSTALL这个文件是告诉我们一些使用的方法。现在我们就来执行configure,在执行时加入--prefix来指定安装目录,使用方法就是在该解压缩目录中输入./configure–prefix=/usr/local/apr(这个目录是自己指定的,如果以后想要卸载该软件可以直接删除该目录即可,默认是安装在/desired/path/of/apr中,如果使用默认的安装路径想要卸载那就比较麻烦了)在这个过程中如果没有提示错误那就说明可以进行下一步了。
然后就使用make来进行编译了
make是一个比较漫长的过程,耐心等待就是
到了这里就说明编译完成,接下来就使用make install进行安装了
完成后我们到/usr/local/目录中看看
我们已经看到我们刚刚安装的apr了,再进到apr目录中看看
我们可以看一些bin目录,include目录还有lib目录
如果我们想让其他的软件使用apr的库,我们就需要在/etc/ld.so.conf.d/目录中创建一个.conf文件来指明它的库路径,那我们就来创建一个文件
创建完成后我们在该文件中写出路径
然后用ldconfig命令刷新缓存;
可以看到已经加载上了
如果想让程序调用apr的头文件,那我们就在/usr/include中创建一个链接指向/usr/local/apr/include/apr-1
切换到/usr/include目录下
在该目录下可以看到很多头文件
然后创建链接
通过查询我们可以看到刚刚创建的链接
好了,到此apr就已经安装完成,接下来该安装apr-util
首先切换到/usr/local/src/apr-util-1.5.1目录中
同样在该目录中也看到有 configure、README文件
接下来就和前面apr的方法一样,执行./configure--prefix=/usr/local/apr-util当然这样是不行的,这样是会提示错误的,我们需要指出apr-config的全路径,apr-config的路径是在/usr/local/apr/bin目录下,所以应该写成./configure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr/bin/apr-config
通过检测后,执行make;
接下来进行安装
安装完成后,想前面的apr一样,指定库文件路径
同样刷新缓存
接下来指明头文件
创建成功,最后来安装 httpd
切换到/usr/local/src/httpd-2.4.4
通过查看可以看到有 configure INSTALL README,接下来就来执行./configure--prefix=/usr/local/httpd当然这样肯定还是不行,这里需要指出apr-config的全路径和apu-config的全路径,那就应该写成./configure--prefix=/usr/local/apache--with-apr=/usr/local/apr/bin/apr-config--with-apr-util=/usr/local/apr-util/bin/apu-config
执行后如果我们看到这个错误
这是一个关于prce-config的错误;那就要排除错误,首先看看系统中有没有安装和prce相关的软件
这里安装了pcre-7.8-6.el6.x86_64,那就要看看这个软件里有没有关于pcre-config相关的文件
发现这里面没有关于pcre-config的文件,那就要安装pecr-devel
安装完成后,在安装httpd这样就顺利通过检测然后执行make
make完成后执行makeinstall
然后指明头文件
在/usr/local/apache/bin目录中都是一些可执行的文件,如果想要执行每次都要切换到该目录下,这样是很麻烦的。如果想要直接执行就要修改环境变量/etc/profile
在第55中指明了在系统中PATH搜索路径,我们就在这里指明现在的搜索路径
这样就可以了,使用./etc/profile重新读取,再用echo输出PATH的值看看有没有加载上
从图中看到已经加载上了
然后还要指出httpd的man手册的位置,编辑/etc/man.config
在里面添加MANPATH/usr/local/apache/man即可。
到这里httpd已经安装完成了,接下来就该编写shell脚本,来控制httpd的启动和停止。
脚本存放在/etc/init.d里面,那我们就在里面创建一个httpd的控制脚本来控制httpd服务的启动。
脚本的代码:
#!/bin/bash[-e/etc/init.d/functions]&&./etc/init.d/functionsprog=/usr/local/apache/bin/httpdlockfile=/var/lock/subsys/httpdstart(){if[-e$lockfile];thenecho"httpdserverisstarted"elseecho-n"httpdserverisstarting..."sleep1$prog&>/dev/null&&echo"[ok]"&&touch$lockfile||echo"[failer]"fi}stop(){if[!-e$lockfile];thenecho"httpdserverisstoped"elseecho-n"httpdserverisstoping..."sleep1killprochttpd&&echo"[ok]"&&rm-rf$lockfile||echo"[failer]"fi}status(){if[-e$lockfile];thenecho"httpdserverisstarted"elseecho"httpdservernofound"fi}case$1instart)start;;stop)stop;;restart)stopstart;;status)status;;*)echo"USAGE:start|stop|restart|status";;esac
启动服务:
通过查看80端口发现httpd已经启动
由此可见我们的httpd通过源代码安装成功,并且测试没有出现错误。