0

那来自apache error_log:

[Mon Oct 17 17:55:42 2011] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied

/etc/apache2/vhosts.d我创建了这个文件:

<VirtualHost 127.0.0.1:3000>
    DocumentRoot "/home/mm/lib/vokabeltrainer"
    ServerName localhost:3000
    <Directory "/home/mm/lib/vokabeltrainer">
    Options FollowSymLinks ExecCGI
    AddHandler cgi-script .pl
    IndexIgnore *
    RewriteEngine on
    RewriteCond %{DOCUMENT_ROOT}/public/%{REQUEST_URI} -f
    RewriteRule ^(.*) public/$1 [L]
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
    RewriteRule ^(.*) vokabeltrainer.pl [L]
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
</VirtualHost>

/etc/apache2/listen.conf看起来像这样:

Listen 127.0.0.1:3000
NameVirtualHost 127.0.0.1:3000

为了测试,我修改了文件夹,如chmod -R 0777 /home/mm/lib/vokabeltrainer

当我vokabeltrainer.pl使用 morbo 开发服务器运行(Mojolicious::Lite 脚本)时,它可以工作。

有人知道我应该在哪里看吗?

4

1 回答 1

0

正如 Ikegami 指出的那样,我的第一个问题是我没有考虑路径的 /home/mm/lib 部分:lib 目录没有足够的权限,所以我必须添加所需的权限。然后我将shebang表单/usr/local/bin/perl中的路径更改为/usr/bin/perl,并为/usr/bin/perl安装了Mojolicious::Lite。

我要做的最后一件事是写这样的 urlhttp://localhost:3000/vokabeltrainer.pl/random而不是http://localhost:3000/random.
(在Pretty "Web 2.0" URLsmojo /wiki/Apache-deployment中显示了一种保留短 url 的方法)

于 2011-10-19T11:27:10.917 回答