> CentOS > CentOS服务器 > webserver >

CentOS6.5系统搭建Apache服务器

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

Apache工作模式有多种,其中最常用的有两种:

    Prefork模式:PreforkMPM 使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。

    在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。

    Worker模式:WorkerMPM 使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。

Worker MPM也由不完善的地方,如果一个线程崩溃,整个进程就会连同其所有线程一起"死掉".由于线程共享内存空间,所以一个程序在运行时必须被系统识别为"每个线程都是安全的"。

环境:

CentOS 6.5 x86_64-minimal

 

Server IP:172.16.11.168

 

cd ~
rpm -qa | grep httpd
yum remover apr  apr-util pcre httpd -y
yum -y install gcc gcc-c++ wget
 
wget -c http://soft.vpser.net/web/apache/httpd-2.4.12.tar.gz
wget -c http://soft.vpser.net/web/apache/apr-1.5.1.tar.gz
wget -c http://soft.vpser.net/web/apache/apr-util-1.5.4.tar.gz
wget -c http://soft.vpser.net/web/pcre/pcre-8.30.tar.gz
 
tar -xzvf apr-1.5.1.tar.gz
tar -xzvf apr-util-1.5.4.tar.gz
tar -xzvf pcre-8.30.tar.gz
tar -xzvf httpd-2.4.12.tar.gz
 
cd pcre-8.30
./configure --prefix=/usr/local/pcre
make && make install
 
cd ~/apr-1.5.1
./configure --prefix=/usr/local/apr
make && make install
 
cd ~/apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make && make install
 
cd ~/httpd-2.4.12
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-so --enable-modules=all --sysconfdir=/usr/local/apache/conf  --with-pcre=/usr/local/pcre
make && make install
 
cd ~
/usr/local/apache/bin/apachectl start  #启动Apache
 
注意:之所以启动Apache的时候报httpd: apr_sockaddr_info_get() failed for jacken
httpd: Could not reliably determine the server'sfully qualified domain name, using 127.0.0.1 for ServerName
这不能属于一个错误,因为这个不影响服务的正常运行,但我看着就是不爽。
原因:这个问题应该是没有在 httpd.conf 中设定 ServerName
解决办法: 
vim /usr/local/apache2/conf/httpd.conf
cat/usr/local/apache2/conf/httpd.conf | grep ^ServerName
ServerName localhost:80
 
添加Apache开机自动启动:
1 最简单的方法: echo "/usr/local/apache/bin/apachectl" >> /etc/rc.d/rc.local
ln -s /usr/local/apache/bin/apachectl  /etc/rc.d/rc3.d/S85httpd      //建立软链接
3 运行chkconfig --list,发现没有linux服务列表中httpd,通过chkconfig --add httpd来添加,但是提示:httpd服务不支持 chkconfig。
\cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
需要编辑/etc/rc.d/init.d/httpd,添加以***释信息:
#chkconfig: 345 85 15       注意:添加的内容包括#号
#description: Apache
第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15)。
保存后执行:chkconfig --add httpd,成功添加。
在rc3.d、rc4.d、rc5.d路径中会出现S85httpd的链接文件,其他运行级别路径中会出现K61httpd的链接文件。
然后就可以使用 service httpd start 
               service httpd stop   
               service httpd restart  管理Apache服务了
 
验证Apache服务安装成功。
附件为脚本安装Apache
注:脚本是在WINDOWS平台上写的,要使用命令set ff=unix把dos格式转换unix便可使用
    艹,这附件传上来就不能删了?其实我只是想传上来试试的,里面还有一些要修改2个地方:
    1 wget下载最好加上-c 参数,要不然大多数的时候源码包下不下来,不知道为什么
      如:wget -c http://soft.vpser.net/web/apache/httpd-2.2 .4.12.tar.gz
    2 安装httpd时,忘记关联pcre了,自己一步一步安装时不关联也没报错,但用脚本不知道为什么      就一定要关联才行,要不然会报错
         ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-so --enable-modules=all --sysconfdir=/usr/local/apache/conf
    3 在我的下载里面有修改,验证后正确的脚本。



(责任编辑:IT)