服务器学习心得


apache源码安装

<ul> <li> <p>安装C语言编译器gcc,采用yum方式安装 </p> </li> <li> <p>源码包的apache安装和rpm包apache安装不会有冲突,安装位置不同</p> <ul> <li>实际生产服务器,只会安装一个,安装两个太占用空间,占用系统资源</li> <li>使用两种方式安装apache,用于学习测试使用</li> </ul> </li> <li> <p>安装注意事项</p> <pre><code class="language-shell"># 源代码保存位置 /usr/local/src/ # 软件安装位置 /usr/local/</code></pre> <ul> <li>如何确定安装过程报错</li> <li>安装过程停止</li> <li>并出现error、warning或no的提示</li> </ul> </li> </ul> <h2>挂载</h2> <ul> <li> <p>使用mount命令,查看光盘是否挂载</p> <ul> <li>如果光盘没有挂载,请挂载</li> <li>进入到挂载的目录</li> <li>如之前光盘挂载为/mnt/cdrom</li> </ul> </li> <li> <p>进入到当前目录Packages</p> <ul> <li> <p>如果不进入到此目录下进行安装包的话</p> </li> <li>安装路径需要写绝对路径,包全名</li> <li> <p>进入此目录后,安装写相对路径就行,包名即可</p> </li> <li> <p>安装时,建议进入到要安装的目录中</p> </li> <li>安装方便,使用相对路径,包名即可</li> <li> <p>支持包名自动补全功能</p> <ul> <li>输入包名的前几个字符</li> <li>按Tab键,会列出含有输出字符的包名</li> </ul> </li> <li> <p>如果使用Tab键自动补全功能,拿安装包名举例</p> </li> <li> <p>rpm -ivh http</p> </li> <li> <p>按一下Tab键,会提示显示软件包名</p> <pre><code class="language-shell">rpm -ivh httpd-</code></pre> </li> <li> <p>所然后再两下Tab键,会提示显示软件包名和所有包含输入字符的包名</p> <pre><code class="language-shell">rpm -ivh httpd- httpd-2.2.15-29.el6.centos.i686.rpm httpd-devel-2.2.15-29.el6.centos.i686.rpm httpd-manual-2.2.15-29.el6.centos.noarch.rpm httpd-tools-2.2.15-29.el6.centos.i686.rpm</code></pre> </li> <li> <p>安装时,一般先安装主包,再安装附加包</p> <ul> <li> <p>先安装httpd-2.2.15-29.el6.centos.i686.rpm主包</p> </li> <li>再安装</li> </ul> <pre><code class="language-shell">httpd-devel-2.2.15-29.el6.centos.i686.rpm httpd-manual-2.2.15-29.el6.centos.noarch.rpm httpd-tools-2.2.15-29.el6.centos.i686.rpm</code></pre> </li> </ul> </li> </ul> <h2>apache进行安装</h2> <h4>下载apache源码包</h4> <ul> <li>下载网址如 <ul> <li><a href="http://mirror.bit.edu.cn/apache/httpd/">http://mirror.bit.edu.cn/apache/httpd/</a></li> </ul></li> <li>下载压缩包如 <ul> <li>httpd-2.2.29.tar.gz</li> </ul></li> </ul> <h4>需要把下载的apache源码包,上传到linux上去</h4> <ul> <li>可以使用WinSCP工具</li> <li>可以把httpd-2.2.29.tar.gz上传到家目录下</li> </ul> <pre><code class="language-shell">cd ~ # 进入到家目录 ls # 看apache源码包上传到家目录中没有</code></pre> <h4>进入解压缩目录</h4> <pre><code class="language-shell">tar -zxvf httpd-2.2.29.tar.gz 进行解压缩 # 解压完成后,ls,会看到多了一个httpd-2.2.29目录 du -sh httpd-2.2.29 查看httpd-2.2.29大小 # 进入解压缩目录,非常重要, cd httpd-2.2.29 # 后续的一些命令,都是操作的当前位置 # 如果不进入到httpd-2.2.29这个目录中,一些命令就我无法使用,会报错</code></pre> <ul> <li> <p>ls 查看目录下的内容</p> <ul> <li> <p>INSTALL 安装说明</p> </li> <li>README 使用说明</li> </ul> </li> <li> <p>在遇到陌生源代码时,要先看说明,然后再进行安装和使用</p> </li> <li> <p>可以到安装信息文件中看一眼</p> <pre><code class="language-shell">vi INSTALL # 大概信息如下 $ ./configure --prefix=PREFIX $ make $ make install $ PREFIX/bin/apachectl start</code></pre> </li> </ul> <h4>./configure 软件配置与检查</h4> <ul> <li> <p>定义需要的功能选项</p> <ul> <li> <p>/configure --help 可以查看下帮助的</p> </li> <li>./configure --prefix=/usr/local/apache2</li> </ul> <pre><code class="language-shell">定义安装目录,如安装目录为apache2 源码包其他选项可以不定义,但安装路径一定要定义 /usr/local 系统默认安装位置,一般情况下都要安装此目录下</code></pre> </li> <li> <p>检测系统环境是否符合安装要求</p> <pre><code class="language-shell">./configure --prefix=/usr/local/apache2 # 执行时注意观察是否有报错 # 安装过程停止,并出现error、warning或no的提示 ./configure --prefix=/usr/local/apache2 # 命令执行完成后 # ls 查看内容 # 可以看到Makefile文件以经生成</code></pre> </li> </ul> <h4>make 执行编译</h4> <ul> <li>编译最占用时间,如果没有报错,只能等待编译完成</li> <li>编译时间长短,根据机器配置,文件大小</li> <li>注意是否有报错信息出现</li> <li>编译过程是用gcc编译工具把源码包翻译成机器识别语言</li> </ul> <h4>执行make install前</h4> <ul> <li>如果出现报错</li> <li>没有在指定的安装位置写任何数据,</li> <li>也就是说没有在/usr/local/目录下生成目录</li> <li>不需要删除httpd-2.2.29这个软件包,因为没有真正安装</li> <li>make clean # 清空编译产生的临时文件</li> </ul> <h4>执行make install</h4> <h5>/usr/local/apache2/bin/apachectl start 启动apahce服务</h5> <ul> <li>不知道如何启动命令,请查看安装文档INSTALL</li> </ul> <h4>如果出现端口冲突,可能是rpm中也安装了apache,请把rpm安装的apache先停止</h4> <pre><code class="language-shell">service http stop </code></pre> <h2>安装依赖</h2> <pre><code class="language-shell">rpm -ivh httpd-2.2.15-29.el6.centos.i686.rpm </code></pre> <ul> <li> <p>会出现依赖性错误提示信息</p> <pre><code class="language-shell">error: Failed dependencies: apr-util-ldap is needed by httpd-2.2.15-29.el6.centos.i686 httpd-tools = 2.2.15-29.el6.centos is needed by httpd-2.2.15-29.el6.centos.i686 libapr-1.so.0 is needed by httpd-2.2.15-29.el6.centos.i686 libaprutil-1.so.0 is needed by httpd-2.2.15-29.el6.centos.i686</code></pre> <ul> <li>要依赖apr-util-ldap包,httpd-tools包,libapr-1.so.0库文件,libaprutil-1.so.0库文件</li> <li>一般以.so.0结尾的,是属于相应的库的</li> <li>依赖此库文件,要安装这个库文件所在的库</li> <li>安装库后,此文件就这个库中</li> <li>安装包依赖于这个库文件的依赖性也就解决了</li> </ul> </li> </ul> <h4>安装apr-util-ldap包</h4> <pre><code class="language-shell"># 输入rpm -ivh apr-util-ldap # 按Tab键可自动补全整个包名 rpm -ivh apr-util-ldap-1.3.9-3.el6_0.1.i686.rpm # 继续出现依赖错误提示 error: Failed dependencies: apr-util = 1.3.9-3.el6_0.1 is needed by apr-util-ldap-1.3.9-3.el6_0.1.i686 # 安装apr-util包前使用Tab键显示出应该包有 apr-util-1.3.9-3.el6_0.1.i686.rpm apr-util-ldap-1.3.9-3.el6_0.1.i686.rpm apr-util-devel-1.3.9-3.el6_0.1.i686.rpm # 输入rpm -ivh apr-util按Tab键会出现此提示,按你安装此包 rpm -ivh apr-util-1.3.9-3.el6_0.1.i686.rpm #此时还会出现依赖错误提示 error: Failed dependencies: libapr-1.so.0 is needed by apr-util-1.3.9-3.el6_0.1.i686</code></pre> <ul> <li> <p>需要依赖此libapr-1.so.0模块</p> </li> <li> <p>登陆到www.rpmfind.net</p> </li> <li> <p>输入libapr-1.so.0包,进行搜索,找到其所需要的相应版本模块</p> </li> <li> <p>如果没有找自己使用CentOS所对应的版本</p> <ul> <li> <p>尝试使用CentOS的高版本或是低安装</p> </li> <li> <p>如找到apr-1.3.9-5.el6_2.i686.html,进行安装</p> </li> <li>输入rpm -ivh apr-1.3.9按Tab键补全</li> </ul> <pre><code class="language-shell">rpm -ivh apr-1.3.9-5.el6_2.i686.rpm # 安装成功后,出现提示 Preparing... ################################### [100%] 1:apr ################################### [100%] # 如果以经安装过这个包了,再以安装,会现以经安装的提示 package apr-1.3.9-5.el6_2.i686 is already installed</code></pre> </li> </ul> <h4>安装httpd-tools的包</h4> <pre><code class="language-shell">rpm -ivh httpd-tools-2.2.15-29.el6.centos.i686.rpm</code></pre> <ul> <li> <p>如果不记得Apache2还依赖于哪包</p> <ul> <li> <p>再次重新安装一次Apache2,查看Apache2包是否还依赖于其它的包</p> </li> <li>如果还有依赖的包,会继续报错,那就继续安装所依赖的包</li> </ul> <pre><code class="language-shell">rpm -ivh httpd-2.2.15-29.el6.centos.i686.rpm # 安装成功后出现提示 Preparing... ######################## [100%] 1:httpd ######################## [100%]</code></pre> </li> <li> <p>此时Apache2就安装成功了</p> </li> <li> <p>安装过程中出现warning警告信息</p> <ul> <li>warning: httpd-2.2.15-29.el6.centos.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY</li> <li>此警告信息,说明Apache的相关注释内容</li> <li>出现警告信息是因为使用rpm命令中的-v选项</li> </ul> </li> <li> <p>rpm中的-h的显示</p> <pre><code class="language-shell">Preparing... ######################## [100%] # 代表准备成功,并不代表安装成功 1:httpd ######################## [100%] # 出现选项才代表真正安装成功 -h中哈希的作用就是用#号来代表安装的进度条</code></pre> </li> </ul>

页面列表

ITEM_HTML