Как мне запустить мой веб-сайт Poet под Apache2?
Если у меня в настоящее время есть веб-сайт Poet, работающий под автономным сервером резервного копирования (через run.pl), как мне настроить Apache2 для размещения этого веб-сайта Poet?
Поиски "+apache2 + поэта" позволяют получить множество результатов о поэтах, использующих Apache2 (для публикации своих стихов), и таких статей, как "Мейсон 2 будет работать с Apache/mod_perl 1." Кроме того, есть документы, такие как http://metacpan.org/pod/PSGI%3A%3AFAQ которых говорится: "В Plack мы уже поддерживаем большинство веб-серверов, таких как Apache2", не раскрывая подробностей того, как такая поддержка предоставляется.
Какой минимальный конфигурационный файл Apache2 мне нужен, чтобы мой существующий веб-сайт Poet работал под Apache?
Вот мой существующий макет проекта:
/Users/me/Documents/Ponies/poet
bin
run.pl
comps
index.mc
conf
data
db
lib
logs
static
t
Вот мой стартовый файл httpd.conf:
LoadModule log_config_module /opt/local/apache2/modules/mod_log_config.so
Listen 5000
ServerRoot /Users/me/Documents/Ponies/poet
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access.log combined
Errorlog logs/error.log
PidFile httpd.pid
LockFile accept.lock
User me
Group staff
<VirtualHost *:5000>
ServerName foo.local
DocumentRoot /Users/me/Documents/Ponies/poet/
AddHandler cgi-script .cgi .pl .py
<Directory "/Users/me/Documents/Ponies/poet">
Options +ExecCGI
</Directory>
</VirtualHost>
Буду признателен за ссылки на соответствующую документацию, если есть некоторые указания на то, на какую часть веб-сайта Poet мне нужно указать, чтобы получить URL, такой как http://foo.local/ponies/ для создания контента создано …/Ponies/poet/comps/index.mc
,
1 ответ
Вы могли бы использовать mod_perl
, Прочтите краткое руководство по mod_perl, а затем ознакомьтесь с документацией по Plack. Обратите внимание, что ключевой файл, который вы хотите в среде Poet bin/app.psgi
, Изучение этого файла в соответствии со спецификацией PSGI и документацией Plack должно помочь вам понять, что происходит (помня, что Plack - просто реализация PSGI).
Чтобы быстро начать, используйте следующий файл httpd.conf; отметив строку LoadModule и замену содержимого VirtualHost:
LoadModule log_config_module /opt/local/apache2/modules/mod_log_config.so
LoadModule perl_module /opt/local/apache2/modules/mod_perl.so
Listen 5000
ServerRoot /Users/me/Documents/Ponies/poet
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access.log combined
Errorlog logs/error.log
PidFile httpd.pid
LockFile accept.lock
User me
Group staff
<VirtualHost *:5000>
ServerName foo.local
DocumentRoot /Users/me/Documents/Ponies/poet/
<Location />
SetHandler perl-script
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app /Users/me/Documents/Ponies/poet/bin/app.psgi
</Location>
</VirtualHost>
Это, конечно, минимальный конфиг, который поможет вам plackup
на "настоящий" веб-сервер на том же порту 5000, что и установка Poet по умолчанию, и не учитывает такие мелочи, как безопасность, совместное использование хоста с несколькими приложениями или любое количество других деталей, которые веб-мастер, системный администратор или сеть менеджер по безопасности захочет, чтобы вы приняли во внимание.