定义根路径

3
我想定义一个配置变量作为我的网站根目录的路径,有什么好的方法可以定义吗?我正在使用Codeigniter框架。
$config['root_path'] = ?

这是我config文件夹中site_config文件的内容。
/
/dev
/dev/application
/dev/application
/dev/application/config
/dev/application/config/site_config.php
/dev/system/
/dev/assets/
/public_html

请说明在这种情况下“根路径”应该是什么,最好附带一个示例。 - Wolfgang Stengel
已为您更新。感谢您的回复。 - user1724167
根路径变量需要包含 public_html 部分吗? - Wolfgang Stengel
不,因为我有一个开发子域和公共的public_html目录,用于生产环境,所以我将使用根变量来决定以后要进入哪个目录,所以我只需要它进入最远的目录即可。 - user1724167
我不明白你在这里的问题。root_path是指根HTML文件夹吗?还是指你的CodeIgniter应用程序的根目录?它应该工作的方式是,如果你有两个站点,那么你需要设置虚拟主机指向不同的pathtowebroot/index.php,因为index.php定义了应用程序文件夹的路径。 - ace
2个回答

4

我通常使用__DIR__。例如,如果你的配置文件在根目录下,你可以这样使用:

$config['root_path']=__DIR__;

如果文件在项目的子目录中(例如/anyframework/config/config.php):

$config['root_path']=dirname(dirname(__DIR__));

我认为这只会返回脚本本身的目录。不会吗? - user1724167
它将返回使用该常量的PHP文件的目录。因此,如果配置文件位于项目的根目录中,则这将起作用。如果配置文件在树的某个地方,则可以添加尽需要多个dirnames()向上移动。 - Wolfgang Stengel
Op提到了CodeIgniter,如果你遵循CodeIgniter的工作流程,那么返回的目录将是从根目录最少2个目录层级上,并且将是/application/config/。OP似乎想要从根目录开始的绝对路径为/home/name/public_html/ - chris
不了解CodeIgniter,但如果定义$config的文件在/application/config中,则dirname(dirname((__DIR__))应该可以工作。 - Wolfgang Stengel

1

我认为

$config['root_path'] = $_SERVER['DOCUMENT_ROOT'];

无论从哪里调用,都会为您提供所需的内容。

另一方面,我对CodeIgniter几乎没有经验,这可能会对我的建议产生负面影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接