You are on page 1of 42

WWW 服务器设定

一般我们所谓的『架站』其实就是架设一个 Web 网站,也就是全


球信息服务网 (World Wide Web)或互连网的意思。这是目前最常
使用的 Internet 的协议之一,通常说的上网就是指使用 WWW 来
查询使用者所需要的信息。

目前的 WWW 服务器主要分为两大阵营,分别是 Unix-Like 上面的


Apache 与 Windows 上面的 IIS ,以价格效能比来说,当然是
Linux 的 Apache 最优,至于 WWW 服务器的类型可以分为静态与
动态,而这些动态的网站里面,很多都是以 Linux + Apache +
MySQL + PHP 架设而成的,简称为 LAMP ,这种动态 WWW 主机可
以沟通 Server 与 Client 端的数据,达成互动的效果。
WWW 与网址

WWW 是 World Wide Web 的缩写,其中, Web 有广播网的意思存


在,所以简单的说,WWW就是全球信息网,可以结合文字、图形、
影像及声音等多媒体,并透过超文本 ( HyperText ) 的方式,将
信息透过 Internet 传递到世界各处。

当我们上网浏览时,只要在网址列输入
『 http://www.sina.com.cn 』就可以浏览到新浪网的网页信息,
这个『 http://www.sina.com.cn 』就是所谓的 URL ( Uniform
Resource Locator ) 统一资源定位器,一个URL就是指向WEB上的
某些数据的一个指针,它可以是一个WEB文件,或是一个EMAIL地
址。
其中 www.sina.com.cn 就是所谓的主机名称,即是主机名称加上
领域名称所得的一个独一无二的 Internet 上面的名字。由于计算
机在网络里面仅认识 IP 而已,所以,真实 IP 就是透过 DNS 解
析而找到这部计算机,然后经过 WWW 的协议功能将数据传到客户
端。
<协定>://<主机地址>[:port]/<目录资源>

„ http://www.mysite.com/home/www/files/index.html
„ http:协议部分(超文本传输协议)
„ www.mysite.com:主机名称部分
„ home/www/files/index.html:目录或文件名部分。
„ 协定:包括 http, ftp, news, gopher, telnet 这几种常见的
方法,其中 http 是利用『主机的 http port ,通常为
80 』,至于 ftp 则是利用『主机的 ftp port ,通常为 21 这
个端口』,请注意,使用的 80 与 21 都是主机所提供的服务,
而不是 client 端的 port,所以,使用 http 与 ftp 连上同一
部计算机,所取得的信息并不见得会一样,因为服务本身就不
同,一个是 WWW 一个是 ftp 端口不同提供的服务也是不同的。
此外,如果没有指定协议的话,那么预设的协议就需要看客户端
( Client ) 使用的那个联机程序的预设协议了。举例来说,如
果是使用 Netscape 的话,那么预设的协议就是 http,因此在
网址列输入 www.sina.com.cn 时, Netscape 立刻就会以 http
来连接出去。
另外,有些單位的 FTP 网站都是以 Web 接口进入的,因为可以
直接以浏览与搜寻的功能去捉取数据,因此,这个时候可以在网
址列输入:『 http://ftp.webs.com.cn/ 』以进入 WWW 界面的
FTP 网站,如果想要直接以 FTP 的模式来进行数据的浏览与传
输則直接在网址列输入以 ftp 为方法的网址:
『 ftp://ftp.webs.com.cn/ 』即可。因为所连接的主机的协议
不一样的缘故,所以主机响应的数据当然就不同了,请特别留意
这种网址列的格式。
„ 主机名称/地址:由于计算机仅认识 IP ,所以如果输入 IP,
同样可以联机,但是如果是输入主机名称 ( domain name ),則
必需要让该主机名称可以经由转译器得到对应的 IP ,转译器就
是 /etc/hosts 或者是 /etc/resolv.conf 里面的设定,当然,
若要对外提供正常的 WWW 服务时, host name 就必需要让大家
可以转译到 IP ,也就是需要去申请一个合法的领域名称。
„ 目录资源: Uniform Resource Indicator, URI ,如果要去的
网站网页在主网页的目录底下,那么可以直接输入目录与网页的
名称,就可以直接取得那个页面的数据,此外,如果只输入网址
并没有输入网页名称則 Server 端将会自动的判断 ( 看 Server
的设定而定 ) 该目录下是否有设定引用的网页名称。
„ :port:一般而言,各个协议都有其独特使用的 port ,例如
http 使用的是 80 , ftp 使用的是 21 这些个 port,所以当
要连接到某个网站时,输入 http://that.host.name 就会主动
的利用 80 那个 port 来尝试连接到对方主机。
如果使用非默認的 port,例如:使用的是 8080 这个 port 来
进行 WWW 的服务,那么除非有进行防火墙内的 port 对应,否
则直接在网址列输入 http://your.host.name 结果将无法连接
到 WWW 服务器,因为他会主动的连接到 80 port。所以,就要
告诉浏览器,要向 Server 要求服务的是哪一个 port ,因此,
就要写成: http://your.host.name:8080 才可以连接到对方的
8080 那个 port 。
Client 向 Server 要求数据

