LINUX APACHE服务的配置

  • 内容
  • 评论
  • 相关

与PHP一起安装时最好用源安装,不然新手会出现很多文件位置问题。

rpm安装apache

首先安装下面这四个软件:
[root@rhel ~]# rpm -ivh /mnt/cdrom/Packages/apr-1.3.9-3.el6_1.2.x86_64.rpm 
[root@rhel ~]# rpm -ivh /mnt/cdrom/Packages/apr-util-1.3.9-3.el6_0.1.x86_64.rpm
[root@rhel ~]# rpm -ivh /mnt/cdrom/Packages/apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm
[root@rhel ~]# rpm -ivh /mnt/cdrom/Packages/httpd-tools-2.2.15-15.el6_2.1.x86_64.rpm
现在才能安装httpd
[root@rhel ~]# rpm -ivh /mnt/cdrom/Packages/httpd-2.2.15-15.el6_2.1.x86_64.rpm 
源安装apache:

1.下载所需软件包:
1.wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
2.wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
3.wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip
2.编译安装:
1.yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs
具体步骤如下:

a:解决apr not found问题>>>>>>
1.[root@xt test]# tar -zxf apr-1.4.5.tar.gz
2.[root@xt test]# cd apr-1.4.5
3.[root@xt apr-1.4.5]# ./configure --prefix=/usr/local/apr
4.[root@xt apr-1.4.5]# make && make install
b:解决APR-util not found问题>>>>
1.[root@xt test]# tar -zxf apr-util-1.3.12.tar.gz
2.[root@xt test]# cd apr-util-1.3.12
3.[root@xt apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util -with- apr=/usr/local/apr/bin/apr-1-config
4.[root@xt apr-util-1.3.12]# make && make install

c:解决pcre问题>>>>>>>>>
1.[root@xt test]#unzip -o pcre-8.10.zip
2.[root@xt test]#cd pcre-8.10
3.[root@xt pcre-8.10]#./configure --prefix=/usr/local/pcre
4.[root@xt pcre-8.10]#make && make install

 

如需支持SSL

编译openssl
# ./config -fPIC --prefix=/usr/local/ssl/ enable-shared 
# make&&make test&&make install
4.最后编译Apache时加上:

--prefix=/usr/local/apache:指定安装路径

--sysconfdir=/etc/httpd24:指定配置文件存放位置

--enable-so:允许运行时加载DSO模块

--enable-dav:启用davweb支持

--enable-ssl: 提供对安全套接字层(SSL)和传输层安全(TLS)协议实现高强度加密传输

--enable-cgi:提供对CGI脚本执行的支持

--enable-rewrite:支持重写

--with-zlib:是支持zlib库

--with-pcre:启用正则表达式

--with-apr=/usr/local/apr:Apache可移植运行时(APR)是httpd源码的一部分并会自动与httpd一起创建。如果你想使用一个已经存在的APR ,就必须在这里指定apr-config脚本的路径。

--with-apr-util=/usr/local/apr-util/:Apache可移植运行时工具包(APU)是httpd源码的一部分并会自动与httpd一起创建。如果你想使用一个已经存在的APU ,就必须在这里指定apu-config脚本的路径。

--enable-modules=most:启用大多数常用模块。

--enable-mpms-shared=all:启用MPM支持的所有模式。

--with-mpm=event:设置默认MPM为event。

成功编译完成~

[php]

[root@yahoo httpd-2.3.12-beta]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --with-ssl=/usr/local/openssl --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-so --enable-dav --enable-ssl --enable-cgi --enable-rewrite --with-zlib --enable-modules=most --enable-mpms-shared=all --with-mpm=event

[root@yahoo httpd-2.3.12-beta]# make
[root@yahoo httpd-2.3.12-beta]# make install

[root@yahoo httpd-2.3.12-beta]# /usr/local/apache2/bin/apachectl start

[/php]

将服务加到自启动

(1)首先
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
然后
vim /etc/init.d/httpd
再在第3行加入
# chkconfig: 345 85 15
# description: This is keke Web Server
注意:#号不能去掉哦!~
最后
chkconfig --add httpd

(2)

1 cd /etc/init.d

2 vi apache

3 粘贴以下代码

========================================
#!/bin/sh
# description: Apache auto start-stop script.
# chkconfig: - 85 15
APACHE_HOME=/usr/local/apache
APACHE_OWNER=root
if [ ! -f "$APACHE_HOME/bin/apachectl" ]
then
echo "Apache startup: cannot start"
exit
fi
case "$1" in
'start')
su - $APACHE_OWNER -c "$APACHE_HOME/bin/apachectl start"
;;
'stop')
su - $APACHE_OWNER -c "$APACHE_HOME/bin/apachectl stop"
;;
'restart')
su - $APACHE_OWNER -c "$APACHE_HOME/bin/apachectl restart"
;;
esac
========================================

