2014-02-08 81 views
3

这是我发现很难调试,因为PHP:没有这样的文件或目录

  1. 我没有体验到它在我的本地开发平台,仅在远程服务器上(但不是所有的错误)和

  2. 我不确定从哪里开始寻找或调查什么PHP设置,尽管我怀疑问题是与远程服务器环境有关。

另外一个复杂之处在于,在大的多模块脚本我开发,问题永远只能出现在执行tinyMCE的连接。一个典型的问题是:

警告:include_once(核心/启动/ GLOBALS.php)function.include一次]:未能打开流:在没有这样的文件或目录的/ home/WIKINDX/WWW/WWW /wikindx4/core/tiny_mce/plugins/wikindxLink/dialog.php线路33

除了一个可能的解决方案

所以要在服务器环境设置中找到,我可能需要改变的东西在TinyMCE的设置 - - 我曾多次在tinyMCE论坛上提出过帮助,但没有收到任何回复。

这一切都可以在我的本地平台和其他删除服务器上正常工作。不用说,GLOBALS.php是在核心/启动/但我不能硬编码它可以在/home/wikindx/www/www/wikindx4/core/startup/找到,因为这些脚本必须在任何服务器上工作。

编辑:我真的怀疑它与tinyMCE环境有关,因为导致此问题的服务器安装在调用include_once(core/startup/GLOBALS.php)时没有任何问题,因为该调用不在tinyMCE系统中。 tinyMCE中的某些内容会改变include_once()寻找的路径。

+0

最有可能的,你正在开发的Windows,服务器是* nix中?在这种情况下,您应该记住Windows上的文件名不区分大小写,但不在linux上:大小写不重要。如果情况并非如此,请检查你的['include_path'](http://www.php.net/manual/en/ini.core.php#ini.include-path)是什么。我通常更喜欢根据他们所在的目录来包含文件,所以这会使其'需要__DIR __。'/ ../../../startup/GLOBALS.php';' – Wrikken

+0

在OsX上进行开发。由于上述原因,我无法使用硬编码路径解决方案。 –

+0

我看不出为什么相对包含不起作用。或者你是说你在实际包中包含一个文件_not_部分,所以与相关全局文件路径的相对路径不起作用? (换句话说:dialog.php与GLOBALS.php不是同一个软件包的一部分,但由于某种原因仍然知道它的存在并希望将其包含在_'somewhere'_?) – Wrikken

回答

2

我认为你正在寻找$_SERVER['DOCUMENT_ROOT']

include_once $_SERVER['DOCUMENT_ROOT'].'core/startup/GLOBALS.php'; 

在当前的服务器将具有值/home/wikindx/www/www/wikindx4/

+0

尝试在我的本地系统(以前的工作),我现在得到:include_once():失败打开'/Applications/XAMPP/xamppfiles/htdocs/core/startup/GLOBALS.php'包含(include_path ='。:/应用程序/ XAMPP/xamppfiles/htdocs/wikindx4/trunk中的应用程序/ XAMPP/xamppfiles/lib/php')。 –

+0

同样,由于该脚本必须适用于各种情况和安装路径,因此我无法对丢失的路径信息进行硬编码。 –

+0

请注意'DOCUMENT_ROOT'是_pretty_可靠的,但不适用于具有'VirtualDocumentRoot'指令的apache虚拟主机。 – Wrikken

相关问题