目前,我正在为ISP开发一个Web应用程序。我正在使用Mikrotik PHP API创建防火墙连接日志。我将所有条目添加到MySql数据库中。当我在笔记本电脑上基于Windows的XAMPP服务器上使用此脚本时,一切正常,但是当我上载Ubuntu脚本时,它说
“此页面无法使用” ... HTTP错误500 ...
其他带有$API->write();
的命令运行正常,但是此命令不起作用:
$API->comm("/ip/firewall/connection/print");
我在服务器计算机上使用Ubuntu 16.4。上面提到的命令在XAMPP(Windows)中有效,但在LAMP(Ubuntu 16.4)中无效。
完整的代码在这里:
<?php
include_once('key.php');
$mikrotik_ip = $ip;
$mikrotik_username = $user;
$mikrotik_password = $pass;
if ($API->connect($mikrotik_ip, $mikrotik_username,$mikrotik_password)) {
$log = $API->comm("/ip/firewall/connection/print");
$clog = count($log);
for($a=0;$a<=$clog;$a++){
$state = isset($log[$a]['tcp-state']) ? $log[$a]['tcp-state'] : '';
$src = $log[$a]['src-address'];
$src_rep = $log[$a]['reply-src-address'];
$dst = $log[$a]['dst-address'];
$dst_rep = $log[$a]['reply-dst-address'];
$prot = $log[$a]['protocol'];
mysqli_query($connect,"insert into cts(cts_id,src_address,reply_src_address,dst_address,reply_dst_address,protocol,tcp_state,date) values('','$src','$src_rep','$dst','$dst_rep','$prot','$state','".date("Y-m-d H:i:s")."')") or die(mysqli_error());
}
mysqli_close($connect);
}else{
echo 'Not Connected';
}
?>