我编写了一个C程序,通过查找大型CSV数据库将IP地址转换为国家/地区。我试图通过shell_exec
来调用它,但是出了点问题。
<?php
error_reporting(E_ALL);
ini_set('display_errors','1');
set_time_limit(0);
$ipaddress = $_SERVER['REMOTE_ADDR'];
$country = shell_exec("/var/www/html/ip2country/ip2country $ipaddress");
?>
我查了一下:
safe_mode = Off
); Usage: ip2country IPAddress
时,命令执行正常 - 所以我认为它不是权限; set_time_limit
设置为0
所以就我所知,这不是暂时性的事情。我做错了什么?
[这可能更像是Linux的东西而不是PHP的东西。]
测试命令的输出:
[root@rhel ip2country]# /var/www/html/ip2country/ip2country 4.2.2.2
United States
[root@rhel ip2country]# sudo -u apache /var/www/html/ip2country/ip2country 4.2.2.2
United States
[user@rhel ip2country]$ sudo -u apache /var/www/html/ip2country/ip2country 4.2.2.2
// No output whatsoever
[user@rhel ip2country]$ sudo -u apache /var/www/html/ip2country/ip2country
Usage: /var/www/html/ip2country/ip2country IPAddress
答案 0 :(得分:0)
尝试执行whoami
而不是您的程序,然后,当您知道用户用于收集它时,请检查他是否具有适当的权限。
如果你说,没有IP它可以正常工作,那么,我想,你使用一些数据库或文件来查找IP。也许这个用户无法访问该数据库或文件。