如果我目前有一个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>
链接到适当的文档将不胜感激,只要有一些迹象表明我需要指向诗人网站的哪个部分才能获得URL,例如http://foo.local/ponies/以产生由CCD_ 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服务器上,并且不考虑安全性、与多个应用程序共享主机或网站管理员、系统管理员或网络安全经理希望您考虑的任何其他细节等小事。