设置监听套接字。设置方式很简单,包括以下几种情况:
# 监听两个端口 Listen 80 Listen 8000 # 监听套接字绑定在给定地址和端口上 Listen 192.170.2.1:80 Listen 192.170.2.5:8000 1.2.2 ServerRoot指令该指令设置httpd的安装位置,也就是常称之为的basedir,在此目录下应该具有module、logs等目录。rpm安装的httpd的ServerRoot默认为/etc/httpd,编译安装的ServerRoot路径由"--prefix"选项指定,例如/usr/local/apache。
[root@xuexi ~]# ls -l /usr/local/apache/ total 52 drwxr-xr-x 2 root root 4096 Sep 27 20:46 bin drwxr-xr-x 2 root root 4096 Sep 27 20:46 build drwxr-xr-x 2 root root 4096 Sep 27 20:46 cgi-bin drwxr-xr-x 3 root root 4096 Sep 27 20:46 error drwxr-xr-x 2 root root 4096 Sep 30 11:33 htdocs drwxr-xr-x 3 root root 4096 Sep 27 20:46 icons drwxr-xr-x 2 root root 4096 Sep 27 20:46 include drwxr-xr-x 2 root root 4096 Sep 30 01:40 logs drwxr-xr-x 4 root root 4096 Sep 27 20:46 man drwxr-xr-x 14 root root 12288 Jul 7 01:38 manual drwxr-xr-x 2 root root 4096 Sep 27 20:46 modules这个指令很关键,安装好apache后一般不会去做任何修改,因为很多指令的路径以及相对路径都是基于此路径的。严格地说,除了网络路径,基本上所有本地文件系统类的路径只要不是绝对路径,相对路径都基于此路径展开。
例如,当指定"ServerRoot /usr/local/apache"时,下面几个指令中描述的本地路径,等号前面的采用的都是相对路径,等号右边的都是他们等价的绝对路径写法。
DocumentRoot "htdocs" = DocumentRoot "/usr/local/apache/htdocs" LoadModule dir_module modules/mod_dir.so = LoadModule dir_module /usr/local/apache/modules/mod_dir.so ErrorLog "logs/error_log" = ErrorLog /usr/local/apache/logs/error_log Alias /net_path local_fs_path = Alias /net_path /usr/local/apache/local_fs_path Include conf.d/vhost.conf = Include /usr/local/apache/conf.d/vhost.conf但注意,容器< Directory PATH >的PATH一般设置为文件系统的绝对路径,因为它是路径匹配性质的。但它仍可以使用相对路径时,此时它相对的是根文件系统的"/",而非ServerRoot。
所以,这个指令强烈不建议做任何修改,修改是很简单,但是牵一发而动全身。
1.2.3 DocumentRoot指令如果说,ServerRoot是httpd中本地文件相对路径的根,那么DocumentRoot就是网络路径相对路径的根。顾名思义,DocumentRoot是文档的根目录,这个文档的意思是展现在网络上的文档。使用rpm包安装的httpd的DocumentRoot默认值为"/var/www",编译安装的httpd,其DocumentRoot默认为"PREFIX/htdocs",也就是"$ServerRoot/htdocs"。
设置DocumentRoot后,将需要在网络上访问的文件都放进此目录下即可。
例如,假设httpd所在主机IP为192.168.100.14,DocumentRoot使用默认的/usr/local/apache/htdocs,那么下面几个URL中,左边的是浏览器中输入的值,右边的是其访问的服务器上的资源路径。
http://192.168.100.14/index.html ==> /usr/local/apache/htdocs/index.html http://192.168.100.14/index.php ==> /usr/local/apache/htdocs/index.php http://192.168.100.14/subdir/index.html ==> /usr/local/apache/htdocs/subdir/index.html http://192.168.100.14/subdir/index.php ==> /usr/local/apache/htdocs/subdir/php也就是说,DocumentRoot的值对应的是的"/"。
1.2.4 DirectoryIndex指令