apache系统需求:
在6-10MB硬盘空间和8MB RAM的linux系统上就可以运行的很好。apache的可执行文件只占用1MB的空间,源代码所占用的空间为5MB。但是你应该对apache创建的日志文件予以注意,每个日志条目大约占用80字节的磁盘空间。如果每天大约有10000次访问,那么日志文件将有8000000字节。
apache的安装:
1.运行configure ./Configure --prefix=PREFIX
prefix为服务器安装到文件系统中的路径名,如果没有指定,默认安装到/usr/local/apache2
2.编译apache make
3.安装 make install
4.配置 vi PREFIX/conf/httpd.conf
5.测试 PREFIX/bin/apachectl -k start
配置并运行apache
一、httpd.conf
是主配置文件。
模块:
apache是模块化的服务器,这意味着核心中只包含最基本功能的模块。扩展功能可以作为模块动态加载。
在不同端口上运行不同站点
服务器配置
Listen 80
Listen 8080
NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080
<VirtualHost 172.20.30.40:80>
ServerName www.example.com
DocumentRoot /www/domain-80
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
ServerName www.example.com
DocumentRoot /www/domain-8080
</VirtualHost>
<VirtualHost 172.20.30.40:80>
ServerName www.example.org
DocumentRoot /www/otherdomain-80
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
ServerName www.example.org
DocumentRoot /www/otherdomain-8080
</VirtualHost>
一、地址和端口绑定
apache启动时,会绑定本机上的地址和端口,然后等待请求进入。默认情况下,它会监听本机
所有的地址。
Listen指令告诉服务器只接受来自特定端口的请求。如果Listen指令仅指定了端口,则服务器会监听所有的IP地址;如果指定了地址+端口的组合,则服务器只监听来自特定地址。可以有多个Listen。
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
二、配置文件
apache的配置文件时包含若干指令的纯文本文件。主配置文件通常叫httpd.conf。另外,可以使用Include指令和通配符附加许多其他配置文件。
服务器还会读取一个包含MIME文件类型的文件,其文件名由TypesConfig指令确定,默认值为mime.types
配置文件的语法:
apache的配置文件是不区分大小写的,但是指令参数通常是大小写敏感的。
可以使用httpd -t来确定配置文件是否正确。而无须启动apache服务器。
模块
apache是模块化的服务器,这意味着核心中只包含实现最基本功能的模块。扩展功能可以作为模块动态加载。默认情况下,只有base组的模块被编译进的服务器。可以使用LoadModule指令来加载其他模块。
用命令行 -l可以参看已经编译到服务器中的模块。
指令的作用域
<Directory>
<DirectoryMatch>
<Files>
<FilesMatch>
<Location>
<LocationMatch>
<VirtualHost>
文件系统和网络空间
最常用的配置段是针对文件系统和网络空间特定位置的配置段。
文件系统容器
<Directory>和<Files>指令与其相应的正则表达式版本一起作用于文件系统的特定部分。<Directory>配置段中的指令作用于指定的文件系统目录及其所有子目录
<Directory /var/web/dir1>
Options +Indexes #允许进行目录索引
</Directory>
<Files>配置段中的指令作用于特定的文件名,而无论这个文件实际存在于哪个目录。
<Files private.html>
Order allow,deny
Deny from all
</Files>
组合
<Directory /var/web/dir1>
<Files private.html>
Order allow,deny
Deny from all
</Files>
</Directory>
网络空间容器
<Location>指令与其相应的正则表达式版本<LocationMatch>一起作用于网络空间的特定部分。
<Location /private>
Order Allow,Deny
Deny from all
</Location> #拒绝对任何以"/private"开头的URL路径的访问
<VirtualHost>容器作用于特定的虚拟主机,为同一个机器上具有不同配置的多个主机提供支持。