WWW 就是使用所谓的 http 这个协议来传送数据的,HTTP 即是


HyperText Transfer Protocol 的简写,亦即是目前 WWW 的资
料传递主流协议,而在网站上面供人浏览的网页,则大部分需
要符合 HyperText Markup Language (HTML) 的语法。也就是
说,当我们在网址列输入主机的网址之后:

„ Client 端先经过 DNS 解析得到 WWW 主机的 IP ,然后会


发出一个数据封包,以 http 这个协议( 或方法 )联系到
WWW 主机,告知 WWW 主机我们要以 http 的方法来取得数
据,同时,这个时候使用的是 TCP 协议,亦即需要经过三
次握手的过程
„ WWW 主机收到这个数据封包之后,会根据 Client 端的要
求,提供相关的讯息来响应,大部分的情况下皆是使用
http 的协议传送具有 HTML 语法的网页数据到 Client 端
的浏览器上

„ 最后 Client 端的浏览器将 HTML 的语法经过解析后,以


相关的画面来显示到屏幕上,提供用户来观赏
Client 与 WWW 主机响应的讯息可包含的动作

„ GET: Client 端向 WWW 主机要求资源,也可以看成


Client 端向主机取得数据
„ HEAD:主机端响应给 Client 端的一些数据文件头
„ POST:Client 端传送到 WWW 主机端的数据
„ OPTIONS:主机端响应给 Client 端的一些允许的功能与方

„ DELETE:删除某些资源的举动

最主要的是 GET 这个功能,毕竟连上 WWW 主机就是为了要取


得他的数据,要记住的是,因为未来可能会去分析网站上的数
据,所以,就必需要了解一下什么是 GET 或 HEAD 等等的意
思。
WWW 主机的主要类型

基本的类型可以分为两种:

„ 仅提供使用者浏览的网站:这种类型的网站大多是提供『静态』
的网页,或许有提供一些动画图示,但基本上就仅止于此。因为
Server 不需要与 Client 端互动,所以用戶可以到该网站上去
浏览,但是无法进行数据的上传,目前主要的免费虚拟主机大多
是这种类型,所以,只要依照 HTML 的语法写好网页,并且上传
到该网站空间上,那麼数据就可以让大家浏览了。

„ 提供与使用者互动接口的数据库网站:这类型的网站提供了与使
用者互动的数据库软件,因此,使用者可以依据主机提供的服
务,来进行留言、数据上传、存取的服务。由于 Server 与
Client 是互动的,因此一个接口良好的『数据库软件』就相当
的重要,因为他可以在线即时来更新使用者所传递的数据讯息,
这方面的网站例如最简单的留言版、讨论区、phpBB 架站论坛、
phpnuke 架站论坛、金流与物流的商业型网站等等,都是属于这种
互动类型的主机。
動態網頁的組成
WWW 运作的主要软件:(目前有 Apache 与 IIS 两大系统)
数据库软件:(例如 MySQL, MS 的 SQL, 及其它相关的数据库)
编写网页的网页语言:(例如 shell scripts, perl scripts,
Java, PHP CGI 等等)

目前主流的动态 WWW 主机系统大致上可以分为两种:


Windows + IIS + MS SQL Server + ASP WWW 服务器:这种 WWW
主机架设上蛮容易的,不过由于 Windows 的某些特性,所以很容
易被 Cracker 所破坏
Linux + Apache + MySQL + PHP 的 WWW 服务器 ( 简称 LAMP ):
这种服务器架设上有一定程度的困难度,尤其在升级与维护的方
面,但是运作妥当的话,他的硬件要求、性能、安全性等方面,则
相对较佳。
Apache 簡介

在 1995 年之前就有蛮多的 Web 架设服务器软件的出现,不


