Intereting Posts

PHP и RAW SOCKETS на Linux

Достаточно ли этого сделать

sudo setcap cap_net_raw=eip /usr/bin/php5 

чтобы использовать RAW SOCKETS в PHP (не CLI) в Linux?

Если да, то хорошо он не работает (но начал работать в CLI, но не использовал Apache)

Поэтому, я думаю, я должен предоставить эти права на Apache, но я не мог понять, как это сделать.

Вы можете мне помочь?

ошибки из скрипта PHP: Warning: socket_create(): Unable to create socket [1]: Operation not permitted in

скрипт php:

 $package = "\x08\x00\x7d\x4b\x00\x00\x00\x00PingHost"; $socket = socket_create(AF_INET, SOCK_RAW, 1); if ($socket !== false) { socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 10, 'usec' => 0)); echo 'Creating PING Socket !'; socket_connect($socket, gethostbyname('noczone.com'), null); socket_send($socket, $package, strLen($package), 0); if (socket_read($socket, 255)) { $result = microtime(true) - $ts; } else { echo 'Error Code : No PING'; } socket_close($socket); } else { echo 'Failed Creating PING Socket !'; } 

    Вы пробовали: sudo setcap cap_net_raw=eip $(which httpd) ?

    Какая ошибка вы получаете?

    Скорее всего, интерпретатор PHP реализован как модуль в Apache (вы можете видеть это из php_sapi_name () или константы PHP_SAPI в PHP или из файла httpd ini).

    В этом случае вам нужно предоставить исполняемый файл httpd.