php netssh,php – 无法从Apache内部与Net_SSH2连接

我试图从

PHP SSH,但我收到以下错误:

注意:无法连接到[host].错误13.

第875行/usr/share/php/Net/SSH2.php中的权限被拒绝

这是代码:

error_reporting(E_ALL);

ini_set('display_errors', TRUE);

include_once('Net/SSH2.php');

define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX);

$ssh = new Net_SSH2($host);

if( $ssh->login($id, $pw) )

{

error_log("logged");

$result['data'] = $ssh->exec('dir');

}

else

{

error_log( $ssh->getLog() );

}

?>

但是当我从命令行运行这个相同的代码与apache混合使用它运行正常.

我有一个与使用paramiko到SSH的python脚本完全相同的问题,并从apache调用.它从命令行运行良好但在apache中从PHP调用时失败并出现权限错误.使用这个脚本只是一个测试; python不会在最终解决方案中使用.

那么,为什么SSH在apache之外工作但不在内部?我已经使用su从命令行运行PHP代码作为apache,这也有效,因此它不是用户权限问题.

更新:

答案是:

setsebool -P httpd_can_network_connect=1

基本上,apache无权启动网络连接!?!?

我忽略了提到这是在CentOS系统上,因此在SELinux的监视下,我的错误.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值