开发者问题收集

使用文档根目录之外的 Apache 别名时出现错误“主脚本未知”

2022-03-31
7592

我在子域上设置了一个 Apache 别名,它指向文档根目录之外的目录,如下所示:

Alias / /home/keyhelp/www/webmail/plugins/xcalendar/caldav/

<Directory "/home/keyhelp/www/webmail/plugins/xcalendar/caldav">
    Require all granted
    AllowOverride All
</Directory>

这对于 index.html 文件可以按预期工作,但对于 index.php 则不行,即使目录中有一个 .htaccess 将所有请求引导至 index.php。

在 Apache 错误日志中,我得到:

[Thu Mar 31 08:50:08.574396 2022] [proxy_fcgi:error] [pid 376501:tid 140039026099968] [client XX.XX.XXX.XXX:58410] AH01071: Got error 'Primary script unknown'

系统:Debian 11.3、Apache 2.4.53、PHP 7.4.28

谢谢!

2个回答

所以这最终是一个权限问题。我发现 这个线程 帮助我追踪了这个问题,因为我也在使用 php-fpm。我需要在 keyhelp 目录中为其他人添加可执行位,这是树中唯一没有设置此位的目录,方法是使用:

chmod +x /home/keyhelp

我需要将路径 /home/keyhelp/www 添加到 php 的 open_basedir 配置中。现在一切正常。

Thomas D.
2022-03-31

就我而言,需要从 Apache 配置文件中删除行 SetHandler application/x-httpd-php 。 您可能需要添加 <Directory /var/www/yourdirectory> DirectoryIndex index.php </Directory> 希望这对某些人有帮助。

Hamid Reza
2022-04-21