如何有效地在主Web目录之外运行脚本?

时间:2011-12-21 11:24:46

标签: php apache vhosts apache2.2

我有Web-Developer Server Suite,PHP 5.25,我是从SourceForge下载的。 我的操作系统是Windows 7 Home Edition。

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

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

其他地点是:

  • C:/ WWW /
  • C:/网络/虚拟主机检验/
  • C:/ WWW / businessweb /
  • C:/ WWW / newmediasite /的public_html /

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

如何让服务器在主Webroot之外理解PHP,以及ASP.NET

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

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

我不知道该怎么做,但为了相关性,我会补充一点,这只是一个用于测试的开发服务器。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

因此,如果您的目标是保护您的某些脚本,那么您可以这样做,否则,我认为这不可能。

答案 1 :(得分:0)

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

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