设定 Apache
在安装好后,启动 apache 就有首页了,但我们可以去修改 /usr/local/etc/apache/httpd.conf,达到需要的 apache 。
基本的环境设定方法为:<设定项目>例如:
......
......
</设定项目><Directory>几乎都是这样的设定方式喔!请注意一下即可!特别留意的是,如果你有额外的设定时,不能随便在 httpd.conf 里头找地方写入!否则如果刚好写在 <Directory>...</Directory> 里面,呼呼!那麽就会发生错误啦!需要前前后后的找一找喔!
Options Indexs
</Directory>
- 基础环境设定:
[root @test root]# cd /usr/local/etc/apache
[root @test root]# vi httpd.confServerRoot "/usr/local"
最上层的 Apache 目录!我们安装的时候,以这个目录来安装的,他就是 ServerRoot 罗!
其实,也就是说,如果底下以『相对路径』的方式写的,那麽就是相对於这个路径!
当然,写绝对路径就没有任何影响啦!PidFile /var/run/httpd.pid
这个项目在设定 Apache 的 PID 记录档!可以用在重新读取设定档等等的功能!
Timeout 300
这是用来设定连接到你这部主机的用户端,当超过 300 秒用户端还没有
办法连上你的主机时,就予以断线处理!KeepAlive On
是否允许持续性连线,亦即一个连线有多个要求!这里通常设定为 On 比较好,
就鸟哥的经验来看,设定为 Off 似乎会产生很多 Time_Wait 的封包!粉怪!MaxKeepAliveRequests 100
在持续性的连线当中,最多允许的连线数目!如果不要限制,可以设定为 0 ,
当然,官方网站上面说,要有较佳的效能,最好设定大一点,所以我都将他改为 200 以上。KeepAliveTimeout 15
同一个连线的 Client 下次的需求没有在 15 秒内送出,那麽该连线会被视同断线喔!
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
这段主要是与系统的效能较有关系!如果不需要效能设定的话,那麽使用预设值就很够了!
1. MinSpareServers 与 MaxSpareServers 是开启 httpd 服务数目的地方,当你执行
/usr/local/sbin/apachectl start 之后, 在 shell 下执行
ps -ax|grep http 就可以看到 http 的数量, 通常这与你的 RAM 有关。
如果是小站的话,可以设小一点, 例如最小设 3 最大设 5 即可!
2. 而 StartServers 则设与 Min 相同即可!
3. 至於 MaxClients 则可以设小一点,因为设定太大很耗系统资源,
而太小则无法让很多人连上来!所以可以设成例如 100Listen 80
设定监听的 port ,如果你要更改 WWW 的 port number ,可以在这里修改,例如 8080User nobody
Group nogroup
这个是设定 apache 所产生的,就是刚刚我们上头所设定的 MinSpareServers ,之后会产生
一些 process ,那麽这些 processes 的拥有者与拥有群组 ( owerner & group ) 是谁!
是否有该 user 还要查看 /etc/passwd 及 /etc/group 喔!不能设错!否则无法启动 apacheServerAdmin root@localhost
这个是设定你的机器的 httpd 管理员帐号!设成你的e-mail吧!例如我都设定为:
我的机器上:ServerAdmin test@localhost#ServerName new.host.name:80
设定主机名称的地方,若有需要的话才设定,否则可以将他 mark 掉也没关系!
AddDefaultCharset Big5
LanguagePriority tw en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv
Apache 的预设显示语言编码!
- 目录路径设定:
[root @test root]# cd /usr/local/etc/apache
[root @test root]# vi httpd.confDocumentRoot "/usr/local/www/data"
这个就是主机的主网页啦!你可以将他移到任何你高兴的地方!
不过,比较重要的限制是,最好这个目录底下不要包含重要的资讯,例如你不要将 根目录 /
设定为这个 DocumentRoot 吧! ^_^ 否则你的主机下的任何资料,不就任何人都可以使用
浏览器来查看?岂不是很危险!<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
这个是设定根目录,亦即是 /usr/local/www/data 这咚咚的属性啦!
使用 Options 来设定相关属性,相关的属性还有底下几个ㄋㄟ!
ExecCGI:使该目录底下的 CGI 具有可以执行的能力!重要项目!如果您要您的
某个目录可以执行 CGI 的程式时,那麽请将该目录多加 ExecCGI 这个属性!
FollowSymLinks:让您的 link 的目录或档案,虽然在其他的目录下,仍然可以连接出去!
举个例子来说,目前我的主页是 /usr/local/www/data ,但我想
连接到 /home/kidd/testing 底下,然而我又不想多加一个 directory
的设定值在 httpd.conf 内,那麽我可以在 /usr/local/www/data
使用 ln 连结一个名为 kidd 使他指向 /home/kidd/testing ,那麽
当我网址输入 http://localhost/kidd 时,就可以到
/home/kidd/testing 了!
如果没有设定这个属性,那麽就无法连接出去喔!
Includes:在 Server 端的工作可进行!
Indexes:如果在该目录底下找不到 index.html 时,就显示整个目录下的档案名称!
粉危险吧! ^_^ 所以罗,尽量不要包含 Indexes 这个项目啦!
MultiViews:这个东西有点类似多国语言支援啦!你可在同一目录下的同一个档案,
编写多个不同语言的档案,并且以一个 *.var 的档案来规范不同编码!
All :全部的属性都启动啦!但是不包含 MultiViews !<Directory "/usr/local/www/data">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
1. 这段主要在设定 / 的属性啦!可以看到预设的情况中有 indexes 喔!所以赶紧将他拿掉!
2. 至於 AllowOverride 主要与认证网页的设定有关啦!亦即 .htaccess 档案!意思是说,
httpd.conf 在与 .htaccess 相同目录下的设定中,哪些设定会用来取代 .htaccess 的
设定内容?当然啦, .htaccess 这个档案设定较为灵活,所以当然设定为 None 罗!
仍然是以 .htaccess 的设定为主啦!
3. Order allow,deny 注意喔,那个 allow,deny 中间是以 , 隔开,并没有空格!不要
设定错了!这个东西与底下的 Allow 在设定『权限』的啦!UserDir public_html
这玩意儿在设定个人家目录下的首页在何处啦!这里预设是 public_html ,举例来说,
我的家目录是 /home/kidd ,那麽这个使用者的首页目录在 /home/kidd/public_html !
当然,这个目录是可变的!就看你要怎麽设定罗! ^_^
这个就是当我们输入 http://192.168.1.2 时,那麽 Apache 将会去搜寻该目录底下的档名!
<IfModule mod_dir.c>
<IfModule mod_php3.c>
<IfModule mod_php4.c>
DirectoryIndex index.php index.php3 index.html index.htm
</IfModule>
<IfModule !mod_php4.c>
DirectoryIndex index.php3 index.html index.htm
</IfModule>
</IfModule>
<IfModule !mod_php3.c>
<IfModule mod_php4.c>
DirectoryIndex index.php index.html index.htm
</IfModule>
<IfModule !mod_php4.c>
DirectoryIndex index.html index.htm
</IfModule>
</IfModule>
</IfModule>
Alias /icons/ "/usr/local/www/icons/"
<Directory "/usr/local/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Aliase 之设定主要也是在简化一些繁复的连结内容啦!举上面的例子来说,我们的 Apache
根目录在 /usr/local/www/data 里面,那麽输入网址 http://localhost 则到该目录,
在上面的设定中,则输入 http://localhost/icons 会跑到 /usr/local/www/icons
的意思!如此一来,设定上较为简便了!Alias /manual "/usr/local/share/doc/apache"
<Directory "/usr/local/share/doc/apache">
Options Indexes FollowSymLinks MultiViews IncludesNoExec
AddOutputFilter Includes html
AllowOverride None
Order allow,deny
Allow from all
</Directory>
这个与上面的设定相同!所以,未来只要输入 http://localhost/manual 即可到达自己的主机上面的说明文件喔!
文章出处:鸟哥的私房菜 作者:vbird