Czy wystarczy zrobićPHP i gniazd RAW na linux
sudo setcap cap_net_raw=eip /usr/bin/php5
aby móc używać gniazd RAW w PHP (nie CLI) w Linuksie?
Jeśli tak, to dobrze, że nie działa (ale rozpoczął pracę w CLI, ale nie przy użyciu Apache)
Sądzę więc, że muszę dać te uprawnienia do Apache, jak również, ale nie mogę dowiedzieć się, w jaki sposób .
Czy możesz mi pomóc?
błędy ze skryptu PHP: Warning: socket_create(): Unable to create socket [1]: Operation not permitted in
skrypt 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 !';
}
Przede wszystkim musisz upewnić się, że twój PHP został skompilowany z gniazdami http://www.php.net/manual/en/sockets.installation.php Jeśli tak, to świetnie. Jakie błędy dostałeś? Upewnij się, że włączasz raportowanie błędów: display_errors ("On"); ini_set ('error_reporting', 'E_ALL'); a następnie ponownie uruchom skrypt. Czy mógłbyś zaktualizować swoje pytanie za pomocą otrzymanych błędów? – DarkMantis
'Ostrzeżenie: socket_create(): Nie można utworzyć gniazda [1]: Operacja niedozwolona w' –
Czy masz wyłączone funkcje w pliku php.ini, czy też jest wyłączona funkcja safe_mode? – DarkMantis