我一直在寻求使用apache的根htdocs _DIR_变量中执行的脚本,并能够包含包含敏感数据的其他脚本,例如位于其外部的数据库登录凭据。我有点挣扎尝试不同的选择,但下面的工作非常好。
首先,在我的apache虚拟主机配置中,我设置/包括apache的htdocs的完整Linux路径(您可以通过在末尾附加:/path/to/folder/来添加更多路径):
php_value include_path ".:/var/www/mywebsite.ext/uat/htdocs"
然后在存储在apache的htdocs根(和git repo)中的.htacess中:
php_value auto_prepend_file "globals.php"
上述两者都可以在.htacess中设置,尽管它不适用于多种环境,例如DEV,UAT,PRODUCTION,尤其是在使用git存储库时。
在我的全局.php apache 的 htdocs 文件中,我定义了一个名为 DIR 的变量,该变量由 htdocs php 脚本全局使用:
define('DIR', __DIR__);
然后,在每个文件中,我现在能够动态地包含/需要必要的文件:
require_once(DIR.'/file_folder_inside/apache's_htdocs/some-file.php');
DIR 变量将始终解析为 /var/www/mywebsite.ext/uat/htdocs,无论我在树中的哪个位置调用它,在上面的示例中生成
/var/www/mywebsite.ext/uat/htdocs/file_folder_inside/apache's_htdocs/some-file.php.
现在,我希望访问位于apache的htdocs根文件夹外的php文件,也可以使用以下命令轻松实现:
require_once(DIR.'/../apache's_htdocs_parent_folder/some-file-stored-outside-htdocs-eg-snesitive-credentials.php');