Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Интернет технологии -> Perl -> PERL Вопросы и ответы ( FAQ )


FAQ по PERL

5. Web серверы

5.1 Как заставить WWW сервер исполнять CGI-программы?

Apache для Unix/Win32

Надо отредактировать конфигурационные файлы (я рассчитываю, что у вас default конфиги apache) (NB: Apache/1.3.6 и выше по умолчанию конфигурируется только файлом httpd.conf. Директивы все остались прежние, просто их слили в один файл)

Способ 1

srm.conf Директива ScriptAlias

ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/

и в файле access.conf прописать

<Directory /usr/local/apache/cgi-bin/>
 Options ExecCGI
  </Directory> 

(если пригляделся, там нужно только раскоментировать опции) Это позволит вам помещать программы в каталог /usr/local/apache/cgi-bin/ и они будут видны по URL http://you/cgi-bin/program_name

Способ 2

Добавить в srm.conf директиву AddHandler cgi-script .cgi и вы сможете вызывать cgi-программу из любого каталога. Но она должна иметь окончание .cgi и для нее должно быть разрешено исполнение CGI (Options ExecCGI в access.conf, написано выше). Оба способа можно без проблем использовать совместно.

5.2 Мой CGI-скрипт не работает! Как установить причину?

Прежде чем читать дальше, убедитесь в том, что:

  • Вы запустили скрипт с командной строки (не через CGI!!!) и он работает, а не говорит "compilation stopped due to errors"
  • Скрипт не только работает, но и выдает нужный заголовок с пустой строкой после него
  • Для многопользовательских систем) Вы сделали тоже под пользователем, под которым работает сервер (su -m имя_пользователя -c script в Unix) и он столь же благополучно работает

5.3 Ошибки HTTP 500 и 403. Что это значит и что с ними делать

error_log для того и служит, чтобы туда смотреть :-)

Ошибка 403 "Forbidden"

Возникает, если сервер не может отдать вам содержимое по причине отсутствия полномочий.

Проверьте:

  • Может ли user (для apache под Unix это обычно nobody), под которым работает, сервер исполнять файл?
  • В частности, может ли сервер исполнять интерпретатор (в случае скриптовых языков)?
  • Можно ли для этого каталога исполнять программы CGI? (Options ExecCGI для apache)

Ошибка 500 "Internal Server Error"

Возникает в случае внутренней ошибки.

Проверьте:

  • Выводите ли вы строку "Content-Type:"?
  • Правильно ли вы ее выводите? (Content-type, Content_Type -- неправильно)
  • Заканчиваете ли вы хедеры пустой строкой? Нельзя написать print "Content-Type: text/html\n"; print "<HTML>\n"; Надо писать: print "Content-Type: text/html\n\n"; # Два "\n" print "<HTML>\n";

Также, эта ошибка возникает, если CGI-программа завершилась с ненулевым кодом возврата, что часто встречается в случае некомпилируемости вашего скрипта perl'ом.

Совет: делайте use CGI::Carp qw(fatalsToBrowser) во время отладки, тогда вам выдадут сообщение об ошибке perl.

5.4 Почему $ENV{REMOTE_HOST} пуста?

apache устанавливает переменную окружения REMOTE_HOST, если ему разрешено проводить dns запросы для определения имени. Для 1.3.x по-умолчанию это выключено. Включается/выключается директивой HostNameLookups, которая может принимать 3 значения: on -- проводить запросы, off -- не запрашивать dns и double -- делать двойные запросы: запрашивать имя хоста, а затем по имени запрашивать ip адрес, для безопасности.

5.5 Почему $ENV{REMOTE_USER} пуста?

Переменная окружения REMOTE_USER устанавливается apache в случае, если скрипт защищен паролем. Как это сделать рассказано на http://www.apacheweek.com/features/userauth и http://www.apacheweek.com/features/dbmauth

[   ОГЛАВЛЕНИЕ   ]


 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.