警告:socket_create():无法在 phpservermonitor 中创建套接字

警告:socket_create():无法在 phpservermonitor 中创建套接字

每次我点击更新按钮php服务器监控它给出了这个错误:

警告: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 行中给出布尔值

这里有一个文件,其中包含它给出的所有错误,但主要错误是那个,因为大多数错误(如果不是全部)都是由这个引起的。

这是一张包含所有错误的图片 (我知道不应该发布错误的图片,但我不想让帖子太大)

我转到第一个错误中所涉及的文件,但只能弄清楚错误已经告诉我的内容。第 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.6Ubuntu 18.04,如果您认为我最好写下整个错误列表,请告诉我,我会编辑该帖子。

编辑: 以下是启用套接字的 phpinfo

答案1

正如您所想,您可能需要启用套接字扩展。但是,您这样做的方式是错误的,因为您启用了一个名为的扩展,php_sockets.dll该扩展仅用于 PHP 的 Windows 安装。

动态链接库是共享库文件的Windows实现。

相反,在 Ubuntu 中,您可以使用命令启用扩展phpenmod <module>

例如,在您的情况下,运行以下命令。

sudo phpenmod sockets

并重新启动(或重新加载)Apache 以使更改生效。

sudo apache2ctl restart

相关内容