如何让我的Poet网站在Apache2下运行?

时间:2012-10-30 03:01:50

标签: perl apache2 plack poet

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

搜索“+ apache2 +诗人”使用Apache2检索大量有关诗人的结果(发表他们的诗歌),以及诸如“Mason 2将与Apache / mod_perl 1一起使用”等文章。然后有一些文件,例如http://metacpan.org/pod/PSGI::FAQ告诉我“在Plack中,我们已经支持像Apache2这样的大多数Web服务器”而没有提供有关如何提供这种支持的任何细节。

为了让现有的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

1 个答案:

答案 0 :(得分:1)

您可以使用mod_perl。阅读mod_perl quick start guide,然后查看Plack documentation。请注意,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服务器,并且不会考虑像安全性,与多个应用程序共享主机,或网站管理员,系统管理员或网络安全经理希望您考虑的任何其他详细信息。