2013-03-14 137 views
-1

我想要做的是设置我的网站的开发子域。是否有可能链接PHP需求?

的结构基本上这样的:

/vitals.php <-- Contains the actual info (passwords, db info, etc...) 
/public_html/vitals.php <-- contains only require("../vitals.php") 
/public_html/index.php 
/public_html/dev/index.php 

在的public_html索引文件具有require("../vitals.php")。我希望能够通过在public html中添加额外的vitals.php来在dev/index.php文件中使用相同的行,这将在public_html之外包括vital.php

问题是......它不起作用。想法?

+0

你尝试'需要( “../../ vitals.php”)'?你的问题有点模糊,难以理解,请澄清。 – 2013-03-14 00:21:41

+1

我建议你在一个根文件中定义一个代表你的应用程序根路径的常量(例如:define('APPLICATION_PATH',__DIR__'),然后在你的所有include或requiered中使用它以便给绝对路径因为用你的方法,你玩的是相对路径,你可能会感到困惑。看看:http://php.net/manual/en/language.constants.predefined.php – MatRt 2013-03-14 00:21:45

+1

“它不起作用“不是一个解释 – zerkms 2013-03-14 00:21:46

回答

0

您遇到了require的相对路径问题。只要使用绝对路径,无论是否在您的dev子目录中,require都可以工作。

require('/path/to/vitals.php'); 
+0

我可以做到这一点,但我试图不必重写要作为子域名将在dev文件夹中的页面的require语句。 – vikingsfan19 2013-03-14 00:27:39

+0

如果它们位于子域中,只需将整个文件夹放入为其虚拟主机定义的自己的目录结构中,而不是嵌套到另一个虚拟主机的目录中,则只会导致自己产生不必要的问题。 – 2013-03-14 00:31:07

1

Active Directory中不会改变,只是因为你包括文件。就个人而言,我喜欢与chdir($_SERVER['DOCUMENT_ROOT'])开始我的代码,因为这将让我有相同的文件,无论我在哪个文件夹。

0

requireinclude,和朋友,看看在当前working directory第一,然后在脚本文件的目录。工作目录最初将成为访问页面的目录。它在包含的文件中不会有所不同,因此它只会尝试再次包含相同的文件,而不能设法启动树。

一个更好的办法可能是干脆直接跳到根:

require $_SERVER['DOCUMENT_ROOT'] . '/vitals.php'; 
相关问题