正确的路径文件在LiteSpeed web服务器在Linux上


Correct path to file in LiteSpeed web server on Linux

我把下面的PHP脚本放在我的web托管服务器的根目录下,它工作得很好。

<?php
include(dirname(__FILE__).'/config/config.inc.php');
require_once(dirname(__FILE__).'/init.php');

当我将脚本移动到我的web根目录下的新文件夹,即public_html/myfolder,脚本给出以下错误:

Warning: include(/home/name/public_html/folder/config/config.inc.php) [function.include]: failed to open stream: No such file or directory in /home/name/public_html/folder/test.php on line 2
Warning: include() [function.include]: Failed opening '/home/name/public_html/folder/config/config.inc.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/name/public_html/folder/test.php on line 2
Warning: require_once(/home/name/public_html/folder/init.php) [function.require-once]: failed to open stream: No such file or directory in /home/name/public_html/folder/test.php on line 3
Fatal error: require_once() [function.require]: Failed opening required '/home/name/public_html/folder/init.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/name/public_html/folder/test.php on line 3

我是否应该这样更改路径:

<?php
include(dirname(__FILE__).'/../config/config.inc.php');
require_once(dirname(__FILE__).'/../init.php');

我说的对吗?

嗯,你说你只移动你的脚本(一个包含include行)到"public_html/文件夹"。这样,dirname(__FILE__)包含完整路径,包括"folder"目录。所以,现在,你需要在目录树中向上走一步,才能到达config目录;说明如下:

Before you had:

/home/name/public_html/config/config.inc.php
/home/name/public_html/init.php

所以你的文件

/home/name/public_html/test.php

使用dirname(__FILE)中的路径访问文件。但是现在,test.php已经移动到目录"folder":

/home/name/public_html/folder/test.php

因此,dirname(__FILE__)应该返回"folder"目录的路径综合。但是你需要包含的文件在"旧"目录中,所以你需要将../添加到包含的路径中,以便能够访问这些文件:)