2010-01-09 2 views
1

Я пытаюсь использовать модуль Perl из CPAN (в частности, AuthCookieDBI.pm) в среде общего хостинга.Могу ли я использовать модуль Apache2 :: ASP CPL для Perl на общедоступном хостинге?

Я попытался скопировать .pm файл в каталоге я пытаюсь использовать его, и я обновил свой .htaccess файл в соответствии с инструкциями на странице AuthCookieDBI, но мой Apache журнал говорит:

Invalid command 'PerlModule', perhaps misspelled or defined by a module not 
included in the server configuration 

Это, кажется, линия, которая вызывает ошибку:

PerlModule Apache2::AuthCookieDBI 

Согласно Apache:ASP FAQ это вызвано тем, что mod_perl не установлен; Я нахожусь на общем хостинге (и поэтому не могу делать ничего, что требует прав root), так что я ничего не могу с этим поделать?

ответ

2

Apache2 :: AuthCookieDBI требует mod_perl, поэтому модуль вам не нужен без него.

-2

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


#!/usr/bin/perl -w 
use diagnostics; 
use warnings; 
use lib "$ENV{DOCUMENT_ROOT}/path/lib/"; 
unshift @INC , "$ENV{DOCUMENT_ROOT}/path/lib/"; 
use modulename; 
+1

Ручная установка модулей должна выполняться только в необычных условиях. – Ether

+1

Я бы сказал, что это необычное обстоятельство, так как мы используем общий хостинг. Этот ответ НЕ должен быть отклонен, поскольку он действительно работает. –

+0

Почему вы добавляете исполняемый код в DOCUMENT_ROOT?Это огромный нет-нет. Поместите его в не просматриваемый раздел файловой системы. –

0

Обычно используется инструмент cpan, чтобы загрузить и установить модуль для вас. Он должен быть установлен в стандартном месте, например, под номером /usr/local/lib (см. perl -V, чтобы увидеть, где расположен ваш каталог @INC). Когда он будет правильно установлен, ваши скрипты perl смогут найти модуль так, как если бы он был стандартной частью perl, без каких-либо специальных модификаций, необходимых для mod_perl или конфигураций apache. (Вы также можете установить модули в вашей домашней директории, не требуя корневого разрешения инструкции для этого содержатся в CPAN FAQ.).

См:

Кроме того, у CPAN FAQ имеется много информации.

Редактировать: после всего, казалось бы, истинный ответ на ваш вопрос: «Вы не можете: вам нужно найти другой модуль, чтобы делать то, что вам нужно, что не требует mod_perl».

+0

У раба есть 'cpan', но я не root. –

+1

@Nick: вам не нужны права root для установки разрешений CPAN. См. FAQ для указания другого каталога установки; Я также добавил дополнительные ссылки. – Ether

+0

Как насчет ошибки «Неверная команда« PerlModule »? Должен ли я игнорировать это? –

2

Если вы используете общий хостинг, скорее всего, вы не используете mod_perl. Таким образом, вы не можете использовать этот модуль. Короче говоря, mod_perl - это способ для программистов взаимодействовать с apache, потенциально изменяя, как это происходит. Поскольку вы делитесь apache, неплохо заставить других людей жить с вашими изменениями.

Если вы хотите больше контролировать свой сервер, вам нужно получить выделенный веб-сервер. Как вы это делаете, это зависит от того, что предлагает ваш провайдер.

+0

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

+0

Просто потому, что вещи вышли из-под контроля, это не значит, что они не являются опцией. :) –

+0

Я извиняюсь за мою ошибку в формулировке; что я должен был сказать: «К сожалению, выделенный хостинг не является вариантом для моей конкретной ситуации». –