【问题标题】:Trouble configuring Apache to make web application be able to access folder outside DocumentRoot配置 Apache 以使 Web 应用程序能够访问 DocumentRoot 之外的文件夹时遇到问题
【发布时间】:2015-03-31 12:58:07
【问题描述】:

所以在这里搜索后,我发现了如何做我想做的事,但是我有两个环境,一个可以工作,另一个不能工作,我不知道为什么。

我们称工作环境为A,不工作的环境为B

在 A 中,我要访问的文件夹位于 A 本身(托管 Apache 的服务器)中,只是位于 DocumentRoot 之外的不同文件夹结构中。 所以我的 httpd.conf 文件中有以下内容:

Alias /folder/ "C:/folder/"

<Directory "C:/folder/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all 
</Directory>

为了确保它在 A 中工作,我有一个 PHP 脚本,它生成一个文本文件并将其保存在该文件夹中。它没有问题。

在B中,我要访问的文件夹在另一台服务器(A)中,该文件夹在B中映射为“P:”单元(我可以通过资源管理器查看和访问它没有任何问题)。我在 httpd.conf 文件中有以下内容:

Alias /folder/ "P:/"

<Directory "P:/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all 
</Directory>

当我尝试使用 httpd.conf 中的上述块重新启动 B 中的 apache 服务时,我收到一条错误消息(Windows 无法在本地计算机上启动 Apache2.4...)但 Apache 的错误中没有错误消息.log 文件。当我删除该块时,我可以毫无问题地重新启动它。

在此先感谢,如果我不够清楚,但英语不是我的母语,我们深表歉意。

编辑: 显然您不能在 httpd.conf 文件中使用映射单位。我尝试使用下面的完整地址,现在 Apache 可以重新启动而不会出错,但我无法通过所需文件夹中的 PHP 脚本生成我的 .txt 文件。

Alias /folder/ "\\10.76.4.60/folder/"

<Directory "\\10.76.4.60/folder/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

【问题讨论】:

    标签: apache windows-server


    【解决方案1】:

    问题已通过将 Apache 进程设置为使用可以访问映射文件夹的特定用户启动来解决。默认情况下,该过程以用户“SYSTEM”启动。由于服务器在 Windows 上运行,这可以通过管理工具 Services (mmc.exe) 来完成。

    完成此操作并重置 Apache 后,我能够做我需要的事情,即通过在网络服务器中运行的一些脚本将文件保存在所需的映射文件夹中。

    也没有必要把任何东西放在 httpd.conf 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 2016-04-15
      • 1970-01-01
      • 2016-01-14
      相关资源
      最近更新 更多