[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Web - программирование / Разное /

FAQ по perl и программированию для web Страница 10. Web серверы

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




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Web - программирование / Разное /

Учебное пособие по CGI-программированию Страница 30. Счётчик посещений
08-04-2010   

Наверное тоже одним из часто встречающихся приложений CGI являются счетчики посещений. Они стоят практически на каждой страничке, возможно даже и у вас. Но иногда вас не устраивает тот факт, что счетчик лежит где-то в другом месте... подробнее

Кол. просмотров: общее - 3345 сегодня - 0

Учебное пособие по CGI-программированию Страница 28. Кто посещает мою страничку?
08-04-2010   

Вам иногда хотелось наверное узнать,кто же смотрит на вашу страничку,откуда и когда ваша страничка посещалась. Бывают такие вопросы? Кто-то считает,что ответить на них нельзя. Но вы не верьте этому расхожему мнению... подробнее

Кол. просмотров: общее - 3032 сегодня - 1

Учебное пособие по CGI-программированию Страница 27. Trics and traps
08-04-2010   

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

Кол. просмотров: общее - 3251 сегодня - 2

Учебное пособие по CGI-программированию Страница 26. Несколько слов об отладке
08-04-2010   

CGI-программы -не самые простые в отладке,по сложности отладки они способны сравнится лишь с отладкой драйверов. Вся сложность заключается в том,что скрипт выполняется не как обычная программа. Он выполняется в специальной среде сервера,которая создается при клиентском запросе... подробнее

Кол. просмотров: общее - 3214 сегодня - 1

Учебное пособие по CGI-программированию Страница 25. Анимация
08-04-2010   

Когда говорят о каком-то популярном сайте,то частенько к преимуществам относят и анимацию. Действительно,когда изображение изменяется (и особенно к месту ;)),то это смотрится и пользователю нравится... подробнее

Кол. просмотров: общее - 3073 сегодня - 2



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects