Подключение Perl к LAMP-серверу в Linux

Данная инструкция позволяет запустить интерпретатор Perl и расширить стек LAMP на ОС Debian GNU/Linux 11.2, Ubuntu Server 21.10 и CentOS Stream 8.

Подключение Perl к LAMP-серверу в Debian и Ubuntu Server

Настройка LAMP-сервера для Debian и Ubuntu Server описана здесь: https://dondub.com/2021/07/zapusk-lamp-servera-na-debian-10-10-i-ubuntu-server-21-04/. Поэтому все предыдущие установки и настройки берём именно оттуда.

Затем установим необходимые расширения и дополнения Perl для Apache

# apt install libapache2-mod-perl2 libapache-dbi-perl libdbd-pgsql libdbd-pg-perl libpg-perl libdbd-mysql libdbd-mysql-perl

Создадим директорию, в которой будут храниться CGI-скрипты

# mkdir /var/www/html/cgi-bin/

После этого создадим файл конфигурации Apache для Perl /etc/apache2/conf-available/mod_perl2.conf

# touch /etc/apache2/conf-available/mod_perl2.conf

откроем его

# nano /etc/apache2/conf-available/mod_perl2.conf

и вставим такие строки:

<Location /cgi-bin/*.pl>
    SetHandler perl-script
    PerlResponseHandler ModPerl::PerlRun
    PerlSendHeader On
    Options ExecCGI
    Require all granted
</Location>
<Location /cgi-bin/*.cgi>
    SetHandler perl-script
    PerlResponseHandler ModPerl::PerlRun
    PerlSendHeader On
    Options ExecCGI
    Require all granted
</Location>

Также создадим символическую ссылку на него в директории /etc/apache2/conf-enabled/

# ln -s /etc/apache2/conf-available/mod_perl2.conf /etc/apache2/conf-enabled/

и перезапустим службу apache2

# systemctl restart apache2

После этого скрипты Perl должны выполняться на веб-страницах.

Для проверки создадим 2 файла test.cgi и cgi.pl в каталоге /var/www/html/cgi-bin/ и зададим для них необходимые права

# touch /var/www/html/cgi-bin/{test.cgi,cgi.pl}
# chmod 755 /var/www/html/cgi-bin/{test.cgi,cgi.pl}

откроем test.cgi

# nano /var/www/html/cgi-bin/test.cgi

и вставим такие строки:

#!/usr/bin/perl
print "Content-Type: text/html; charset=utf-8 \n\n";
print "<h1>Файл test.cgi работает!</h1>";

также откроем cgi.pl

# nano /var/www/html/cgi-bin/cgi.pl

и вставим такие строки:

#!/usr/bin/perl
print "Content-Type: text/plain; charset=utf-8 \r\n\r\n";
print "Информация о сервере: \n";
foreach ( keys %ENV  ) {
        print "$_\t$ENV{$_}\n";
}

Далее на другой машине в сети в адресной строке браузера вводим такой адрес: http://IP_или_имя_хоста/cgi-bin/test.cgi и/или http://IP_или_имя_хоста/cgi-bin/cgi.pl. И в результате мы должны увидеть страницы с запущенными скриптами.

Подключение Perl к LAMP-серверу в CentOS Stream 8

Настройка LAMP-сервера для CentOS Stream 8 описана здесь: https://dondub.com/2021/07/zapusk-lamp-servera-na-centos-stream-8/. Поэтому все предыдущие установки и настройки берём именно оттуда.

Что касается CentOS Stream 8, то Perl здесь уже установлен. Скрипты хранятся в директории /var/www/cgi-bin/. Также, при установке СУБД MariaDB подтягиваются необходимые драйверы для работы Perl с MariaDB. А для PostgreSQL необходимо установить пакет perl-DBD-Pg

# yum install perl-DBD-Pg

Затем перезапускаем службу httpd

# systemctl restart httpd

и Perl у нас должен выполняться на веб-страницах.

Для проверки создадим 2 файла test.cgi и cgi.pl в каталоге /var/www/cgi-bin/ и зададим для них необходимые права

# touch /var/www/cgi-bin/{test.cgi,cgi.pl}
# chmod 755 /var/www/cgi-bin/{test.cgi,cgi.pl}

откроем test.cgi

# nano /var/www/cgi-bin/test.cgi

и вставим такие строки:

#!/usr/bin/perl
print "Content-Type: text/html; charset=utf-8 \n\n";
print "<h1>Файл test.cgi работает!</h1>";

также откроем cgi.pl

# nano /var/www/cgi-bin/cgi.pl

и вставим такие строки:

#!/usr/bin/perl
print "Content-Type: text/plain; charset=utf-8 \r\n\r\n";
print "Информация о сервере: \n";
foreach ( keys %ENV  ) {
        print "$_\t$ENV{$_}\n";
}

После этого на другой машине в сети в адресной строке браузера вводим такой адрес: http://IP_или_имя_хоста/cgi-bin/test.cgi и/или http://IP_или_имя_хоста/cgi-bin/cgi.pl. И в результате мы должны увидеть страницы с запущенными скриптами.

Добавить комментарий

Ваш адрес email не будет опубликован.