Другой способ, которым я мог бы задать этот вопрос:
Как настроить страницы, обслуживаемые Apache, на более высокие привилегии? Это было бы похоже на настройку пула приложений в IIS для использования других учетных данных.
У меня есть несколько скриптов Perl и Python, которые я публикую через веб-интерфейс. Внешний интерфейс предназначен для запуска любого сценария, который у меня есть в базе данных. С большинством сценариев у меня нет проблем … но все, что использует сеть, ничего не возвращает. Нет сообщений об ошибках или сбоях. Запуск из CLI как корень работает, запускается из WEB GUI как www-данные Вызов одной и той же команды не выполняется
Я объединяю Python и Perl в этом вопросе, потому что проблема одна и та же, что заставляет меня поверить, что это не проблема кода, а проблема с разрешениями. Кроме того, почему я не включаю код, изначально.
Они работают на Linux с использованием Apache и PHP5. Python 2.7 и Perl5 я считаю. Вот примеры приложений, которые у меня не работают:
Поэтому после публикации я посмотрел на обработчики, как я использую для IIS. Это привело меня на путь SUEXEC, и из-за всего, что я пытался, я не мог заставить Apache загрузить его. Даже убедился, что я установил биты для SETUID и SETGID.
Когда я исследовал, что натолкнулся на файлы .htaccess и то, как они могут включать сценарии CGI. Я не хотел вставлять файлы .htaccess, поэтому я просто удостоверился, что apache.conf настроен для поддержки CGI. Это также не помогло.
Наконец, когда я изучал .htaccess, они ссылались на ScriptAlias. Я считаю, что это то, что решило мою проблему. Я изменил раздел ScriptAlias в файле конфигурации Apache, чтобы он указывал на мой каталог, содержащий скрипт. После некоторой возни с абсолютными каталогами и разрешениями для скрипта на чтение / запись файла я заставил все работать, кроме того, что он не проходит через прокси, установленный средой http_proxy. Хотя это отдельная проблема, поэтому я думаю, что мне стоит заняться этим вопросом. Я попробую то же самое решение на моей Perl LAMP.
Других решений пока нет …