Предупреждение: socket_create (): невозможно создать сокет [1] в phpservermonitor

Каждый раз, когда я нажимаю кнопку update в phpservermonitor , появляется эта ошибка:

Предупреждение: socket_create (): невозможно создать сокет [1]: операция не разрешена в /var/www/html/phpservermon/src/psm/Util/Server/Updater/StatusUpdater.php в строке 154

Предупреждение: socket_set_option () ожидает, что параметр 1 будет ресурсом, логическое значение задано в /var/www/html/phpservermon/src/psm/Util/Server/Updater/StatusUpdater.php в строке 155

вот файл со всеми ошибками, которые он дает out, но основная из них - та, так как большинство ошибок, если не все, вызваны этой ошибкой.

Это изображение со всеми ошибками (я знаю, что не следует публиковать изображения ошибок, но я не хотел делать сообщение слишком большим)

Я перешел к рассматриваемому файлу в первая ошибка, но я мог понять только то, о чем мне уже говорила ошибка. Эта строка 154 (первая строка в следующем коде) не возвращалась так, как должна .

$socket  = socket_create(AF_INET, SOCK_RAW, 1);
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 10, 'usec' => 0));
socket_connect($socket, $this->server['ip'], null);        
socket_send($socket, $package, strLen($package), 0);
if (socket_read($socket, 255)) {
    $this->rtime =  microtime(true) - $starttime;
    $status = true;
} else {
    $status = false;
}
socket_close($socket);

Пытался перейти на php.ini и включить сокеты , но ничего не изменилось

; Я удалил на php.ini:

;extension=php_soap.dll
extension=php_sockets.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll

PS: Я использую php5.6 и ubuntu 18.04 , также, если вы думаете, что лучше я просто напишу весь список ошибок говорят, что я отредактирую пост.

Изменить: Вот phpinfo, в котором разрешены сокеты

0
задан 10 May 2019 в 16:41

1 ответ

Как вы уже поняли, вам может потребоваться включить расширение сокетов. Однако то, как вы это сделали, неверно, поскольку вы включили расширение с именем php_sockets.dll, которое используется только для установки PHP в Windows.

DLL является реализацией файлов общих библиотек в Windows.

Вместо этого в Ubuntu вы включаете расширение с помощью команды phpenmod <module>.

Например, в вашем случае выполните следующую команду.

sudo phpenmod sockets

И перезапустите (или перезагрузите) Apache, чтобы изменения вступили в силу.

sudo apache2ctl restart
0
ответ дан 10 May 2019 в 16:41

Другие вопросы по тегам:

Похожие вопросы: