zl程序教程

您现在的位置是:首页 >  工具

当前栏目

apache服务器以及虚拟主机的配置

Apache配置服务器 以及 虚拟主机
2023-09-14 08:56:53 时间

简介

  apache版本:2.4

  centos中配置文件路径及文件名:/usr/local/apache/conf/httpd.conf。

  mac OS中,配置文件的路径及文件名:/etc/apache2/httpd.conf。

  不同的安装路径,配置文件的路径可能会不一样,但是文件名总是httpd.conf。

   

  首先要明白的一点,真正对apache进行控制的是apachectl命令,路径是path/to/apache/bin/apachectl

  虽然在centos、RHEL中使用service httpd [start | stop | restart | status ]来对apache进行操作,实际上都是使用的下面这条命令:

  path/to/apache/bin/apachectl  [start | stop | restart | status ]

  至于为什么可以使用service httpd xxx来操作apache,可以参考这篇博客:制作自己的服务脚本

 

  和httpd.conf同级的有几个重要的目录:

  1、cgi-bin目录,存的是CGI程序,关于CGI的博客,可以参考这篇博客:初始CGI

  2、bin目录,包含apache各种服务的二进制文件(可执行的命令)

  3、conf目录,存放的是apache的配置文件目录

  

  其中conf目录很重要,其目录下包含以下目录和文件:

  1、httpd.conf文件,apache的主配置文件

  2、extra目录,包含很多apache的辅配置文件,可以在主配置文件中选择是否加载这些辅配置文件中的配置。

  

配置项

ServerRoot  服务器的根目录

注意:这个不是网站文件的根目录,而是服务器的根目录,保存着一些组件、配置文件等

 

Listen  监听,可以指定ip + port,也可以只指定port。

这里的监听ip是这样的,如果一台电脑的ip是192.168.1.104,那么他就可以监听这个ip地址,也就是本地,此时指定一个80端口,表示让apache监听本机的80端口,其他机器访问本机没有监听的端口,本机服务器并不会响应。

警告:这里监听的ip不是指白名单那种可以访问本机服务器的ip,而是本机

注意:这里可以不用写ip,表示监听本机所有的ip地址的指定port(对于有多ip的主机而言)

如果写为listen 127.0.0.1:80,那么只能通过本机访问服务器。

建议:要么只写port,要么写本机ip + port。

可以监听多个接口,每行写一个Listen

  

ServerName  本机的域名或者ip

ServerName 使用ip+port来标识其自身的,也可以使用域名

其实这里的ServerName并没有什么用,只是用来标识自己的,这个标识是给自己配置人员看的,不是给访问服务器的人看的。

并且可以随意指定ip和port,哪怕这个ip不是你的ip,这个port你也没有监听。

  

DocumentRoot 网站的根目录

这里才是真正的网站各种文件的根目录,存放源代码、图片等资源的地方。

客户端对服务器访问的资源全都处在此目录之下。

  

<Directory 'path'> setting  </Directory>

注意这个是两个Directory,类似html双标签一样。

用来为指定的path设置一些权限等操作。

path应该是DocumentRoot的子目录,比如某个目录某个目录下的文件是否允许可访问:setting就是deny from all

 

DirectoryIndex  当访问服务器的根路径,既没有指定访问的资源时,就会默认返回一个文件给客户端。

这里可以指定多个文件名,如果一个文件不存在,则返回下一个文件,以此类推。

这里最好将最常用的、访问最频繁的文件写在这里。

  

配置虚拟主机

  根据端口来配置多个虚拟主机:注意主配置文件中要监听虚拟主机的端口。

<VirtualHost 192.168.1.104:80>
    ServerAdmin webmaster@example.com
    DocumentRoot "/home/www/one"
    ServerName 192.168.1.104
    ErrorLog "/home/wwwlogs/IP-error_log"
    CustomLog "/home/wwwlogs/IP-access_log" combined
    <Directory "/home/www/one/">
        AllowOverride All
        Order allow,deny
        Allow from all
        DirectoryIndex index.html index.php
    </Directory>
</VirtualHost>

<VirtualHost 192.168.1.104:90>
    ServerAdmin webmaster@example.com
    DocumentRoot "/home/www/two"
    ServerName 192.168.1.104
    ErrorLog "/home/wwwlogs/IP-error_log"
    CustomLog "/home/wwwlogs/IP-access_log" combined
    <Directory "/home/www/two/">
        AllowOverride All
        Order allow,deny
        Allow from all
        DirectoryIndex index.html index.php
    </Directory>
</VirtualHost>

  

  根据ip来配置多个主机,和上面的操作几乎一样,VirtualHost后面的ip改一下就行了。

  注意:多ip的主机才可以使用这种方法。