К началу страницы
лучший хостинг тот, который о себе не напоминает

Perl и CGI программы — особенности использования

Содержание

  1. Использование готовых скриптов
  2. Написание простейшего CGI-скрипта
  3. Просмотр установленных модулей PERL
  4. Установка дополнительных модулей PERL
  5. Возможные ошибки

1. Использование готовых скриптов

Если у вас уже есть написанные CGI-скрипты, то прежде чем скопировать их на сервер, вы должны сделать следующие действия:
  • Убедиться, что в скриптах указан правильный путь к интерпретатору:
    • Perl: /usr/bin/perl
    • Python: /usr/local/bin/python
  • Если вашему скрипту требуется доступ к базе данных MySQL, то необходимо указать параметры доступа:
  • В разделе панели управления хостингом «Веб-сервер»«Управление модулями» включить модуль CGI.

Теперь вы можете скопировать свои скрипты на сервер.
Загружать файлы необходимо в каталог ваш_домен/cgi. Файлы из данного каталога будут доступны по адресу http://ваш_домен/cgi-bin/имя_файла.
Для того чтобы CGI-скрипты запускались из корневого каталога сайта ваш_домен/docs, необходимо создать в нем файл .htaccess со следующим содержимым:

AddHandler cgi-script .cgi .pl .py
Options +ExecCGI 

На скрипты необходимо установить атрибут исполнения (права доступа 755 или -rwxr-xr-x).
Атрибуты можно изменить с помощью файлового менеджера панели управления.

2. Написание простейшего CGI-скрипта

Рассмотрим написание простого CGI скрипта на Perl.
Если вы работаете под управлением ОС "Windows", то для работы с кодом скриптов вам необходимо использовать специализированный текстовый редактор, например, Notepad++. Стандартную для Windows программу «Блокнот» лучше не использовать. Для демонстрации работы 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. Второй файл вы должны разместить в директории ваш_домен/cgi. Обязательно проверьте права на ваш CGI-скрипт. Они должны быть установлены в значение -rwxr-xr-x или 755.
Поcмотреть, как работает скрипт, можно по ссылке: тестовый пример

3. Просмотр установленных модулей PERL

Для проверки установленных PERL-модулей необходимо последовательно выполнить следующие действия:

  • Зайти по ssh протоколу на веб-сервер и выполнить команду:
  • vim modules.pl
    Таким образом будет создан файл 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 ./modules.pl

4. Установка дополнительных модулей PERL

Вы можете установить на хостинг дополнительные модули PERL из исходных кодов. Прежде чем приступать к установке, подключите последнюю версию PHP в разделе «Веб-сервер» — «Управление модулями» панели управления хостингом, при этом будет подключен обновленный набор программного обеспечения, который может включать в себя нужный вам модуль Perl.
Перед установкой требуется задать переменные окружения, чтобы установленные модули были доступны интерпретатору.

  • Для этого подключитесь к хостингу по SSH и создайте в домашнем каталоге файл .bashrc с помощью команды:
    cat >> ~/.bashrc << "EOF"
    PERL5LIB=$HOME/PERL/lib:$HOME/PERL/lib/perl5
    export PERL5LIB
    
    MANPATH=$HOME/PERL/share/man
    export MANPATH
    EOF
  • Чтобы изменения вступили в силу, выполните команду:
    source ~/.bashrc

Для того чтобы установить выбранный модуль для PERL, необходимо выполнить следующую последовательность команд:

  • на странице http://search.cpan.org/ найдите нужный модуль, например, Net::SMPP и скопируйте ссылку для загрузки архива с исходными кодами модуля,
  • подключитесь к хостингу по SSH и перейдите в каталог для временных файлов
    cd ~/tmp
  • загрузите архив на хостинг по найденной ссылке с помощью wget
    wget http://search.cpan.org/CPAN/authors/id/S/SA/SAMPO/Net-SMPP-1.12.tar.gz
  • распакуйте архив и перейдите в каталог с исходными кодами модуля
    tar -xf Net-SMPP-1.12.tar.gz
    cd Net-SMPP-1.12

Установку необходимо выполнять в отдельный каталог, например, /home/login/PERL, где login – идентификатор услуги хостинга, указав переменную INSTALL_BASE.

  • Для установки модуля с помощью файла Makefile.PL используйте команды:
    perl Makefile.PL INSTALL_BASE=$HOME/PERL
    make
    make install
  • Для установки модуля с помощью файла Build.PL используйте команды:
    perl Build.PL
    ./Build --install_base $HOME/PERL
    ./Build install --install_base $HOME/PERL

Для использования установленных модулей в perl-скрипте нужно их подключить, добавив следующие строки в файл скрипта:

use lib "/home/login/PERL/lib"; 
use lib "/home/login/PERL/lib/perl5";
use Net::SMPP;

Для того чтобы веб-сервер Apache мог работать с дополнительными модулями, необходимо в панели управления хостингом включить модуль env_module и добавить следующие строки в файл .htaccess в корневом каталоге сайта или в каталоге с CGI-скриптами:

SetEnv PERL5LIB  /home/login/PERL/lib:/home/login/PERL/lib/perl5
где login – идентификатор услуги хостинга.

5. Возможные ошибки

Ошибка 403

Если при обращении к скрипту вы видите сообщение об ошибке 403, это значит, что на скрипт установлены некорректные права доступа. На CGI-скрипты необходимо установить атрибут исполнения (права доступа 755 или -rwxr-xr-x). Атрибуты можно изменить с помощью файлового менеджера панели управления.

Ошибка 500

Если во время запуска своего скрипта вы видите сообщение о 500-ой ошибке, это значит что в скрипте есть какая-то ошибка из-за которой транслятор Perl'а не может успешно завершить свою работу. Ошибка может быть как синтаксическая (например вы забыли где-то закрыть кавычку или фигурную скобку), так и логическая, например в результате каких-либо ваших действий происходит деление на ноль. Для того чтобы понять причину ошибки, вам необходимо посмотреть логи веб-сервера, которые хранятся в каталоге ваш_домен/logs.

Проект компании RU-CENTER
Служба круглосуточной технической поддержки:
+7 (495) 994-46-01
+7 (495) 737-06-01 (Москва)
8 800 250-27-99
8 800 555-46-01 (для регионов России)
e-mail: support@nic.ru
Заведите собственную почту от RU-CENTER


© Региональный Сетевой Информационный Центр, 2006-2017