请原谅我的知识不足,我只是在这里学习 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.
我把文件移出并且一切恢复正常:)