Как установить Mojolicious на виртуальном хостинге?
Подключаемся к ssh и вносим настройки необходимые для установки perl пакетов. Для этого необходимо открыть в текстовом редакторе файл .bashrc и в конец файла добавить следующие записи:
export HOME=$HOME/private
export PATH=$PATH:$HOME/bin:/sbin:/usr/sbin
export PERL5LIB=$HOME:$HOME/lib:$HOME/lib/perl5
Для применения настроек необходимо переподключиться к ssh.
Запускаем cpan, при первом запуске он предложит автоматически настроить все параметры. Соглашаемся, достаточно просто нажать Enter.
$ cpan
CPAN is the world-wide archive of perl resources. It consists of about
300 sites that all replicate the same contents around the globe. Many
countries have at least one CPAN site already. The resources found on
CPAN are easily accessible with the CPAN.pm module. If you want to use
CPAN.pm, lots of things have to be configured. Fortunately, most of
them can be determined automatically. If you prefer the automatic
configuration, answer 'yes' below.
If you prefer to enter a dialog instead, you can answer 'no' to this
question and I'll let you configure in small steps one thing after the
other. (Note: you can revisit this dialog anytime later by typing 'o
conf init' at the cpan prompt.)
Would you like me to configure as much as possible automatically? [yes]
После настройки выходим из cpan
cpan[1]> exit
Далее в файле конфигурации cpan, который находится в private/.cpan/CPAN/MyConfig.pm отредактировать параметры makepl_arg и mbuildpl_arg. Они должны иметь следующие значения
'makepl_arg' => qq[INSTALL_BASE=$ENV{'HOME'}],
'mbuildpl_arg' => qq[--install_base $ENV{'HOME'}],
Будьте очень внимательны при редактировании файла конфигурации, любой пропущенный или лишний символ приведет к ошибкам при установке.
Установка Mojolicious
$ cpan i Mojolicious
В процессе установки cpan будет запрашивать разрешение на установку зависимостей. Соглашаемся, достаточно нажать Enter
Looks good
Warning: prerequisite IO::Socket::IP 0.37 not found.
Warning: prerequisite JSON::PP 2.27103 not found.
Warning: prerequisite Time::Local 1.2 not found. We have 1.1901.
Writing Makefile for Mojolicious
---- Unsatisfied dependencies detected during ----
---- SRI/Mojolicious-7.94.tar.gz ----
JSON::PP [requires]
IO::Socket::IP [requires]
Time::Local [requires]
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes]
В конце вы должны увидеть
SRI/Mojolicious-7.94.tar.gz
/usr/bin/make install -- OK
Это означает что установка прошла успешно.
Создадим наше первое приложение, для это переходим в каталог cgi-bin
$ cd cgi-bin/
$ mojo generate lite_app
[exist] /home/httpd/vhosts/domain.ltd/cgi-bin
[write] /home/httpd/vhosts/domain.ltd/cgi-bin/myapp.pl
[chmod] /home/httpd/vhosts/domain.ltd/cgi-bin/myapp.pl 744
$ chmod 755 myapp.pl
В файл myapp.pl перед строкой use Mojolicious::Lite; нужно добавить путь к perl библиотекам которые установлены ранее. Первые три строки файла должны выглядеть так:
#!/usr/bin/env perl
use lib qw(/home/httpd/vhosts/domain.ltd/private/lib/perl5);
use Mojolicious::Lite;
Где domain.ltd - это имя вашего домена.
Если все сделано правильно, то перейдя по адресу http://ваш_доме/cgi-bin/myapp.pl вы увидите
Внимание! На виртуальном хостинге запрещено запускать процессы просушивающие сокет, поэтому использовать этот framework можно только как CGI приложение. При запуске ./myapp.pl daemon -m production -l http://*:8080 сайт может быть заблокирован.