我编写了一个 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");
?>
我检查过:
- PHP 没有在安全模式下运行 (
safe_mode = Off
); - 当我关闭 IP 地址并返回(如预期的那样)时,该命令执行良好
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