Apache работает в консоли, но не как служба?

Apache работает в консоли, но не как служба?

У меня есть сервер Apache 2.2, на котором запущен Django. У нас есть сетевой диск 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: им нужен интерактивный пользователь. Это работает «из консоли», потому что вы вошли в систему. Диск недоступен службе при запуске. Я не знаю, сработает ли это, но попробуйте изменить настройки службы для запуска под вашим пользователем. Посмотрите, поможет ли это.

Вы также можете попробовать использоватьAutoExNTслужба для запуска пакетного файла перед входом в систему, что-то вроде

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

Подключенный диск может находиться в контексте системной учетной записи, поэтому при входе в систему из обычного сеанса вы можете не увидеть подключенный диск.

Я работаю в основном на Linux. Я думаю, что некоторые более продвинутые администраторы Windows могут придумать что-то, чтобы улучшить это или дать вам полный рецепт.

Связанный контент