这就是我的文件结构。 [..]是文件夹
[public]
[libs]
[crontab]
[logs]
[sessions]
[tmp]
config.php
将域设置为公用文件夹作为其根目录。包括config.php文件在内的所有其他内容都在root之外。配置包含数据库连接信息和其他必要设置。
公共文件夹中的每个页面都必须放置整个路径,因此请包含配置文件。问题是,当我将所有内容从本地计算机移动到公共服务器时,我必须遍历每个页面并更改配置文件中包含的路径。有没有更好的办法?也许在php.ini中设置路径或类似的东西?
感谢
答案 0 :(得分:3)
在特定情况下,您可以使用:
include("$_SERVER[DOCUMENT_ROOT]/../config.php");
# Note: special exception array syntax within double quotes.
首先解析到public
目录,但将一个级别移回../
以到达docroot之外的配置文件。
但您也可以在SetEnv
中使用.htaccess
为该场合定义另一个$_SERVER
环境变量。
答案 1 :(得分:1)
我经常用来包含相对于webroot结构中特定位置的文件的技术是使用这样的include / require:
require_once(dirname(__FILE__) . '/path/to/include.php');
这样,只要文件以相同的方式保持彼此相对,代码库迁移就不需要更改任何硬链接或常量。
答案 2 :(得分:0)
你可以只为你的路径使用常量并改变它一次,并在每个路径上定义该常量 - 包含文件
您还可以查看包含路径 http://php.net/manual/en/function.set-include-path.php
答案 3 :(得分:0)
请参阅set_include_path()
以及include_path ini设置的文档。