php shell_exec()正在执行,但我没有看到结果

时间:2017-11-20 21:11:35

标签: php git shell-exec

我知道这可能听起来很奇怪,或者可能是一个重复的问题,但已搜索过,找不到任何可能的解决方案。

我想将我的代码从bitbucket自动部署到我的服务器。我创建了一个ssh密钥并将它们链接起来,创建了一个代码所在的裸git文件夹,然后创建了一个包含实时网站的生产文件夹。我向bitbucket添加了一个webhook,它应该在我运行推送到我的存储库的任何时候执行。我现在的挑战是,脚本已执行但我没有看到任何更改,但如果我在控制台中手动编写命令,一切正常。请帮忙。我正在使用debian 9操作系统运行Linode服务器。 这是我的部署脚本中的代码。请帮我。我现在已经有4天了。

<?php
$repo_dir = '/var/www/git/_ku1bo__c_plus_z_.git';
$web_root_dir = '/var/www/html/kobuplus.com/public_html';
$git_path = '/usr/bin/git';
exec("cd $repo_dir" && "$git_path fetch");
exec("cd $repo_dir" && "GIT_WORK_TREE=$web_root_dir $git_path checkout -f");
file_put_contents("deploy.log", date("m/d/Y h:i:s a") . "deployed latest branch" . "\n", FILE_APPEND);
?>

2 个答案:

答案 0 :(得分:0)

您错误地加入了字符串,请尝试以下操作:

<?php
$repo_dir = '/var/www/git/_ku1bo__c_plus_z_.git';
$web_root_dir = '/var/www/html/kobuplus.com/public_html';
$git_path = '/usr/bin/git';
exec("cd " . $repo_dir . $git_path . " fetch");
exec("cd $repo_dir GIT_WORK_TREE=$web_root_dir $git_path checkout -f");
file_put_contents("deploy.log", date("m/d/Y h:i:s a") . "deployed latest branch" . "\n", FILE_APPEND);
?>

答案 1 :(得分:0)

- &GT;使用此命令运行该文件以查看其行为(使用SSH命令行界面):

php absolute_path_of_the_file 

- &GT;如果收到此错误:Permission denied (publickey),请确保已将SSH密钥添加到存储库设置。