Apache网络驱动器别名

时间:2011-09-15 13:29:18

标签: windows apache networking alias

我在stackoverflow中搜索了一个类似的问题,但没有一个解决方案似乎有效。

我正在运行WAMP并拥有一个网络驱动器T:\,我希望将其用作Apache中的别名。到目前为止,我已添加:

  

Alias / p \\ ps-file.server_location.edu \ A $
  <目录/ p>
  订单允许,否认
  允许所有人   < /目录>

但是,每当我尝试访问localhost/p时,我都会收到403禁止消息,说You don't have permission to access /p on this server.有任何建议吗?

我尝试更改services.msc中的登录设置,但这会阻止apache一起启动。

编辑:我还必须在第一次连接时输入网络驱动器的登录信息。我可以以某种方式给apache我的登录信息吗?

4 个答案:

答案 0 :(得分:5)

你需要使用正斜杠而不是反斜杠,或者使用额外的反斜杠将它们全部转义,并将引号中的路径封闭,如Xophmeister所述。例如:

Alias /p "//ps-file.server_location.edu/A$/"
<Directory "//ps-file.server_location.edu/A$/">
Order allow,deny
Allow from all
</Directory>

Alias /p "\\\\ps-file.server_location.edu\\A$\\"
<Directory "\\\\ps-file.server_location.edu\\A$\\">
Order allow,deny
Allow from all
</Directory>

除非在用于运行apache服务的用户配置文件中创建映射驱动器,否则使用UNC路径是正确的。

答案 1 :(得分:1)

caltor是对的,这里很少编辑,你可以使用<Directory "/p">因为它有别名。但是 我讨厌像//p...这样的配置编写网络驱动器

这里出现另一个问题,在这个方法中,你不能执行exec()或批处理文件,不能取目录的信息,open_dir等不能返回结果,也就是apache无法启动作为服务。要解决这个问题,

首先下载 http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx 将zip文件解压缩到C:/ sys。 打开cmd,然后

cd c:/sys (enter)
psexec -i -s cmd.exe

然后出现一个新的命令行。所有你需要的

net use j: \\lethea\sharedfolder /persistent:yes

会询问lethea pc的用户名和密码。 这是j:网络驱动器的简称。 这样做之后,在httpd.conf文件夹中 你不需要创建别名或写完全网络地图到Documentroot和目录

Documentroot = "j:/mywww"  #referencing \\lethea\sharedfolder\mywww
<Directory "j:/mywww">

...

答案 2 :(得分:0)

为什么不在Alias /p T:\中使用T:\的别名?否则,我的猜测是Apache没有访问指定UNC的必要权限(特别是,A$位可能会搞砸了,因为它是一个特殊的共享。)

答案 3 :(得分:0)

要解决此问题,您需要: 授予董事会管理员httpd.exe文件的权限 使用“用户服务”窗格窗口的管理员对服务进行身份验证 保留httpd.conf文件

DocumentRoot&#34; // 192.168.50.2/g/htdocs"

设置主机的ip,其中apache无法识别此计算机名称的文件