У меня проблема с Apache / Perl.
Я использую модуль CPAN в своем приложении perl CGI. Это электронная таблица :: ParseExcel
Я установил модуль cpan с файлами tar.gz.
Я установил зависимости.
Однако я сделал это не как пользователь root. Библиотека, которая содержит эти файлы, находится в папке пользователя, / home / user / lib
Теперь я успешно настроил Apache2 на этом поле. Каталог html - это / var / www / html, а папка cgi - / var / www / html / cgi-bin. Я убедился, что они работают, потому что все скрипты в этой папке, которые не требуют специальных модулей, работают в моем браузере Firefox, т.е. Привет, мир, дампы данных, простые формы.
Однако, когда я пытаюсь запустить сценарии, которые используют «Spreadsheet :: ParseExcel», я получаю сообщение об ошибке, что модуль не может быть найден в @INC. Однако в начале скрипта у меня есть оператор use lib, который добавляет библиотеку.
Скрипты могут быть запущены в PUTTY без проблем. Проблема возникает только при запуске скрипта из браузера.
Это веб-приложение было написано на другой коробке и прекрасно работает на этой коробке. Потому что я разработал там, конечно. Я установил Apache2 на свой персональный компьютер с Ubuntu, установил здесь веб-приложение и модули, и он работает на моем локальном компьютере.
Я установил "chmod -R a + rx" в папку пользовательской библиотеки, поэтому я думаю, что Apache имеет доступ к папке, если только настройки родительского каталога не блокируют ее? Мне не нужно запускать это в папке / home / user или, что еще хуже, в папке / home, не так ли?
Есть идеи по этому вопросу?
Спасибо всем за потраченное время!