通过别名访问时显示原始源代码的 PHP 脚本(apache)

通过别名访问时显示原始源代码的 PHP 脚本(apache)

我有一台服务器上有几个不同的域名(每个都在单独的 VHost 中)。每个 VHost 运行良好,可以正确执行 PHP 等。为了举例说明,两个域名是 foo.com 和 bar.com。我试图在 foo.com 上创建一个别名,该别名将包含 bar.com 目录中的文件。很简单,对吧?

# Apache config file for foo.com
Alias /bar-alias /var/www/vhosts/bar.com/httpdocs/somedir
<Directory "/var/www/vhosts/bar.com/httpdocs/somedir">
        Options Indexes FollowSymLinks
        Order Allow,Deny
        Allow From All
        Deny From None
</Directory>

它工作得很好,除了尝试运行 PHP 脚本时。在我的配置下,访问 www.foo.com/bar-alias/script.php 会返回脚本的源代码,而不是执行它。我一直在绞尽脑汁想办法让 Apache 以这种方式执行 PHP,但一无所获。

(如果是根本如果可能的话,我想避免进行任何符号链接或类似操作。这似乎是我应该能够完全在 Apache 的配置中完成的事情,我只是不知道该怎么做。)

答案1

看起来它可能在读取完整 http conf 之前就执行了别名。以下行是在您的别名之前还是之后找到的?尝试将其移到上面:
Include conf.d/*.conf

答案2

其实我思考我明白了。出于纯粹的沮丧,我从配置的早期部分复制了以下内容并将其粘贴到此<Directory>别名的块中...

<IfModule sapi_apache2.c>
    php_admin_flag engine on
    php_admin_flag safe_mode off
</IfModule>
<IfModule mod_php5.c>
    php_admin_flag engine on
    php_admin_flag safe_mode off
</IfModule>

瞧,它开始像我预期的那样工作了。我会再敲一下(看起来我真的不需要),但目前它工作得还不错。

相关内容