为什么DOCUMENT_ROOT比真实路径不同('。')远程服务器上 [英] Why DOCUMENT_ROOT is different than realpath('.') on remote server

查看:425
本文介绍了为什么DOCUMENT_ROOT比真实路径不同('。')远程服务器上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 回声的realpath('。'),'< BR>。
回声目录名(__ FILE __)'< BR>。
回声真实路径(目录名(__ FILE __))'< BR>。
回声$ _ SERVER [PHP_SELF]。'< BR>';
回声GETCWD();
 

我总是得到

  /services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public
 

但在的phpinfo DOCUMENT_ROOT在

  /services/webpages/l/i/mydomain.com/public
 

正因为如此我在与Zend框架结合的.htaccess艰难时期。

在我的地方我能够使它发挥作用。但是,供应商主机上我把握不住幻呢。

EDT:我把 $ _ SERVER ['DOCUMENT_ROOT'] =真实路径($ _ 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文件]:未能打开流:没有这样的文件或目录parse_ini_file(/services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public/v0.2b/application/configs/appkeys.ini) [function.parse-ini文件]:在没有这样的文件或目录:未能打开流/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中使用 - > _ parseIniFile('/服务2 /的WebP ...')#1 /services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public/v0.2b/library/Zend/Config/Ini.php(125): Zend_Config_在/services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public/v0.2b/library/Zend/Config/Ini.php上线181

EDT: 这就是一个:

  $ appkeys =新Zend_Config_Ini中使用(APPLICATION_PATH/configs/appkeys.ini');
 

和APPLICATION_PATH由

定义

 定义(APPLICATION_PATH)
    ||定义(APPLICATION_PATH,真实路径(目录名(__ FILE__)/../application'));
 

解决方案

试试这个:

  $ _ SERVER ['DOCUMENT_ROOT'] =真实路径($ _ SERVER ['DOCUMENT_ROOT']);
回声$ _ SERVER ['DOCUMENT_ROOT']。 \ N的;
 

和阅读

with

echo realpath('.').'<br>';
echo dirname(__FILE__).'<br>';
echo realpath(dirname(__FILE__)).'<br>';
echo $_SERVER[PHP_SELF].'<br>'; 
echo getcwd();

I get always

/services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public

but in phpinfo DOCUMENT_ROOT is

/services/webpages/l/i/mydomain.com/public

because of that I'm having hard times with .htaccess in conjunction with Zend Framework.

On my local I'm able to make it work. But on the provider host I could not grasp the magic yet.

EDT: I put $_SERVER['DOCUMENT_ROOT'] = realpath($_SERVER['DOCUMENT_ROOT']); on the index file but got this.

Fatal error: Uncaught exception 'Zend_Config_Exception' with message '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]: failed to open stream: No such file or directory 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]: failed to open stream: No such file or directory' in /services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public/v0.2b/library/Zend/Config/Ini.php:181 Stack trace: #0 /services2/webpages/util/i/g/gg8375620.provider.com.br/mydomain.com/public/v0.2b/library/Zend/Config/Ini.php(201): Zend_Config_Ini->_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/public/v0.2b/library/Zend/Config/Ini.php on line 181

EDT: thats the one:

$appkeys = new Zend_Config_Ini(APPLICATION_PATH . '/configs/appkeys.ini');

and APPLICATION_PATH is defined by

defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

解决方案

Try this:

$_SERVER['DOCUMENT_ROOT'] = realpath($_SERVER['DOCUMENT_ROOT']);
echo $_SERVER['DOCUMENT_ROOT'] . "\n";

And read this

这篇关于为什么DOCUMENT_ROOT比真实路径不同('。')远程服务器上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