Perl
Для выполнения Perl-скриптов необходимо установить сам интерпретатор и дополнительные модули.
Использовать Perl в качестве backend на веб-сервере Apache можно двумя способами:
- с помощью модуля mod_perl;
- как CGI-скрипты.
Debian/Ubuntu
Установка
- Устанавливаем Perl:
$ sudo apt-get install perl
- Устанавливаем интерфейс для работой с базой данных:
$ sudo apt-get install libdbi-perl
- Устанавливаем драйвер для конкретной СУБД,например, sqlite:
$ sudo apt-get install libdbd-sqlite3-perl
- Для сборки дополнительных модулей через CPAN устанавливаем пакет build-essential:
$ sudo apt-get install build-essential
Далее модули устанавливаются средствами CPAN.
Apache + mod_perl
- Устанавливаем модуль mod_perl для веб-сервера Apache:
$ sudo apt-get -y install libapache2-mod-perl2
- Создаем конфигурационный файл
/etc/apache2/conf-available/mod_perl.conf
со следующим содержимым:
PerlSwitches -w PerlSwitches -T Alias /perl /var/www/perl AddHandler perl-script .pl PerlResponseHandler ModPerl::PerlRun PerlOptions +ParseHeaders Options +ExecCGI SetHandler perl-script PerlResponseHandler Apache2::Status Require ip 127.0.0.1 10.0.0.0/24
- Активируем конфигурацию:
$ sudo a2enconf mod_perl
- Перезагружаем веб-сервер Apache для применения изменений:
$ sudo systemctl restart apache2
- Пример скрипта
/var/www/perl/test-mod_perl.pl
, результат которого будет доступен по ссылкеhttp://domain.ru/perl/test-mod_perl.pl:
#!/usr/bin/perl use strict; use warnings; print "Content-type: text/html\n\n"; print "\n\n"; print ""; my $a = 0; &number(); print "\n\n"; sub number { $a++; print "number \$a = $a"; }
Apache + CGI
- CGI по умолчанию присутствует почти в любой конфигурации Apache, достаточно его активировать командой:
$ sudo a2enmod cgi
- Если необходимо изменить директорию для хранения cgi-скриптов с
/usr/lib/cgi-bin/
, создаем файл/etc/apache2/conf-available/cgi-enabled.conf
со следующими директивами:
Options +ExecCGI AddHandler cgi-script .cgi .pl
- Активируем новую конфигурацию:
$ sudo a2enconf cgi-enabled
- Перезапускаем веб-сервер Apache:
$ sudo service restart apache2
- Пример скрипта
/var/www/html/cgi-enabled/index.cgi
, результат которого будет доступен по адресуhttp://domain.ru/cgi-enabled/index.cgi:
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "\n\n"; print "\n"; print "CGI Test Page"; print "\n\n"; print "\n\n";
CentOS
Установка
- Устанавливаем Perl:
sudo yum install perl-libwww-perl
- Устанавливаем интерфейс для работой с БД:
sudo yum install perl-DBI
- Устанавливаем драйвер для конкретной СУБД, например, MySQL:
sudo yum install perl-DBD-MySQL
Далее модули устанавливаются средствами CPAN.
Apache + mod_perl
- Подключаем расширенный репозиторий EPEL:
$ sudo yum install -y epel-release
- Устанавливаем модуль mod_perl:
$ sudo yum install -y mod_perl
- Корректируем конфигурационный файл
/etc/httpd/conf.d/perl.conf
, приводя его к виду:
PerlSwitches -w PerlSwitches -T Alias /perl /var/www/perl SetHandler perl-script # AddHandler perl-script .cgi # PerlResponseHandler ModPerl::Registry PerlResponseHandler ModPerl::PerlRun PerlOptions +ParseHeaders Options +ExecCGI SetHandler perl-script PerlResponseHandler Apache2::Status # Order deny,allow # Deny from all # Allow from .example.com
- Перезапускаем веб-сервер для применения настроек:
$ sudo systemctl restart httpd
- Пример файла
/var/www/perl/test-mod_perl.cgi
, результат работы которого будет доступен по ссылкеhttp://domain.ru/perl/test-mod_perl.cgi:
#!/usr/bin/perl use strict; use warnings; print "Content-type: text/html\n\n"; print "\n\n"; print ""; my $a = 0; &number(); print "\n\n"; sub number { $a++; print "number \$a = $a"; }
Apache + CGI
- CGI по умолчанию присутствует почти в любой конфигурации веб-сервера Apache, достаточно его включить командой:
$ sudo a2enmod cgi
- Если необходимо изменить директорию для хранения cgi-скриптов с
/var/www/cgi-bin/
, создаем файл/etc/httpd/conf.d/cgi-enabled.conf
с директивами:
Options +ExecCGI AddHandler cgi-script .cgi .pl
- Если на сервере включен SELinux, то также потребуется скорректировать права для доступа к этой директории:
$ sudo chcon -R -t httpd_sys_script_exec_t /var/www/html/cgi-enabled $ sudo semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi-enabled
- Для применения настроек перезапускаем веб-сервер:
$ sudo systemctl restart httpd
- Пример скрипта
/var/www/html/cgi-enabled/index.cgi
, результат работы которого будет доступен по ссылкеhttp://domain.ru/cgi-enabled/index.cgi:
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "\n\n"; print "\n"; print "CGI Test Page"; print "\n\n"; print "\n\n";
Python
Debian/Ubuntu
Установка
На версиях Ubuntu 16.04, Debian 8 и старше и других других этого семейства Linux установлена по умолчанию последняя версия Python 3.
Если нужна другая версия — ее нужно устанавливать отдельно.
Разберем на примере Python 3.7 действия для установки языка из исходников с сайта разработчика.
Устанавливаем пакеты, которые потребуются для сборки:
# apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
Скачиваем исходники:
# wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.gz
Распаковываем архив:
# tar -xzf Python-3.7.2.tar.gz
Переходим в директорию с распакованным архивом и подготавливаем установку:
# cd Python-3.7.2 && ./configure --enable-optimizations
Компилируем интерпретатор. Процесс долгий, в зависимости от конфигурации бокса может занять до получаса. Команда:
# make
Устанавливаем интерпретатор. Обычно при установке используется команда make install, но если использовать её, собранная нами версия заменит предустановленную в системе, поэтому используем другую команду, чтобы сохранить обе:
# make altinstall
Проверяем, что Python установился:
# python3.7 --version Python 3.7.2
Apache + mod_wsgi
- Устанавливаем mod_wsgi для Apache:
$ sudo apt-get -y install libapache2-mod-wsgi
- Создаем конфигурационный файл
/etc/apache2/conf-available/wsgi.conf:
WSGIScriptAlias /test_wsgi /var/www/html/test_wsgi.py
- Активируем конфигурацию:
$ sudo a2enmod wsgi
- Перезагружаем веб-сервер:
$ sudo service restart apache2
Apache + CGI
- CGI по умолчанию присутствует почти в любой конфигурации Apache, достаточно его включить:
$ sudo a2enmod cgi
- Если необходимо изменить директорию для хранения cgi-скриптов с
/usr/lib/cgi-bin/
, создаем файл/etc/apache2/conf-available/cgi-enabled.conf
с настройками:
Options +ExecCGI AddHandler cgi-script .cgi .pl
- Активируем новую конфигурацию:
$ sudo a2enconf cgi-enabled
- Перезапускаем веб-сервер:
$ sudo service restart apache2
- Пример скрипта
/var/www/html/cgi-enabled/index.py
, результат работы которого будет доступен по адресуhttp://domain.ru/cgi-enabled/index.py:
#!/usr/bin/env python print "Content-type: text/html\n\n" print "Python Script Test Page"
CentOS
Установка
- Устанавливаем инструменты для компиляции:
$ sudo yum -y install yum-utils $ sudo yum -y groupinstall development
- Подключаем репозиторий:
$ sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
- Устанавливаем Python3.6:
$ sudo yum -y install python36u
- Устанавливаем pip:
$ sudo yum -y install python36u-pip
Далее модули устанавливаются средствами pip.
Apache + mod_wsgi
- Подключаем расширенный репозиторий EPEL:
$ sudo yum install -y epel-release
- Устанавливаем mod_wsgi:
$ sudo yum -y install mod_wsgi
- Создаем файл
/etc/httpd/conf.d/wsgi.conf:
WSGIScriptAlias /test_wsgi /var/www/html/test_wsgi.py
- Перезапускаем веб-сервер:
$ sudo systemctl restart httpd
- Пример скрипта
/var/www/html/test_wsgi.py
, результат работы которого будет доступен по ссылкеhttp://domain.ru/test_wsgi:
#!/usr/bin/env python print "Content-type: text/html\n\n" print "Python Script Test Page"
Apache + CGI
- CGI по умолчанию присутствует почти в любой компиляции Apache, достаточно его включить:
$ sudo a2enmod cgi
- Если необходимо изменить директорию для хранения cgi-скриптов с
/var/www/cgi-bin/
, создаем файл/etc/httpd/conf.d/cgi-enabled.conf
с настройками:
Options +ExecCGI AddHandler cgi-script .cgi .pl
- Если на сервере включен SELinux, то также потребуется скорректировать права для доступа к этой директории:
$ sudo chcon -R -t httpd_sys_script_exec_t /var/www/html/cgi-enabled $ sudo semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi-enabled
- Для применения настроек перезапускаем веб-сервер:
$ sudo systemctl restart httpd
- Пример скрипта
/var/www/html/cgi-enabled/index.py
, результат работы которого будет доступен по ссылкеhttp://domain.ru/cgi-enabled/index.py:
#!/usr/bin/env python print "Content-type: text/html\n\n" print "Python Script Test Page"
Node.JS
Node.JS — ПО, позволяющее скриптам на языке JavaScript взаимодействовать с устройствами ввода-вывода через свой API. Используется для создания веб-сервера, процесс которого постоянно запущен на машине в ожидании запросов.
Так как разработка принципов работы веб-сервера в данном случае полностью зависит от поставленной задачи, рассмотрим только процесс установки ПО.
Debian/Ubuntu
- Загружаем дистрибутив:
$ wget https://nodejs.org/dist/v4.2.3/node-v4.2.3-linux-x64.tar.gz
- Создаем директорию node и распаковываем содержимое архива:
$ mkdir node $ tar xvf node-v*.tar.?z --strip-components=1 -C ./node
- Создаем директорию node/etc:
$ mkdir node/etc
- Размещаем ПО в директории /opt/node:
$ echo 'prefix=/usr/local' > node/etc/npmrc $ mv node /opt/ $ chown -R root: /opt/node
- Создаем символьные ссылки:
$ ln -s /opt/node/bin/node /usr/local/bin/node $ ln -s /opt/node/bin/npm /usr/local/bin/npm
Далее установка модулей осуществляется с помощью npm.
CentOS
- Устанавливаем репозиторий EPEL:
$ sudo yum install epel-release
- Обновляем список доступных пакетов:
$ yum update
- Устанавливаем ПО:
$ sudo yum install nodejs
- Проверяем версию:
$ node --version v0.10.30
- Устанавливаем менеджер пакетов:
$ sudo yum install npm
Далее установка модулей осуществляется с помощью npm.