Php 转换到Plesk服务器后include()失败
我刚把一个数据库切换到GoDaddy上的Plesk服务器。现在,我的连接脚本include失败,出现以下错误: PHP警告:include(/rev/scripts/connection.PHP):未能 open stream:中没有此类文件或目录 G:\PleskVhosts\mysite.com\httpdocs\rev\db\u administration\complete\u backup.php 第5行PHP警告:include():打开失败 “/rev/scripts/connection.php”以供包含 (包括路径='。;。\includes;\pear') 我不知道为什么它会在url前加上“G:\PleskVhosts\”,甚至不知道这是不是让它崩溃的原因。谁能告诉我我做错了什么?这段代码已经运行了很长时间,所以我不知道为什么需要在新服务器上进行更改 对我来说奇怪的是,如果我从浏览器(包括下面的编辑)运行它,它就会工作。但是我需要从计划的任务中运行它,这就是我得到错误的地方 代码如下:Php 转换到Plesk服务器后include()失败,php,Php,我刚把一个数据库切换到GoDaddy上的Plesk服务器。现在,我的连接脚本include失败,出现以下错误: PHP警告:include(/rev/scripts/connection.PHP):未能 open stream:中没有此类文件或目录 G:\PleskVhosts\mysite.com\httpdocs\rev\db\u administration\complete\u backup.php 第5行PHP警告:include():打开失败 “/rev/scripts/connec
<?php
$path = $_SERVER['DOCUMENT_ROOT'];
$connection = $path . '/rev/scripts/connection.php';
include ($connection);
echo "success";
?>
查看错误消息
中的包含路径。。。include(/rev/scripts/connection.php).
,看起来$path
是一个空字符串。谷歌搜索显示,GoDaddy并不总是翻译$\u服务器['DOCUMENT\u ROOT']对于某些附加域和子域,代码>正确。尝试将$\u服务器['DOCUMENT\u ROOT']
替换为$\u服务器['SUBDOMAIN\u DOCUMENT\u ROOT']代码>
所以本质上是加上,
$path = !empty($_SERVER['SUBDOMAIN_DOCUMENT_ROOT']) ? $_SERVER['SUBDOMAIN_DOCUMENT_ROOT'] : $_SERVER['DOCUMENT_ROOT'];
或
更新
$\u服务器
在尝试从计划任务(可能是通过cron
)运行此任务时无法工作。试试这个:
define('DOCUMENT_ROOT', substr(str_replace(pathinfo(__FILE__, PATHINFO_BASENAME), '', __FILE__), 0, -1));
它应该为cron作业获取与$\u SERVER['DOCUMENT\u ROOT']
相同的数据。包含路径错误谢谢,但我不明白你的意思。怎么会这样?@usr55410很高兴它能起作用。我也可以投赞成票吗?:)谢谢好吧,这很奇怪。当我从浏览器运行脚本时,它可以工作。但是我需要从他们预定的任务中运行这个。当我从那里调用它时,我得到了这些相同的错误。有什么想法吗?没有。他们的服务器路径的工作方式有些奇怪。假设您在web服务器之外运行计划任务,比如使用cron
,则有理由不设置$\u server
,因为没有服务器。我同意。我通过使用相对路径解决了这个问题。在这种情况下,我认为这是唯一可行的办法。谢谢你的帮助。
$path = dirname(__FILE__); // this might or might not work.
define('DOCUMENT_ROOT', substr(str_replace(pathinfo(__FILE__, PATHINFO_BASENAME), '', __FILE__), 0, -1));