带
echo realpath('.').'<br>';
echo dirname(__FILE__).'<br>';
echo realpath(dirname(__FILE__)).'<br>';
echo $_SERVER[PHP_SELF].'<br>';
echo getcwd();
我总是
/services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public
但是在phpinfo中DOCUMENT_ROOT是
/services/webpages/l/i/mydomain.com/public
因为我在.htaccess和Zend Framework一起度过了艰难时期。
在我当地,我能够让它发挥作用。但是在提供者主持人身上我无法掌握魔法。
EDT:我把$_SERVER['DOCUMENT_ROOT'] = realpath($_SERVER['DOCUMENT_ROOT']);
放在索引文件上,但得到了这个。
致命错误:未捕获的异常'Zend_Config_Exception',消息'parse_ini_file(/services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public/v0.2b/application/configs/appkeys .ini)[function.parse-ini-file]:无法打开流:没有这样的文件或目录parse_ini_file(/services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public/ v0.2b / application / configs / appkeys.ini)[function.parse-ini-file]:无法打开流:/services2/webpages/util/i/g/gg8375620.provider.com中没有这样的文件或目录.br / mydomain.com / public / v0.2b / library / Zend / Config / Ini.php:181堆栈跟踪:#0 /services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain。 com / public / v0.2b / library / Zend / Config / Ini.php(201):Zend_Config_Ini-&gt; _parseIniFile('/ services2 / webp ...')#1 / services2 / webpages / util / i / g / gg8375620.provider.com.br/mydomain.com/public/v0.2b/library/Zend/Config/Ini.php(125):Zend_Config_ in /services2/webpages/util/i/g/gg8375620.provider.com。 BR / mydomain.com /公/ V0.2第181行/ b / library / Zend / Config / Ini.php
EDT: 那就是那个:
$appkeys = new Zend_Config_Ini(APPLICATION_PATH . '/configs/appkeys.ini');
和APPLICATION_PATH由
定义defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
答案 0 :(得分:4)
试试这个:
$_SERVER['DOCUMENT_ROOT'] = realpath($_SERVER['DOCUMENT_ROOT']);
echo $_SERVER['DOCUMENT_ROOT'] . "\n";
阅读this
答案 1 :(得分:2)
可能是DOCUMENT_ROOT
中的某些目录实际上是symlinks到其他目录 - 引用the documentation,
realpath()展开所有符号链接并解析对&#39; /./',&#39; /../'的引用;和额外的&#39; /&#39;输入路径中的字符并返回规范化的绝对路径名。
因此,如果(例如),/services/webpages/l
是目录,而/services/webpages/l/i
是指向/services2/webpages/util/i/g/gg8375620.provider.com.br
的符号链接,则/services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public
和/services/webpages/l/i/mydomain.com/public
都会让你到同一个目录,但realpath()将始终返回前者。
/services
+ webpages
| - util
| - i
| - g
| - gg8375620.provider.com.br
| - mydomain.com
| - public
+ l
- i -> ../webpages/util/i/g/gg8375620.provider.com.br/
答案 2 :(得分:1)
document_root来自您的Web服务器配置文件,这就是为什么它与realpath函数不同。
答案 3 :(得分:0)
嗯,DOCUMENT_ROOT环境变量只是设置为错误值 如果您无法控制此服务器,则无法自行修复 请求支持人员修复或找到避免使用此变量的方法
由于看起来像ZF问题,我认为这很容易解决 我从来没有使用过该框架,但我确信它有单个入口点或一些配置文件 因此,您可以通过设置以下内容轻松伪造DOCUMENT ROOT:
$_SERVER['DOCUMENT_ROOT'] = realpath(dirname(__FILE__).'/../');
其中'/../'表示从这样的入口点到实际文档根目录的相对路径
答案 4 :(得分:0)
echo realpath(dirname( FILE ));
这应该会有所帮助。在此链接上http://www.tech99.us/finding-absolute-path-in-php/you可以找到使用这些功能的详细信息。上面一行中使用的每个函数都可以使用php4和php5。