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 管理者なら、これを改善したり、完全なレシピを提供したりできると思います。