【问题标题】:How do I get my Poet web site running under Apache2?如何让我的 Poet 网站在 Apache2 下运行?
【发布时间】:2012-10-30 03:01:50
【问题描述】:

如果我目前有一个 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 以生成由 @987654325 生成的内容,我们将不胜感激@。

【问题讨论】:

    标签: perl apache2 plack poet


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 2014-04-02
      • 2010-11-06
      相关资源
      最近更新 更多