转换为Plesk服务器后,include()失败

时间:2014-09-25 04:08:13

标签: php

我刚刚将数据库切换到GoDaddy上的Plesk服务器。现在,我的连接脚本包含失败并出现此错误:

  

PHP警告:include(/rev/scripts/connection.php):失败   open stream:没有这样的文件或目录   G:\ PleskVhosts \ mysite.com \的httpdocs \转\ db_administration \ complete_backup.php   第5行PHP警告:include():打开失败   ' /rev/scripts/connection.php'包括在内   (包含路径='。。\包括; \梨&#39)

我不确定为什么要提前付款' G:\ PleskVhosts \'到网址或即使这是崩溃它。谁能告诉我我做错了什么?这段代码已经工作了很长时间,所以我不知道为什么需要用新服务器进行更改。

对我来说,奇怪的是如果我从浏览器(包括下面的编辑)运行它,它就可以了。但是我需要从预定的任务中运行,并且我在哪里得到错误。

以下是代码:

<?php

    $path = $_SERVER['DOCUMENT_ROOT'];
    $connection = $path . '/rev/scripts/connection.php';
    include ($connection);

    echo "success";
?>

编辑:根据下面的建议,我将我的代码更改为此,允许它从浏览器运行。但我仍然无法让它从预定的任务中运行:

$path = !empty($_SERVER['SUBDOMAIN_DOCUMENT_ROOT']) ? $_SERVER['SUBDOMAIN_DOCUMENT_ROOT'] : $_SERVER['DOCUMENT_ROOT'];

1 个答案:

答案 0 :(得分:1)

查看错误消息... include(/rev/scripts/connection.php) ...中的包含路径,看起来$path是一个空字符串。一些谷歌搜索显示,GoDaddy并不总是正确地为其某些附加域和子域翻译$_SERVER['DOCUMENT_ROOT'];。尝试将$_SERVER['DOCUMENT_ROOT']替换为$_SERVER['SUBDOMAIN_DOCUMENT_ROOT'];

所以基本上添加,

$path = !empty($_SERVER['SUBDOMAIN_DOCUMENT_ROOT']) ? $_SERVER['SUBDOMAIN_DOCUMENT_ROOT'] : $_SERVER['DOCUMENT_ROOT'];

$path = dirname(__FILE__); // this might or might not work.

<强>更新

尝试从计划任务(可能是通过$_SERVER)运行此操作时,

cron将无效。试试这个:

define('DOCUMENT_ROOT', substr(str_replace(pathinfo(__FILE__, PATHINFO_BASENAME), '', __FILE__), 0, -1));

对于cron作业,它应该为您提供与$_SERVER['DOCUMENT_ROOT']相同的数据。