[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Unable to bind address на Unix-сокет
Romio
то на чем все : vds ubuntu server 16.04, nginx+php7.0-fpm

При вызове функции socket_bind или socket_create_server используя unix-сокеты,
постоянно вылетают ошибки(permission denided, already in use, unknown error)
Например:

FastCGI sent in stderr: "PHP message: PHP Warning: stream_socket_server(): unable to connect to unix:///var/run/php-fpm.sock: (Unknown error) in /usr/share/nginx/html/index.php on line 2" while reading response header from upstream, client: xxx.xx.xxx.xx, server: xx.xx.xx.xx, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "xx.xxx.xx.xx"


FastCGI sent in stderr: "PHP message: PHP Warning: socket_bind(): unable to bind address [98]: Address already in use

Эту ошибку дает вот этот код:


server.php
<?php
error_reporting(E_ALL);
$address = '/run/php/php7.0-fpm.sock';
echo "Start";
//unlink($address);
$sock = socket_create(AF_UNIX, SOCK_STREAM, 0);
if (!is_resource($sock)) {
echo 'Не могу создать сокет: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
if (!socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo 'Unable to set option on socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
if (!socket_bind($sock, $address)) {
echo 'Не могу привязать сокет: '. socket_strerror(socket_last_error()) . PHP_EOL;
}
socket_close($sock);
?>

Со следующим кодом ошибка будет 0(unknown error)

<?php
$address = 'unix:/run/php/php7.0-fpm.sock';
$socket = stream_socket_server($address, $errno, $errstr);
if (!$socket) {
echo "$errstr ($errno)<br />\n";
} else {
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
fclose($conn);
}
fclose($socket);
}
?>

В строке

$address = 'unix:/run/php/php7.0-fpm.sock';

пробовал разные вариации..
unix:///run/php/php7.0-fpm.sock
/run/php/php7.0-fpm.sock

Сокет по сути уже существует(nginx+php7.0-fpm его создали). Права доступа проверял.
Может я его не правильно подключаю? Тупик!
В общем нужна помощь!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.