我刚刚将数据库切换到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'];
答案 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']
相同的数据。