Я установил Netdisco, инструмент для обнаружения сети на основе Perl.
Когда я запускаю httpd из командной строки терминала как root, он работает нормально.
Когда я пытаюсь запустить Apache как службу (запуск службы httpd), я получаю следующие ошибки:
Starting httpd: [Mon Apr 23 19:45:48 2012] [warn] module perl_module is already loaded, skipping
[Mon Apr 23 19:45:48 2012] [warn] module apreq_module is already loaded, skipping
Syntax error on line 22 of /etc/httpd/conf/netdisco_apache.conf:
Can't locate netdisco.pm in @INC (@INC contains: /usr/local/netdisco /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 . /etc/httpd) at /etc/httpd/conf/netdisco_apache.conf line 26.\nBEGIN failed--compilation aborted\t(in cleanup) Can't locate netdisco.pm in @INC (@INC contains: /usr/local/netdisco /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 . /etc/httpd) at /etc/httpd/conf/netdisco_apache.conf line 26.\nBEGIN failed--compilation aborted at /etc/httpd/conf/netdisco_apache.conf line 26.\n
Я попытался добавить пользователя apache в группу netdisco netdisco и получил тот же результат.
netdisco.pm определенно находится в первой папке в @INC (/ usr / local / netdisco), и пользователь / группа netdisco владеет этой папкой и всеми файлами, включая netdisco.pm
Почему не запускается?
Убедитесь, что у пользователя apache есть доступ на выполнение к папке / usr / local / netdisco и доступ на чтение для файла /usr/local/netdisco/netdisco.pm.
Вы также можете strace
запуск apache, чтобы определить, к каким файлам пытается получить доступ. Если эти файлы существуют, это проблема с разрешением. Помимо разрешений Unix, вам необходимо проверить конфигурацию SELinux.