Это проблема Apache / Perl, которая возникла у меня.
Я использую модуль CPAN в своем приложении Perl CGI. Это Spreadsheet :: 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, не так ли?
Любое понимание проблемы?
Спасибо всем за ваше время!