1、默认的开始页面:
<IfModule dir_module>
DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>
2、默认访问位置,如输入127.0.0.1后:
访问的是htdocs文件夹下的DirectoryIndex页面
3、为什么输入127.0.0.1,访问的是http://127.0.0.1/xampp/
因为在htdocs的index.php做了跳转
4、目录相关之权限:
[root@www ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html" <==可以改成你放置首页的目录!
# 这个设定值规范了 WWW 伺服器主网页所放置的‘目录’,虽然设定值内容可以变更,
# 但是必须要特别留意这个设定目录的权限以及 SELinux 的相关规则与类型(type)!
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
# 这个设定值是针对 WWW 伺服器的‘预设环境’而来的,因为针对‘/’的设定嘛!
# 建议保留上述的预设值 (上头资料已经是很严格的限制),相关参数容后说明。
<Directory "/var/www/html"> <==针对特定目录的限制!底下参数很重要!
Options Indexes FollowSymLinks <==建议拿掉 Indexes 比较妥当!
AllowOverride None
Order allow,deny
Allow from all
</Directory>
----------------------------------------------------
a、Options (目录参数):
此设定值表示在这个目录内能够让 Apache 进行的动作,亦即是针对 apache 的程序的权限设定啦!主要的参数值有:
Indexes:如果在此目录下找不到‘首页档案 (预设为 index.html) ’时, 就显示整个目录下的档案名称,至于‘首页档案档名’则与 DirectoryIndex 设定值有关。
FollowSymLinks:这是 Follow Symbolic Links 的缩写, 字面意义是让连结档可以生效的意思。我们知道首页目录在 /var/www/html,既然是 WWW 的根目录,理论上就像被 chroot 一般! 一般来说被 chroot 的程式将无法离开其目录,也就是说预设的情况下,你在 /var/www/html 底下的连结档只要连结到非此目录的其他地方,则该连结档预设是失效的。 但使用此设定即可让连结档有效的离开本目录。
ExecCGI:让此目录具有执行 CGI 程式的权限,非常重要!举例来说,之前热门的 OpenWebMail 使用了很多的 perl 的程式,你要让 OpenWebMail 可以执行,就得要在该程式所在目录拥有 ExecCGI 的权限才行喔!但请注意,不要让所有目录均可使用 ExecCGI !
Includes:让一些 Server-Side Include 程式可以运作。建议可以加上去!
MultiViews:这玩意儿有点像是多国语言的支援,与语系资料 (LanguagePriority) 有关。最常见在错误讯息的回报内容,在同一部主机中,可以依据用户端的语系而给予不同的语言显示呢! 预设在错误回报讯息当中存在,你可以检查一下 /var/www/error/ 目录下的资料喔!
b、AllowOverride (允许的覆写参数功能):
表示是否允许额外设定档 .htaccess 的某些参数覆写?我们可以在 httpd.conf 内设定好所有的权限,不过如此一来若使用者自己的个人网页想要修改权限时将会对管理员造成困扰。因此 Apache 预设可以让使用者以目录底下的 .htaccess 档案内覆写 <Directory> 内的某些功能参数。 这个项目则是在规定 .htaccess 可以覆写的权限类型有哪些。常见的有:
ALL:全部的权限均可被覆写;
AuthConfig:仅有网页认证 (帐号密码) 可覆写;
Indexes:仅允许 Indexes 方面的覆写;
Limits:允许使用者利用 Allow, Deny 与 Order 管理可浏览的权限;
None:不可覆写,亦即让 .htaccess 档案失效!
c、Order Allow, Deny (能否登入浏览的权限):
决定此目录是否可被 apache 的 PID 所浏览的权限设定啦!能否被浏览主要有两种判定的方式:
deny,allow:以 deny 优先处理,但没有写入规则的则预设为 allow 喔。
allow,deny:以 allow 为优先处理,但没有写入规则的则预设为 deny 喔。
所以在预设的环境中,因为是 allow,deny 所以预设为 deny (不可浏览),不过在下一行有个 Allow from all,allow 优先处理,因此全部 (all) 用户端皆可浏览!
5、虚拟主机:
[root@www ~]# vim /etc/httpd/conf.d/virtual.conf
# 底下这一行在规定‘本机任何介面的 port 80 所指定的虚拟主机’的意思。
NameVirtualHost *:80
# 先针对两个多出来的可浏览目录进行权限方面的规范啊!
<Directory "/var/www/www">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/var/ftp">
Options FollowSymLinks Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# 针对三部主机的 DocumentRoot 进行定!
<VirtualHost *:80>
ServerName linux.centos.vbird
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName www.centos.vbird
DocumentRoot /var/www/www
CustomLog /var/log/httpd/www.access_log combined
# 不同的主页可以指定不同的登录档资讯,这样比较好 debug 与分析啦!
</VirtualHost>
<VirtualHost *:80>
ServerName ftp.centos.vbird
DocumentRoot /var/ftp
</VirtualHost>
6、虚拟主机注意点:
a、在虚拟主机的设定上还有很多的可用的功能,不过,最低的限度是需要有 ServerName 及 DocumentRoot 这两个即可!
b、使用了虚拟主机后,原本的主机名称 (linux.centos.vbird) 也要同时写入虚拟主机的对应中, 否则这个主机名称可能会不知道被丢到哪里去喔!
c、在 www.centos.vbird 这个主机当中多了个 CustomLog ,表示任何向 www.centos.vbird 要求资料的记录都会改写入 /var/log/httpd/www.access_log 而不是预设的 /var/log/httpd/access_log。 但这个新增的登录档必需要加入 logrotate 的管理当中才行喔!否则登录档会大到‘爆表’
d、在windows下的路径不用\,都是使用/
7、生产环境的虚拟主机设置:
<VirtualHost *>
<Directory "D:/PHPnow-1.5.6/htdocs/gausstel">
Options Indexes FollowSymLinks
Allow from all
AllowOverride All
</Directory>
ServerAdmin
[email protected]
DocumentRoot "D:/PHPnow-1.5.6/htdocs/gausstel"
ServerName 127.0.0.3:80
ServerAlias *.vaasdk.com
ErrorLog logs/127.0.0.3-error_log
php_admin_value open_basedir "D:\PHPnow-1.5.6\htdocs\gausstel;C:\WINDOWS\Temp;"
</VirtualHost>