过 , 真 正 到 了 1995 年 之 后 , 由 国 际 超 级 计 算 机 应 用 中 心
( National Center for Supercomputing Applications,
NCSA ) 主导并克服了一些 Web 主机的臭虫之后,才让这个
http 协议的 WWW 套件得到了更广泛的应用,而因为这个释出
的版本是来自于一些臭虫的克服,因此,这个 WWW 套件被戏称
为『 A patchy server 』,意思就是说,一个经过更新后的
Server 的意思,后来,因为要将名字确定下来,干脆就直接取
其谐音,用『 Apache 』。
SSL 与 CA 的认证机制

关于 HTTP 使用在传输上面的协议仍然是以 TCP/IP 为准,他


传输的时候是使用明码来传送的,也就是说,在 Internet 上
面流窜的 WWW 数据,基本上,都是以没有加密过的形式在传送
数据。当有些有心人士,利用 TCP Listen 的功能,即可将
Internet 上面的数据封包捉下来进行解析,并可能进一步取得
该数据封包内的信息。

如果是一个交易网站,例如网络书店的信用卡交易,或一些金
融公司提供的网络交易行为,这些讯息当中,很多都是含有相
当重要的私人讯息,例如信用卡、身份证等代表个人的证号。
所以就需要有『数据加密』的动作,目前用在 WWW 上面的主要
加密功能,有 Secure Socket Layer ( SSL ) 及 Certificate
Authorities ( CA )两个主要的模式。
數據加密簡介

Secure Socket Layer ( SSL )


在使用 SSH 这个服务器的联机过程中是利用 Server 提供的
Public Key 并配合 Client 端随机产生的 Private Key 来组
成一组加密( Public Key )与解密( Private Key )的方法,这
个方法同样的也被运用于 WWW 主机的设定,而支持这个 WWW
主机进行 Public 与 Private 加密的套件,就是很多时候都被
拿出来使用的 OpenSSL,要让你的 WWW 具有 SSL 加密的功
能,就必需要安装 OpenSSL 这个套件。基本上,当 Client 端
要向 Server 端求取数据的时候,则利用 Server 端本身提供
的 Public Key 及 Client 端随机产生的 Private Key 组成一
组可供利用的密码组合,则数据由 Server 传送到 Client 端
之前,会先经由 Server 的 Public Key 将数据封包加密,而
到了 Client 之后,才经由 Private Key 将数据解密,所以,
当数据在 Internet 上面跑时,他是加密过的数据封包。
Cerificate Authorities ( CA )
CA 这个方法同样也是使用 Public 与 Private Key 的方式,
(目前加密与解密的行为大部分都是使用这种类似的观念来进行
的) 由于 SSL 使用的 Public 是 WWW Server 自行建立与产生
的,所以具不具有公信力不是很清楚,万一连上去的 WWW 网站
是骗人的集团建立的,那么有没有加密都是很危险的。CA 是一
个公认的合法组织,他可以用来查验 WWW Server 提供的
Public Key 是否合法,以保障 Client 者的权益。因此, CA
是需要付費。

參考網站:
SSL : http://www.modssl.org/
CA 组织之一:
https://digitalid.verisign.com/server/apacheNotice.htm
Apache:目前 Apache 已经出到了 2.0.X 版,但是最广泛使用的
还是属于 1.3.X 版本。可以上 Apache 主网页去看看相关的信
息:
ƒ Apache 主页 ( 英文 ):http://httpd.apache.org/
ƒ Apache 套件 ( 由主页下载 ):
http://httpd.apache.org/dist/httpd/
主要设定档 httpd.conf :Apache 的主要设定档之档名为
httpd.conf ,因为不同的安装方式与不同的 Linux
distribution 下,这个档案放置的地方会不相同,举例来
说, Red Hat 9 的预设路径在
/etc/httpd/conf/httpd.conf ,若以 Tarball 另行安装之
后,该档案则是在
/usr/local/apache2/conf/httpd.conf ,请依照不同的安
装情况来判断这个档案的所在

主网页目录:主网页的目录预设在 /var/www/html 这个目


录,而如果是以 Tarball 安装的话,则预设在
/usr/local/apache2/htdocs 这个目录当中。不过,这个
主网页的目录是依据 httpd.conf 里面的设定而改变的
„ 登录档:一般来说,登录档会放置到 /var/log/httpd 里
面,统一管理
基本要求

