php调用c ++ socket函数导致权限被拒绝错误

时间:2011-03-09 13:58:31

标签: php c++ sockets permissions

我有一个PHP代码:

<?php
$res = "";
exec("./a.out>temp", $res);
print_r(error_get_last());
print_r($res);
?>

a.out是一个创建套接字的简单c ++程序。当我从浏览器调用这个PHP代码时,“临时”文件中会打印出“权限被拒绝”的错误。

我知道这是一个与apache用户权利相关的问题,但是如何解决呢?

注意:我已将stderr重定向到“temp”文件中,以便我可以看到错误。

感谢。

3 个答案:

答案 0 :(得分:3)

也许'www'(或apache)用户权限是问题所在。

另一种选择是套接字已经存在。

也许这是SE linux的一个问题(如果你在Linux上)

/usr/sbin/setsebool httpd_can_network_connect=1

来源:http://www.rkrishardy.com/2009/12/permission-denied-13-when-opening-socket-in-php-apache/

另外,php也可以做socket插件。

答案 1 :(得分:1)

试试这个

chmod 755 a.out
chmod 666 temp

答案 2 :(得分:1)

将您的用户更改为正在执行您的Apache的用户。例如:

su www-data

然后再次执行命令。