Perl и CGI программы — особенности использования
Особенности использования и примеры
Использование готовых скриптов
Если у вас уже есть написанные CGI-скрипты, то прежде чем скопировать их на сервер, вы должны сделать следующие действия:
- Убедиться в указании правильного пути к интерпретатору Perl. Необходимо указать: /usr/bin/perl
- Если Вашему скрипту требуется доступ к БД, то необходимо указать:
- Имя Mysql сервера
- Имя БД
- Логин
- Пароль
Теперь вы можете скопировать свои скрипты на сервер в директорию CGI.
Не забудьте поставить права доступа на скрипты: 755 (-rwxr-xr-x).
Написание простейшего CGI-скрипта
Рассмотрим написание простого CGI скрипта.
Если Вы работаете под управлением ОС "Windows", то
для работы с кодом Perl вам необходимо использовать либо IDE-среду, либо файловый менеджер, например Far. Стандартную для Windows программу notepad.exe лучше не использовать.
Для демонстрации работы CGI скрипта нам необходимо создать два файла. Первый файл представляет собой html-документ
с формой ввода текста.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title> Пример работы с Perl</title> </head> <body> <form method='post' action='/cgi-bin/hello.pl'> Введите ваше имя:<input type='text' name='name'> <input type='submit'> </form> </body> </html>
|
Второй файл является CGI-скриптом
#!/usr/bin/perl use CGI; print "Content-type: text/html\n\n"; $my_cgi = new CGI; $your_name = $my_cgi->param('name'); print "Hello $your_name!!!";
|
Первый файл вы можете разместить в директории docs (или какой нибудь поддиректории docs).
Второй файл вы должны разместить в директории CGI. Обязательно проверьте права на ваш CGI скрипт.
Они должны быть установлены в -rwxr-xr-x или 755.
Поcмотреть, как работает скрипт, можно по ссылке: тестовый пример
Просмотр установленных модулей PERL
Для проверки установленных PERL-модулей необходимо последовательно выполнить следующие действия:
- Зайти по ssh протоколу на веб-сервер, и выполнить команду:
Таким образом, будет создан файл modules.pl
- Теперь нам необходимо его отредактировать, для этого нажмем Insert на клавиатуре
напишем следующее:
#!/usr/bin/perl -w
use ExtUtils::Installed;
$installed = ExtUtils::Installed->new(); foreach $module ($installed->modules()){
printf "Module: %s\t\tVersion: %s\n", $module, $installed->version($module);
} |
Для выхода из редактора с сохранением только что набранного текста, нажимаем Esc и затем :wq
- Можем посмотреть устанновленные модули:
Установка дополнительных модулей PERL из коллекции CPAN
Для того чтобы установить выбранный модуль для PERL необходимо последовательно выполнить следующие действия:
- Зайти по ssh протоколу на веб-сервер.
- Выполнить команду:
- Далее запускается процесс конфигурации.
На указанные вопросы необходимо ответить следующим образом:
Parameters for the 'perl Makefile.PL' command?
Typical frequently used settings: PREFIX=~/perl non-root users (please see manual for more hints) Your choice: [] PREFIX=/home/login/PERL <-- Указать в строке |
Далее вопросы:
Your http_proxy? http://127.0.0.1:3128 Select your continent (or several nearby continents) [] 4 Select your country (or several nearby countries) [] 25 <-- Россия Select as many URLs as you like (by number), put them on one line, separated by blanks, e.g. '1 4 5' [] 1 2 3 4 5 6 7 |
На остальные задаваемые вопросы достаточно отвечать нажатием клавишы Enter.
После настройки вы увидите приглашение вида:
Данная настройка производится только при первом запуске. После этого настройки сохраняются.
Далее для установки необходимого модуля нужно набрать команду:
Таким образом можно установить любой модуль.
Для использования установленных модулей в perl-скрипте нужно их подключить, добавив следующие строки в файл скрипта:
use lib "/home/login/PERL/lib/perl5/site_perl/5.8.8/"; use Net::SMPP; |
Для выхода из режима установки модулей PERL служит команда
Полезные ссылки
www.perl.org.ru/
www.providerz.ru/articles/perl
www.perl.com
search.cpan.org
500 ошибка
Если во время запуска своего скрипта вы видите сообщение о 500-ой ошибке, это значит что в скрипте есть какая-то ошибка
из-за которой транслятор Perl'а не может успешно завершить свою работу. Ошибка может быть как синтаксическая
(например вы забыли где-то закрыть кавычку или фигурную скобку), так и логическая, например в результате каких-либо ваших
действий происходит деление на ноль. Для того чтобы понять причину ошибки, вам необходимо посмотреть логи
веб-сервера, которые хранятся в директории logs.
|