以下是在windows 8下配置Apache作为文件服务器的步骤,并且配置了webdav 能支持put 上传,已在linux下使用curl命令测试成功!

Apache2.4.7 win版下载地址:http://www.apachelounge.com/download/


1.下载回来的是解压文件,解压好放到要安装的位置。(我这里以D:\Acpache24为例)
2.打开Apache24\conf下httpd.conf 文件,用记事本打开即可。
(1):把c:/Apache24 改为 ServerRoot "D:/Apache24"
(2):ServerAdmin 改不改无所谓
(3):Listen 80  默认为80,如80端口已被占用,请使用其他端口号,如:Listen 8181
(4):ServerName www.example.com:80 把#号去掉,改为自己的域名,如果没有则使用IP地址,如:ServerName 192.168.20.18:8181
(5):把DocumentRoot "c:/Apache24/htdocs" 改为 DocumentRoot "D:/Apache24/htdocs"  这里使用的是默认的文件夹,你也可以自己新建,然后修改路径就好了
(6):把<Directory "c:/Apache24/htdocs"> 改为 <Directory "D:/Apache24/htdocs">
(7):把ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" 改为 ScriptAlias /cgi-bin/ "D:/Apache24/cgi-bin/"
(8):把<Directory "c:/Apache24/cgi-bin"> 改为 <Directory "D:/Apache24/cgi-bin">

3.上面设置完成后,保存文档。下面就是启动Apache:

开始 --- 运行,输入cmd,打开命令提示符。接着输入1.d: 回车 2.cd Apache24\bin 回车 3.httpd 回车


如果httpd.conf配置正确的话,输入httpd回车后是没有任何提示的,这个时候就是启动了Apache。
注意:不能关掉这个命令窗口,否则apache会关闭的。

4.测试,用浏览器访问会出现“It works”那么就说明apache已经正确安装了。

5.加入为windows的系统服务,让Apache自启动。
(1)关闭3的那个httpd命令窗口,不然会报错的。

(2)开始 --- 运行,输入cmd,再打开一个命令提示符。输入d:回车cd Apache24\bin 回车   (注意:windows8的要以管理员来运行)


这里加入服务的命令为:httpd.exe -k install -n "servicename"。
servicename为Apache在windows的服务中的名字。例如:httpd.exe -k install -n "Apache24"。
输入httpd.exe -k install -n "Apache24"后,会有成功安装的提示,“服务”也会有Apache24这个服务项。这个时候可以选择启动,启动Apache服务。
如果要卸载这个服务的话,先要停止这个服务,然后输入httpd.exe -k uninstall -n "Apache24"卸载这个服务。

以后可以通过Apache24\bin文件夹下的ApacheMonitor.exe来控制这个Apache。任务栏也会有显示这个软件的很方便的管理Apache的运行。


接着就是配置下载目录:download及上传目录upload了,其中上传目录需要配置成webdav,以便于接收put 的上传方式。

一、配置下载目录download:

1.在Apache目录下创建下载目录download 路径为"D:/Apache24/download"

2.在Apache24\conf 下打开httpd.conf文件,添加以下内容:

Alias /download "D:/Apache24/download"
<Directory "D:/Apache24/download">
    Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

3.保存文档,重启服务,在linux下使用curl进行测试, curl -o test.txt  http://192.168.20.18:8181/download/test.txt

二、配置上传目录upload:

1.在Apache目录下创建下载目录upload 路径为"D:/Apache24/upload"

2.在Apache24\conf 下打开httpd.conf文件

#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so

#Include conf/extra/httpd-dav.conf

找到以上3行,把"#"去掉

3.打开Apache24\conf\extra下httpd-dav.conf文件

DavLockDB "c:/Apache24/var/DavLock"
Alias /uploads "c:/Apache24/uploads"

<Directory "c:/Apache24/uploads">
    Dav On
    AuthType Digest
    AuthName DAV-upload
    AuthUserFile "c:/Apache24/user.passwd"
    AuthDigestProvider file
    <RequireAny>
        Require method GET POST OPTIONS
        Require user admin
    </RequireAny>
</Directory>

把以上代码替换成以下代码:

DavLockDB "D:/Apache24/var/DavLock"
Alias /upload "D:/Apache24/upload"
<Directory "D:/Apache24/upload">
    Dav On
    Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthType Basic
    AuthName DAV-upload
    AuthUserFile "D:/Apache24/user.passwd"
    AuthBasicProvider file
    Require valid-user
</Directory>

4.按照 DavLockDB "D:/Apache24/var/DavLock",创建文件夹与文件。

(1).在Apache24目录下创建文件夹var   

(2).在文件夹var中创建文件DavLock

5.创建密码文件

(1).开始 --- 运行,输入cmd,打开命令提示符。接着输入d: 回车 cd Apache24\bin 回车 


输入htpasswd.exe -c "D:\Apache24\user.passwd" admin 回车  

 "D:\Apache24\user.passwd"生成密码文件要存放的路径,admin是用户名

然后输入2次密码,这样就OK了,然后重启服务。

6.在linux下使用curl进行测试, curl -T dtwpc.dat  -u admin:123456  http://192.168.20.18:8181/upload/


配置时遇到的错误及解决方法:
error.log:
[Fri Jan 30 13:38:40 2009] [error] [client 192.168.123.123] The locks could not be queried for verification against a possible "If:" header. [500, #0]
[Fri Jan 30 13:38:40 2009] [error] [client 192.168.123.123] Could not open the lock database. [500, #400]
[Fri Jan 30 13:38:40 2009] [error] [client 192.168.123.123] (17)File exists: Could not open property database. [500, #1]

问题原因:在配置WebDav时,在配置httpd-dav.conf文件时,追加了下面的内容,却没有创建此文件,并修改其权限
DavLockDB "/usr/local/apache2/var/DavLock"
解决办法:按照以上DavLockDB的目录,创建文件夹与文件。
1.在路径:/usr/local/apache2/ 创建文件夹 var   
2.在文件夹var中创建文件DavLock

出现错误信息:301 Moved Permanently
问题原因:如果你访问的服务器的主机名和在Apache配置文件里面定义的ServerName不一样,那么当产生一个引用自身的URL请求的时候,
Apache会根据UseCanonicalName属性的设置来把你的请求重定向到一个新的主机名,比如你访问一个目录却没有加上尾部的斜杠,这样的
话,Apache首先会在原始页面上要求验证,然后执行重定向,因为主机名变了,所以Apache在新主机名上的页面再要求验证,就出现了两
次要求验证。
解决办法:
1.每次访问目录的时候都要加上尾部的斜杠;
2.使用Apache配置文件里面定义的ServerName来访问,或者在Apache配置文件里面设置UseCanonicalName off。

启动Apache时出现错误
error.log:AH00558: httpd: Could not reliably determine the server's fully qualified domain
 name, using fe80::d9c3:303e:7b2b:4e34. Set the 'ServerName' directive globally
to suppress this message
问题原因:这是由于没有设置ServerName
解决办法:打开httpd.conf文件,找到ServerName,把"#"去掉就好了

Apache中文手册2.2版本:http://lamp.linux.gov.cn/Apache/ApacheMenu/index.html

Logo

更多推荐