3

如果我目前有一个 Poet 网站在独立的 plackup 服务器下运行(通过 run.pl),我如何配置 Apache2 来托管这个 Poet 网站?

搜索“+apache2 +poet”会检索到大量关于使用 Apache2(以发表他们的诗歌)的诗人的结果,以及诸如“Mason 2 will work with Apache/mod_perl 1”之类的文章。然后有诸如http://metacpan.org/pod/PSGI::FAQ之类的文档告诉我“在 Plack 中,我们已经支持大多数 Web 服务器,例如 Apache2”,但没有提供有关如何提供此类支持的任何细节。

为了让我现有的 Poet 网站在 Apache 下运行,我需要的最小 Apache2 配置文件是什么?

这是我现有的项目布局:

/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 网站的哪个部分以获取诸如http://foo.local/ponies/之类的 URL来生成内容,我们将不胜感激。由 生成…/Ponies/poet/comps/index.mc

4

1 回答 1

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进入与默认 Poet 安装相同的端口 5000 上的“真实”Web 服务器,并且不考虑安全性等小事,与多个应用程序共享主机,或网站管理员、系统管理员或网络安全管理员希望您考虑的任何其他详细信息。

于 2012-10-30T03:01:50.390 回答