发新话题
打印

apache服务器的配置

apache服务器的配置

apache服务的配置

一:禁止用户查看服务器的目录列表:
原来<directory .../htdocs>
Options Indexes FollowSymLinks
#  Options FollowSymLinks
.
.
</directory>
改为
<directory .../htdocs>
# Options Indexes FollowSymLinks
   Options FollowSymLinks
.
.
</directory>
这样用户就无法通过http://ip/directory/来查看列表了
二:虚拟主机的配置:
首先要认清访问机制。即使你不配置servername localhost。当你访问http://localhost时,照样会和[url]http:/.0.0.1[/url]的效果相同

实际上 servername是指你的 domainname, 这一个名称应该在某一个DNS上注册了,也就说当你访问 http://servername时,还是
会通过DNS得到的IP地址来再次访问你要访问的主机。只有这样的 servername才可以有效的用在<virtualhost></virtualhost>中.
另一问题就是http://localhost的访问目录。默认的是$HTTP_DIRECTORY/htdocs.
假设在服务器端A的httpd.conf中有如下配置
namevirtualhost *:80
<virtualhost*:80>
servername servername1
documentroot root1
</virtualhost>
<virtualhost *:80>
servername  servername2
documentroot root2
</virtualhost>
B要访问A主机http://servername1则会进入 root1目录。注意不是本地访问 localhost
B要访问A主机  http://servername2则会进入root2目录。
如要是这样访问http://A的IP 则会进入默认目录。
还有若是还有一下配置
Listen 8080
<virtualhost*:8080>
servername servername3
documentroot root3
</virtualhost>
若要如此访问 http://A的IP :8080则会进入root3
三:默认字体设置:
AddDefaultCharset GB2312

TOP

apache服务器的配置续1

除了系统默认的网页外,系统允许每个用户都可以拥有个人网页,默认情况下其网页应该放在用户主目录的public_html目录中。
较新版本的apache服务器默认下是打开此项功能的。其语句如下。(存在于httpd.conf中)
LoadModule userdir_module modules/mod_userdir.so
加载了模块。有时默认加载了却没有该行语句。
UserDir public_html 指定用户主目录下的存放用户网页的目录,需要创建它。
在window下,默认情况是
UserDir "My Documents/My Website"
.
下面是就是如何访问了。
1:若没有使用别名。
假设用户名为my3w.存在目录/home/my3w/public_html
.主机IP为192.160.0.1.
访问:http://192.168.0.1/~my3w/
若有注册的网址www.example.com
则可以这样访问
http://www.example.com/~my3w/
本地测试;
http://localhost/~my3w/
2:若使用了别名。
在httpd.conf中有
Alias /my3www/ "/home/my3w/public_html/"
则可以这样访问。
http://192.168.0.1/my3www

TOP

apapche服务器的配置续(二)--options相关

下面介绍的3项都与options相关,所以就一起介绍了。。。。。。。。
(一):CGI的执行。
假设有一用户test他要执行cgi.它的主目录在/home/test/public_html/,然而他的程序在
/home/test/public_html/cgi,有两种方法:
1:Options.
vi httpd.conf
添加Addhandler sgi-script .cgi(默认情况该项被注释掉了)//所有方法都是必须的
<directory "/home/test/public_html/cgi">
Options ExecCGI
AllowOverride None
order allow,deny
allow from all
</directory>
第二种方法:
<directory "/home/*/public/cgi">
Options ExecCGI
SetHandler cgi-script
</directory>
还有一种方法:
ScriptAlias /cgi/ "/home/test/public_html/cgi"
这样你可以如此访问:
http://yourwebsite/cgi/your.cgi

INDEX显示
假设有这样一个访问:http://yourwebsite/test/.问题是在test目录下没有index.html页,怎么办,让他列出该目录下的所有文件。这样很危险。
你的网站目录为:/home/httpd/htdocs
在httpd.conf里有这样一项
<directory "/home/httpd/htdocs">
Options Indexes ....
.
.
</directory>
就是因为有了Indexes所以才会发生上面所描述的情况,.把indexes去掉就可以了。
。。
还有另外一种方法
分析出现上述情况的原因就是没有在/test/目录下找到index.html目录。我们可以设置一个错误页面,在用户没有找到所求网页时,显示该页面以提示用户。
具体步骤就是:
vi httpd.conf
添加
ErrorDocument 404 /missing.html
编辑你的/home/your_html_home/missing.html
里面有给用户的有用的提示信息

在主目录下利用链接
<directory "/home/test/public_html">
options FollowSymLinks
..
..
</directory>
打下如下命令:
假设你的apache的目录为/home/httpd
ln -s /home/test/public_html /home/httpd/htdocs/test
那么
http://yourwebsite/~test
http://yourwebsite/test具有相同的效果.
也可以在httpd.conf中利用alias

TOP

发新话题