Данная инструкция позволяет запустить интерпретатор 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. И в результате мы должны увидеть страницы с запущенными скриптами.