要让您的 Apache 就是 WWW 能够在 Internet 上面被搜寻到,您的


主机最好要有个 domain name ,亦即是有个独一无二的名字,如此
一来,在 Internet 上面,大家比较容易找的到您的主机,并且,如
果您主机的内容已经大致上完备的话,那么可以到各大搜寻引擎去注
册(免费)一下,例如奇摩雅虎、蕃薯藤、新浪网等等去注册,这样就
可以让大家搜寻到你的网站,因此必須:

„ 连上 Internet :既然要对 Internet 公开,第一件事就是要连


上 Internet

„ 申请领域名称 ( domain name ):如果使用的联机方式取得的


IP 是非固定的,亦即俗称的浮动式 IP ,那么可以选择类似免
费动态 IP 之 DNS 系统,若要自行架設 DNS,則就务必要有授
权的 DNS

„ 具备简易的 HTML 语法概念


最简易 Apache 设定

基本的环境设定方法为:

<设定项目>
......
......
</设定项目>

例如:
<Directory>
Options Indexs
</Directory>

如果有额外的设定时,不能随便在 httpd.conf 里头找地方写入,否


则如果刚好写在 <Directory>...</Directory> 里面,那就会发生错

„ 基础环境设定:

[root@test root]# cd /etc/httpd/conf


[root@test root]# vi httpd.conf

ServerRoot "/etc/httpd"
# 最上层的 Apache 设置目录,
# 如果底下以『相对路径』的方式写的,那么就是相对于这个路径
# 写绝对路径就没有任何影响

PidFile logs/httpd.pid
# 设定 Apache 的 PID 记录文件,可以用在重新读取设定文件等等的功能
# 因为是相对路径,所以实际目录为 /etc/httpd/logs/httpd.pid
Timeout 300
# 这是用来设定连接到你这部主机的客户端,当超过 300 秒客户端还没有
# 办法连上你的主机时,就予以断线处理

KeepAlive On
# 是否允许持续性联机,亦即一个联机有多个要求,这里通常设定为 On 比
较好
MaxKeepAliveRequests 100
# 在持续性的联机当中,最多允许的联机数目,如果不要限制,可以设为 0
#官方网站上面说,要有较佳的效能,最好设定大一点

KeepAliveTimeout 15
# 同一个联机的 Client 下次的需求没有在 15 秒内送出,那么该联机会被
视同断线

<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
# 这两段主要是与系统的效能较有关系!如果不需要效能设定的话,那么使
# 用默认值
# 1. MinSpareServers 与 MaxSpareServers 是开启 httpd 服务数目的地

# 方,当你执行
# /usr/local/apache/bin/apachectl start 之后, 在 shell 下执行
# ps -aux|grep http 就可以看到 http 的数量, 通常这与你的 RAM 有
# 关。
# 如果是小站的话,可以设小一点, 例如最小设 3 最大设 5 即可
# 2. 而 StartServers 则设与 Min 相同即可
# 3. 至于 MaxClients 则可以设小一点,因为设定太大很耗系统资源,
# 而太小则无法让很多人连上来, 所以可以设成例如 100

Listen 80
# 设定监听的 port ,如果你要更改 WWW 的 port number ,可以在这里修
改,例如 8080

User nobody
Group nogroup
# 这个是设定 apache 所产生的,就是刚刚我们上头所设定的
MinSpareServers ,之后会产生
# 一些 process ,那么这些 processes 的拥有者与拥有群组 ( owerner &
group ) 是谁
# 这个与未来的『 PID 权限及 Linux 权限设定』有关, 通常如果是 RPM 安
装的话,
# 大致上都会是 apache ,而如果是 Tarball 安装,通常是 nobody 与
nogroup
# 是否有该 user 还要查看 /etc/passwd 及 /etc/group , 不能设错!否则
无法启动 apache

ServerAdmin root@localhost
# 这个是设定你的机器的 httpd 管理员账号

#ServerName new.host.name:80
# 设定主机名称的地方,若有需要的话才设定,否则可以将他 mark 掉也没
关系
# 但如果你需要让 Apache 自动帮你将其它名称连过来的主机名称修改时(下
一个设定),
# 那么这里就需要填写啰!此外的此外,需要了解的是,有时,例如
Openlinux server 3.1.1
# 如果没有设定这个的话,那么你的 WWW 将无法启动!另外,如果设定错
误,同样无法启用!
# 因此,没有特别要求的话,那么这个就暂时不要设定吧!免得自找麻烦~