4 chmod +x apache

5 chkconfig --add apache

6 chkconfig -level 345 apache on

7 service apache start 启动apache server

8 重新启动Linux,并验证Apache是否随Linux启动

安装apache编译时提示

[php]configure: error: no acceptable C compiler found in $PATH[/php]

原因是没装gcc、gcc-c++

安装gcc需要
ppl
cloog-ppl
mpfr
cpp
kernel-headers
glibc-headers
glibc-devel
启动HTTP服务就报错,似乎不影响服务的使用,但是也挺别扭的

[php]AH00557: httpd: apr_sockaddr_info_get() failed for jkhost.kemai.cn
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message[/php]

[php]vi /server/apache/conf/httpd.conf [/php]

修改

[php]#ServerName www.example.com:80 为 ServerName localhost:80[/php]

APACHE简单的配置。
[root@rhel ~]# service httpd start        //启动服务。
现在就可以测试一下了。如图,如下在地址栏输入http://192.168.100.101,出现如下画面,就说明httpd正常运行了。
如果想把这个页面换成自己的网页,只需把写好的文件放入/var/www/html下面即可,下面举个简单的例子。如:
[root@rhel ~]# echo www.yeboyzq.com -> /var/www/html/index.html
访问测试一下:
用户的个人网站。
[root@rhel ~]# vi /etc/httpd/conf/httpd.conf
:set number              //显示行号
找到<IfModule mod_userdir.c>,在下面有
UserDir disable
#UserDir public_html
改成:
#UserDir disable
UserDir public_html
[root@rhel ~]# service httpd restart
创建目录和网页文件。如果希望每个新建的用户都有一个www目录,只需在/etc/skel/下添加www目录即可,因为每个用户的默认目录都是参考/etc/skel的目录。
[root@rhel ~]# mkdir public_html
[root@rhel ~]# chmod 755 public_html              //修改权限。
[root@rhel chenbin]# chmod 755 ~
[root@rhel ~]# echo hello > public_html/index.html
注意:在地址栏里输入的是http://IP地址或主机名/~root。在root前面有个~,在键盘ESC键下面(数字1左边)那个键,要同时按住shift键。
那么有没有办法不输入那个~呢,当然是有的,最简单的方法就是添加一个链接:
[root@rhel ~]# cd /var/www/html/
[root@rhel html]# ln -s /root/public_html/ root   //创建一个链接,因为这里是root帐户,所以是/root/public_html,如果是其他用户,应该是/home/用户名/public_html
如果不想别人知道你的用户名,也可以把链接后面跟的用户名换成你想要的名字,如:
[root@rhel html]# ln -s /root/public_html/ linux
当然还有别的方法,将在下面介绍。
现在如果我们有多个网站,但只有一个IP地址,那怎么让别人能同时访问这多个网站呢?
相同IP不同端口的虚拟主机。
假设我们有一个IP192.168.100.101,有两个网站,我们可以使用两个端口,比如:一个使用81,一个使用82
首先,把两个网站的目录和文件建立好。
[root@rhel html]# cd /var/www
[root@rhel www]# mkdir html1
[root@rhel www]# mkdir html2
[root@rhel www]# echo html1 > html1/index.html
[root@rhel www]# echo html2 > html2/index.html
修改配置文件:
[root@rhel html]# vi /etc/httpd/conf/httpd.conf
Listen 80      //在这下面添加两个端口
Listen 81
Listen 82
在最后添加:
<VirtualHost 192.168.100.101:81>
        DocumentRoot /var/www/html1
</VirtualHost>
<VirtualHost 192.168.100.101:82>
        DocumentRoot /var/www/html2
