0

我有从 SourceForge 下载的带有 PHP 5.25 的 Web-Developer Server Suite。我的操作系统是 Windows 7 家庭版。

我将 Apache 升级到最新版本,并将很快将 PHP 升级到 5.38。

除了一个小问题,它运行良好;主 webroot (C:/www/vhosts) 之外的虚拟主机显示 PHP 脚本,或者根本不显示任何脚本;只是简单的代码。所有虚拟主机都在 C:/www/vhosts 中工作,但不是我在 vhosts 中声明的任何其他位置。

其他位置是:

  • C:/www/
  • C:/www/vhosts-test/
  • C:/www/businessweb/
  • C:/www/newmediasite/public_html/

尽管我在 httpd-vhosts.conf 中声明了这些位置!

我如何让服务器理解主 webroot 之外的 PHP 以及 ASP.NET

(请记住,我也添加了 mod_aspdotnet)。

我很乐意对此提出任何建议;刚刚花了一天半的时间重建我的网络服务器,在重新安装 Web-Developer Server Suite(恕我直言,对初学者来说非常好)后从备份中移动文件(所有 PHP 和 MySQL)。

我不知道该去哪里,但为了相关性,我会补充一点,这严格来说是一个用于测试的开发服务器。

4

2 回答 2

1

您可以将脚本放在 Webroot 之外的受保护目录中,这样您的访问者就无法访问它们。

但是,您需要在您的 Webroot 中放置一个包含这些脚本的脚本。大多数固件都实现了类似的功能。

<?php
 require_once('/var/usr/myConfigDir/config.php');
?>

据我了解,只有配置为 Webroot 的目录才能执行脚本。Apache 已经为不在 Webroot 之外执行脚本添加了一个安全层。

所以如果你的目标是保护你的一些脚本,你可以这样做,否则,我认为这是不可能的。

于 2012-08-13T11:42:48.957 回答
0

根据我对您问题的理解,您希望能够将 PHP 文件放在计算机上的任何位置,但仍然可以执行。我不相信这是可能的,因为 PHP 文件是通过网络服务器打开的,即 127.0.0.1/foo.php 而不是 file://foo.php/

网络服务器配置为执行 /www 中的文件,除非某处有设置(我不知道),所有 PHP 脚本都必须放在 /www 中。

于 2011-12-21T12:07:07.137 回答