UseCanonicalName Off
# 主机的别名, 例如你的主机有三个名称时,那么这个 Off 的设定,会让
Client 端
# 可以分别使用三个名称显示在他们的浏览器上面,如果是 On 的话,那么
将以上面的
# ServerName 内容来显示在他们的浏览器上面,而不是原来他们写的主机名

AddDefaultCharset ISO-8859-1
LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz
ca es sv tw
AddDefaultCharset Big5
LanguagePriority tw en da nl et fr de el it ja ko no pl pt pt-br
ltz ca es sv

HostnameLookups Off
# 在记录登录档内容時,来捉取数据的主机是以 IP 还是主机名称来显示
# 当然是 IP 来显示比较快,所以,这里通常设定为 Off ,不需要转译 IP
成为主机名

„ 目录路径设定:

[root@test root]# cd /usr/local/apache2/conf


[root@test root]# vi httpd.conf

DocumentRoot "/usr/local/apache2/htdocs"
# 将 /usr/local/apache2/htdocs 设定为 Apache 的根目录
# 这个就是主机的主网页,你可以将他移到任何你高兴的地方
# 不过,比较重要的限制是,最好这个目录底下不要包含重要的信息,例如你不要将根目录 /
# 设定为这个 DocumentRoot ,否则你的主机下的任何数据,任何人都可以使用
# 浏览器来查看

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
# 这个是设定根目录,亦即是 /usr/local/apache2/htdocs 的属性
# 使用 Options 来设定相关属性
ExecCGI :使该目录底下的 CGI 具有可以执行的能力,如果您要您的
某目录可以执行 CGI 的程序时,请将该目录多加 ExecCGI 这个属性
FollowSymLinks :让 link 的目录或档案,虽在其它的目录下,仍可以连出去
举个例子来说,目前我的主页是 /usr/local/apache2/htdocs ,但我想
连接到 /home/vbird/testing 底下,然而我又不想多加一个 directory
的设定值在 httpd.conf 内,那么我可以在 /usr/local/apache2/htdocs
使用 ln 连结一个名为 vbird 使他指向 /home/vbird/testing ,那么
当我网址输入 http://localhost/vbird 时,就可以到
/home/vbird/testing 了!
如果没有设定这个属性,那么就无法连接出去
Includes :在 Server 端的工作可进行
Indexes :如果在该目录底下找不到 index.html 时,就显示整个目录下的文件名称
MultiViews :有点类似多国语言支持,你可在同一目录下的同一个档案,
编写多个不同语言的档案,并且以一个 *.var 的档案来规范不同编码
有兴趣的话,请自行参考自己的 /usr/local/apache2/htdpc/index.html.var
All :全部的属性都启动啦!但是不包含 MultiViews

<Directory "/usr/local/apache2/htdocs">
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/test ,那么这个使用者的首页目录在 /home/test/public_html !
# 当然,这个目录是可变的!就看你要怎么设定
# 例如很多人都喜欢将这个目录设定为 www

DirectoryIndex index.html index.html.var


# 这个就是当我们输入 http://192.168.1.2 时,那么 Apache 将会去搜寻该目录底下的文件名
DirectoryIndex index.html index.htm index.php index.cgi index.php3 index.html.var
# 如果还有喜欢的预设档名,将他加进去吧!这就是首页的网页名称

Alias /icons/ "/usr/local/apache2/icons/"


<Directory "/usr/local/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# Aliase 之设定主要也是在简化一些繁复的连结内容,举上面的例子来说,我们的 Apache
# 根目录在 /usr/local/apache2/htdocs 里面,那么输入网址 http://localhost 则到该目录
# 在上面的设定中,则输入 http://localhost/icons 会跑到 /usr/local/apache2/icons
# 的意思!如此一来,设定上较为简便了!

Alias /manual "/usr/local/apache2/manual"


<Directory "/usr/local/apache2/manual">
Options Indexes FollowSymLinks MultiViews IncludesNoExec
AddOutputFilter Includes html
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# 这个与上面的设定相同!所以,未来只要输入 http://localhost/manual 即可到达自己的
# 主机上面的说明文件

ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"


<Directory "/usr/local/apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
# ScriptAlias 这部份则大概专属于 CGI 之类的可执行程序
# 我们预设都是将 http://localhost/cgi-bin 设定为可执行的 CGI 程序放置区
# 那么 CGI 程序要开放的权限有哪些
„ 启动 PHP 与 CGI 相关模块,及预设的登录档修订

