我在GoDaddy上有一个服务器和一个域名
我想为上传到Google Drive上的文件创建备份
所以我所有的文件和数据库都在谷歌硬盘上
我对我的数据库使用PHP和MySQL
经过一些研究,我发现“用PHP自动将您的web服务器文件备份到GoogleDrive”,并照他说的做了
我已经从BackupGoogleDrive存储库下载了文件GoogleAPI php客户端
我有一个客户ID,客户机密和一个身份验证码
我编辑了setting.inc,并将我自己的客户端ID,客户端密码和身份验证码。我还输入了我的MySQL用户名、密码和主机名
在这个页面backuptogoogledrive它应该创建一个.tar.gz文件夹,这个文件夹应该包含我的网站文件。然后,这个文件夹应该上传到我的谷歌硬盘,并对我的数据库做同样的事情
<;?php
设置时间限制(0);
ini_集合(“内存限制”,“1024M”);
require_once(“google-api-php-client/src/google_-client.php”);
require_once(“google-api-php-client/src/contrib/google_-DriveService.php”);
包括(“settings.inc.php”);
如果($authCode==“”)死亡(“您需要先运行getauthcode.php!\n\n”);
/*准备要上载的文件*/
//使用当前日期/时间作为唯一标识符
$uid=日期(“YmdHis”);
//创建tar.gz文件
shell_exec(“cd“$homedir.”和tar cf-“$sitedir.”-C“$homedir.”gzip-9>;“$homedir.$fprefix.$uid.”.tar.gz”);
//转储数据基
shell_exec(“mysqldump-u..$dbuser.-p..$dbpass...$dbname.>;”$homedir.$dprefix.$uid..sql”);
shell_exec(“gzip”$homedir.$dprefix.$uid..sql”);
/*将文件发送到GOOGLEDRIVE*/
$client=新的Google_客户端();
//从API控制台获取您的凭据
$client->;setClientId($clientId);
$client->;setClientSecret($clientSecret);
$client->;setRedirectUri($requestURI);
$client->;固定示波器(阵列)https://www.googleapis.com/auth/drive"));
$service=新的谷歌驱动服务($client);
//访问令牌的交换授权代码
如果(!file_存在(“token.json”)){
//保存令牌以备将来使用
$accessToken=$client->;身份验证($authCode);
文件内容(“token.json”,$accessToken);
}
else$accessToken=file_get_contents(“token.json”);
$client->;setAccessToken($accessToken);
//上传文件到谷歌硬盘
$file=new Google_DriveFile();
$file->;setTitle($fprefix.uid..tar.gz”);
$file->;setDescription(“服务器备份文件”);
$file->;setMimeType(“应用程序/gzip”);
$data=file_get_contents($homedir.$fprefix.$uid..tar.gz);
$createdFile=$service->;文件->;插入($file,array('data'=>;$data,'mimeType'=>;'application/gzip',);
//在这里处理响应。。。。
打印文件($createdFile);
//将数据库上载到Google Drive
$file=new Google_DriveFile();
$file->;setTitle($dprefix.uid..sql.gz”);
$file->;setDescription(“数据库备份文件”);
$file->;setMimeType(“应用程序/gzip”);
$data=file_get_contents($homedir.$dprefix.$uid..sql.gz);
$createdFile=$service->;文件->;插入($file,array('data'=>;$data,'mimeType'=>;'application/gzip',);
//在这里处理响应。。。。
打印文件($createdFile);
/*清理*/
//删除创建的文件
取消链接($homedir.$fprefix.$uid..tar.gz”);
取消链接($homedir.$dprefix.$uid..sql.gz”);
?>;
现在的问题是,我有两个文件夹用于数据库,没有问题,还有一个文件夹用于文件。但此文件夹上没有任何文件
我怎样才能解决这个问题
//用户主目录(绝对)
$homedir=“/home/mhmd2991/public_html/”;//如果这不起作用,您可以自己提供完整的路径
//站点目录(相对)
$sitedir=“public_html/”;
备份脚本似乎无法找到存储站点文件的目录
引用您进行备份时遵循的教程:
//用户主目录(绝对)
$homedir=修剪(shell_exec(“cd~&;pwd”)。“/”;/如果这不起作用,您可以自己提供完整的路径
//站点目录(相对)
$sitedir=“www/”;
首先确保正确设置了$sitedir与站点文件目录的相对路径(从主目录)
它可能不同于www/,例如,对于托管在GoDaddy上的网站而言,它可能是public\u html/
如果上述内容正确,请尝试使用主目录的绝对路径手动设置$home变量
更新
$homedir是主目录,$sitedir是相对于$homedir
因此,查看您发布的代码,很可能存在错误,这两个变量应该是:
//用户主目录(绝对)
$homedir=“/home/mhmd2991/”;//<;——固定在这里
//站点目录(相对)
$sitedir=“public_html/”;
这假设您的网站根目录是public\u html,并且位于主目录mhmd2991
再次确保您的网站根目录实际上是public\u html,而不是www或html或其他任何内容。使用终端检查它