</VirtualHost>
修改完成,重启服务:
[root@rhel www]# service httpd restart
这时访问的时候有点不一样了,需要在IP地址后面加上:再加上端口号。
都可以访问,这就完成了。
不同IP相同端口的虚拟主机。
知道相同IP不同端口的配置了,这里相同端口不同IP就简单了,就按照上面的思路做。
因为是多个IP,所以这里就要配置多个IP地址,这里就配置子接口。
[root@rhel www]# ifconfig eth0:0 192.168.100.111 up
[root@rhel www]# ifconfig eth0:1 192.168.100.112 up
创建目录和网页文件:
[root@rhel www]# mkdir html3
[root@rhel www]# mkdir html4
[root@rhel www]# echo html3 > html3/index.html
[root@rhel www]# echo html4 > html4/index.html
修改配置文件:
[root@rhel www]# vi /etc/httpd/conf/httpd.conf
至于端口,就使用默认的80端口。
<VirtualHost 192.168.100.111:80>
        DocumentRoot /var/www/html3
</VirtualHost>
<VirtualHost 192.168.100.112:80>
        DocumentRoot /var/www/html4
</VirtualHost>
重启服务:
[root@rhel www]# service httpd restart
这个也就完成了。
使用域名的虚拟主机。
基于域名的虚拟主机,这就要用到DNS了,那么首先把DNS配置一下吧,虽然前面有配置DNS的详细说明,但这里还是简单配置一下,就当复习一下。
安装DNS软件:
[root@rhel www]# cd /misc/cd/Server/
[root@rhel Server]# rpm -ivh bind-9.3.6-4.P1.el5_4.2.i386.rpm
[root@rhel Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5_4.2.i386.rpm
[root@rhel Server]# rpm -ivh bind-utils-9.3.6-4.P1.el5_4.2.i386.rpm
[root@rhel Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm
[root@rhel Server]# cd ~
[root@rhel ~]# vi /var/named/chroot/etc/named.caching-nameserver.conf
        listen-on port 53 { 192.168.100.101; };             //修改一下IP地址。
        allow-query     { any; };         //允许所有人查询。
        match-clients      { any; };     //允许所有客户端。
        match-destinations { any; };     //允许所有目标。
创建区域:
[root@rhel ~]# vi /var/named/chroot/etc/named.rfc1912.zones            
添加以下区域:
zone "rhel1.com" IN {
        type master;
        file "rhel1.com.zone";
        allow-update { none; };
};
zone "rhel2.com" IN {
        type master;
        file "rhel2.com.zone";
        allow-update { none; };
};
修改区域配置文件;
[root@rhel ~]# cd /var/named/chroot/var/named/
[root@rhel named]# cp -p localhost.zone rhel1.com.zone     //别忘了加-p
[root@rhel named]# cp -p localhost.zone rhel2.com.zone
[root@rhel named]# vi rhel1.com.zone
www             IN A            192.168.100.101      //添加这一行
[root@rhel named]# vi rhel2.com.zone
www             IN A            192.168.100.101      //也是添加这一行
配置完成,重启一下服务。
[root@rhel named]# service named restart
来测试一下DNS:如图:
DNS配置就可以了,下面接下来配置:
[root@rhel named]# cd /var/www/
[root@rhel www]# mkdir html5
[root@rhel www]# mkdir html6
[root@rhel www]# echo www.rhel1.com > html5/index.html
[root@rhel www]# echo www.rhel2.com > html6/index.html
[root@rhel www]# vi /etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.100.101
<VirtualHost 192.168.100.101>
        ServerName www.rhel1.com
        DocumentRoot /var/www/html5
</VirtualHost>
<VirtualHost 192.168.100.101>
        ServerName www.rhel2.com
        DocumentRoot /var/www/html6
</VirtualHost>
配置完成,重启服务。
[root@rhel www]# service httpd restart
现在可以测试了,但现在访问还不行,我们还得把用作测试的主机的DNS指向192.168.100.101,关于指定DNS就不演示了,这个太简单了,接下来就可以测试了。如图:
第二个:
好了,基于域名的虚拟主机就到这里。
虚拟目录。
虚拟目录也可以说是别名,也就是可以使用多个名称来访问一个目录。比如,在上面说的那个访问时要加个~的,我们使用了一个链接可以解决,这里就使用另一种方法来解决,虚拟目录。
[root@rhel www]# vi /etc/httpd/conf/httpd.conf
添加如下几行:
Alias /rhel "/root/public_html/"         //注意:在/rhel后面不要加上/
<Directory "/root/public_html/">
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>
[root@rhel www]# service httpd restart
完成。

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注