我有一台运行 Django 的 Apache 2.2 服务器。我们有一个网络驱动器 T:,我们需要在 Django 应用程序中不断访问它。当将 Apache 作为服务运行时,我们无法访问此驱动器,就任何 Django 代码而言,该驱动器不存在。
如果我添加...
<Directory "t:/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
到 httpd.conf 文件,服务不再运行,但我可以启动 apache 作为控制台并且它运行良好,Django 可以找到网络驱动器并且一切正常。
为什么控制台和服务之间会有区别?应该有区别吗?我使用自己的登录名来访问服务,因此理论上它应该具有与我相同的访问权限。
我热衷于让它作为服务运行,因为当我在服务器上工作时,它不会太引人注目(除非有办法隐藏控制台?)。任何帮助都将不胜感激。
答案1
我看到您使用的是 Windows。映射驱动器是基于 Windows 的用户的:它们需要交互式用户。它“从控制台”工作,因为您已登录。启动时,服务无法使用该驱动器。我不知道这是否可行,但请尝试将服务的设置更改为在您的用户下运行。看看这是否有帮助。
您也可以尝试使用自动调速系统服务在登录前运行批处理文件,类似于
net use T: \\host\share_name /PERSISTENT:YES
映射驱动器可能位于系统帐户的上下文中,因此当您从正常会话登录时,您可能无法看到映射驱动器。
我主要在 Linux 上工作。我认为一些更高级的 Windows 管理员可以想出一些方法来改进这一点,或者给你一个完整的解决方案。