我在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我的登录信息吗?
答案 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...
这样的配置编写网络驱动器
首先下载 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无法识别此计算机名称的文件