Apache はコンソールでは実行されますが、サービスとしては実行されませんか?

Apache はコンソールでは実行されますが、サービスとしては実行されませんか?

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 のユーザー ベースです。対話型ユーザーが必要です。ログインしているため、「コンソールから」機能します。ドライブはサービスの開始時には使用できません。これが機能するかどうかはわかりませんが、サービスの設定を変更して、ユーザーで実行してみてください。それが役立つかどうか確認してください。

他にも試してみるといいでしょう自動ExNTログイン前にバッチファイルを実行するサービス、例えば

net use T: \\host\share_name /PERSISTENT:YES

マップされたドライブはシステム アカウントのコンテキスト内にある可能性があるため、通常のセッションからログインすると、マップされたドライブが表示されない場合があります。

私は主に Linux で作業しています。より上級の Windows 管理者なら、これを改善したり、完全なレシピを提供したりできると思います。

関連情報