[root@test root]# cd /usr/local/apache2/conf


[root@test root]# vi httpd.conf

LoadModule php4_module modules/libphp4.so


AddType application/x-httpd-php .php
AddHandler cgi-script .cgi .pl
# 至少这三行必须要启动,尤其是第三行,通常预设都是关闭的,所以,你必须要将 # 移除
# 否则你将无法执行 CGI 的程序

ErrorLog logs/error_log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access_log combined
# 上面全部都跟 log 有关

ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
# 只改这两行,其它的保留默认值
启动 httpd

如果是以 RPM 安装的,那么启动档案预设在


/etc/rc.d/init.d/httpd 这个档案,所以,可以这样启动:

[root@test root]# /etc/rc.d/init.d/httpd start (启动)


[root@test root]# /etc/rc.d/init.d/httpd stop (关闭)

至于 Tarball 则是以 apachectl 来作的:

[root@test root]# /usr/local/apache2/bin/apachectl start (启动)


[root@test root]# /usr/local/apache2/bin/apachectl stop (关闭)

无论如何,启动之后请立即察看一下 port 是否已经开启了


[root@test root]# netstat -tuln | grep ':80'
tcp 0 0
0.0.0.0:80 0.0.0.0:* LISTEN

并且需要在登录档当中发现底下这一行才算成功

[root@test root]# vi /var/log/httpd/error_log


[Thu Dec 26 20:16:53 2002] [notice] Apache/2.0.43
(Unix) PHP/4.2.3 configured -- resuming normal
operations
测试结果:

以浏览器直接输入你的 IP 来试看看即可知道。如果测试没
有成功的话,最大的可能为:
„ 网络问题:虽然在本机上没有问题,但不代表网络一定是
通的,请确认一下网络状态
„ 网页问题:请特别留意浏览器上面的显示讯息,里面包含
了无法连进来主机的问题
„ 权限问题:例如在上面的 user 设定为 nobody,但偏偏要
被浏览的目录权限为 750 ,自然就无法让人家联机进去
问题的解决之道:如果还是没有办法连接上来你的 Linux
Apache 主机,那么请:
1. 察看 /var/log/httpd/error_log 这个档案,他应该可
以告诉你很多的信息
2. 另外,也要仔细的察看一下你的浏览器上面显示的信
息,这样才能够知道问题出在哪里
3. 另一个可能则是防火墙,察看一下
用户的个人网页启动

个人用户要自己的首页时,他的默认值都是『 public_html 』
这个设定

[test@test test]$ cd # 回到自己的家目录


[test@test test]$ mkdir public_html
[test@test test]$ chmod 755 public_html
[test@test test]$ chmod 711 /home/test
# 在你的客户端家目录中建立了一个 public_html 的目录,
# 并将此目录的权限改成可以让其它人观看,注意, apache
# 预设是 public_html ,但如果在 httpd.conf 这个档案中
# 改变了目录名称,则必须作适当的修正

然后在你的目录中,亦即 /home/test/public_html 当中,建


立一个档名为 index.html 的 HTML 档案,然后在 IE 的网址
列打入
http://你的网站名称/~test/
则 apache 会自动将 IE 的讯息传到 /home/test/public_html
这个目录中,并搜寻文件名为 index.html 或 index.htm 或
index.php 的檔名,所以说, index.html 是 apache 第一个
找寻的档名,也就是用戶的首页。

不过,如果您觉得这样实在很讨厌,怎么需要多加一个毛毛虫
的符号『 ~ 』,可不可以只使用:
http://你的网站名称/test
就好!?当然没问题!但是就需要动一点手脚,最常见的有两
种方式:
„ 建立连结档:
这是最简单的方法,还记得我们的主页有 Options
FollowSymLinks ,利用 ln 就可以达到我们的需求,首
先,需要找到首页,然后在首页底下输入连结的方法:

[root@test root]# cd /usr/local/apache2/htdocs


[root@test htdocs]# ln -s /home/test/public_html test

这样立刻生效,不需要重新啟動

„ 建立 Alias:
另一种方是就是使用刚刚提到的那个 Alias 功能:

[root@test root]# vi /usr/local/apache2/conf/httpd.conf


Alias /test/ "/home/test/public_html/"
<Directory "/home/test/public_html">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
[root@test root]# /usr/local/apache2/bin/apachectl stop
[root@test root]# /usr/local/apache2/bin/apachectl start

You might also like