dougan6402 2012-09-11 13:22
浏览 160
已采纳

php运行git得到“ssh Permission denied”

I'm trying to run git pull in a php script from a browser, but I got "sh: connect to host git.assembla.com port 22: Permission denied"

my php script:

<?php
$output=array();
$returnVar=0;
chdir("/var/www/html");
exec('git pull git@git.assembla.com:andrewadel.git master 2>&1', $output , $returnVar);
// exec('pwd', $output , $returnVar);
echo "<pre>
";
echo "return status: $returnVar

";
print_r($output);
echo "</pre>
";

when I manually run the script as "apache", everything is fine

bash-4.1$ whoami
apache
bash-4.1$ php gitsync.php
<pre>
return status: 0

Array
(
    [0] => From git.assembla.com:andrewadel
    [1] =>  * branch            master     -> FETCH_HEAD
    [2] => Already up-to-date.
)
</pre>

When I run it from a browser, it fails

http://103.7.164.33/gitsync.php?111

return status: 1

Array
(
    [0] => ssh: connect to host git.assembla.com port 22: Permission denied
    [1] => fatal: The remote end hung up unexpectedly
)

Thanks

  • 写回答

4条回答 默认 最新

  • dongshan2004 2012-09-19 06:40
    关注

    A lot of variables here... but I faced pretty much exact same behavior with a remote cgi script I was working on.

    In my case the issue was related to SELinux on CentOS.

    user@remoteserver:~$ getsebool -a | grep httpd

    Showed:

    ...
    httpd_can_network_connect --> off
    ...
    

    Test Possible Fix(sudo or run as root):

    user@remoteserver:~$ setsebool httpd_can_network_connect=1
    //...then initiate your serverside script remotely
    

    Permanent Fix(if above has proven effective):

    user@remoteserver:~$ setsebool -P httpd_can_network_connect=1

    -P option ensures subject SELinux boolean value is set to specified value as default on future reboots. See: man getsebool and man setsebool

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)