使用虚拟主机在 Apache 上部署 perl dancer

使用虚拟主机在 Apache 上部署 perl dancer

请原谅我的知识不足,我只是在这里学习 Linux 管理。

一周前我读了这篇关于设置的文章虚拟主机,然后我安装并mod_perl设置我的 perl催化剂应用程序运行良好!

然后我尝试perl 舞者,对于新手来说,部署似乎并不那么简单。

我尝试遵循这个关于 CGI 环境中部署的文章但我可能只是忽略了一些非常基本的东西。

问题:我配置了我的服务器,现在如果我在 chrome 上访问 www.myapp.com,我会得到:

错误 324(net::ERR_EMPTY_RESPONSE):服务器关闭了连接而没有发送任何数据。

  • www.myapp.com指出了一个Amazon-EC2 Amazon Linux 实例。
  • 它正在运行 Apache。
  • 我有这个文件夹:/srv/www/myapp.com/并且在该文件夹下我有一个MyApp具有以下目录结构的文件夹(为简洁起见删除了一些文件):

    drwxr-xr-x 2   bin
    lrwxrwxrwx 1   index.cgi -> MyApp/public/dispatch.cgi
    drwxr-xr-x 2   lib
    drwxr-xr-x 5   public
    drwxr-xr-x 3   views
    
  • [更新]我有一件myapp.com.vhost.conf下装\etc\httpd\sites-enabled\。我根据舞者修改了它,让它看起来像这样使用 cgi 部署的文档

    <VirtualHost *:80>
     ServerName www.myapp.com
     DocumentRoot /srv/www/myapp.com/MyApp/public
     ServerAdmin [email protected]
    
     <Directory "/srv/www/myapp.com/MyApp/public">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
        AddHandler cgi-script .cgi
     </Directory>
    
     RewriteEngine On
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteRule ^(.*)$ /dispatch.cgi/$1 [QSA,L]
    
     ErrorLog /srv/www/myappp.com/logs/error.log
     CustomLog /srv/www/myapp.com/logs/access.log combined
    </VirtualHost>
    
  • 我的本地错误日志上周没有任何错误,并且访问日志中只有 google bot 的条目。

更新 2:此处的错误日志/var/log/httpd/error_log有多行内容为:failed to resolve handler MyApp。有什么想法吗?

我在这里遗漏了什么?

虚拟主机设置不是为了运行 cgi 应用程序吗?我是不是在某个地方做错了什么?

答案1

所以这个问题很不幸,也很简单。

\etc\sites-enabled在我下面有一个MyApp.conf.backup。我以为重命名后它就不会被选中,但因为它在那个目录中,并且 conf 文件有一个调用 的条目ModPerl

这就是为什么我不断得到:failed to resolve handler MyApp.

我把文件移出并且一切恢复正常:)

相关内容