【问题标题】:How to enable Socket in PHP?如何在 PHP 中启用 Socket?
【发布时间】:2010-11-24 14:50:25
【问题描述】:

谁能告诉我如何在 PHP 中启用 SOCKET 支持?

【问题讨论】:

    标签: php sockets


    【解决方案1】:

    此答案假定您确实有一个可访问的 php_sockets.dll 扩展文件(在您的 PHP 安装扩展目录或需要的地方);

    如果您使用的是 Windows,只需在您的 php.ini 文件中取消注释以下行:

    ;extension=php_sockets.dll
    

    如果您缺少php_sockets.dll,可以从php.net 下载。

    【讨论】:

    • 我有一台运行网站的 linux godadday 机器。如何在那里启用套接字编程?
    • @user1051505 您可能会发现 GoDaddy 论坛中的 this discussion 会有所帮助。
    • 我正在使用 XAMPP,但我收到了 "Call to undefined function socket_create()..." 错误。虽然我有php_sockets.dll 文件,但extension=php_sockets.dll 并未添加到php.ini。我不得不手动添加它。现在,它正在工作。
    • 在 xampp 服务器中,它的 ;extension=sockets。这有帮助。
    【解决方案2】:

    此处描述的套接字函数是 PHP 扩展的一部分,必须在编译时通过提供 --enable-sockets 选项进行配置来启用。

    来自extension's documentation

    【讨论】:

      【解决方案3】:

      对于那些在安装 RabbitMQ php 库时遇到此问题的人

      问题 1

      • php-amqplib/php-amqplib ^2.11 的安装请求 -> 可满足 通过 php-amqplib/php-amqplib[v2.11.0]。
      • php-amqplib/php-amqplib v2.11.0 需要 ext-sockets * -> 您的系统中缺少请求的 PHP 扩展套接字。

      解决方案

      通过 php.init 将 ;extension=sockets 更改为 extension=sockets

      Screenshot

      注意事项:

      不是sockets.dll,只有sockets

      【讨论】:

      • 好吧,我没有用这个答案解决我的类似问题,但是这个答案是真的,我解决了它然后看到了这个答案。傻我:)
      • 嘿兄弟,谢谢你的评论,是的,让我们解决更多问题。
      • 请注意,它可能位于单独的 .ini 文件中。您可以使用php --ini 列出所有加载的文件。就我而言,我在20-sockets.ini.
      【解决方案4】:

      PHP Docker 镜像附带 3 个帮助脚本命令,可以更轻松地安装和配置扩展:

      • docker-php-ext-configure:此命令允许您提供 扩展的自定义参数。
      • docker-php-ext-install:用这个 在容器中安装新扩展的命令。
      • docker-php-ext-enable:该命令可用于启用PHP 扩展名。

      运行

      docker-php-ext-install sockets
      

      参考:https://confluence.atlassian.com/bitbucket/php-with-bitbucket-pipelines-873907835.html#PHPwithBitbucketPipelines-InstallandenablePHPextensions

      【讨论】:

      • 如果您使用 docker,这是正确的答案
      • 这显示了很多错误。 /usr/src/php/ext/sockets/sendrecvmsg.c:128:19: 错误: 'sizeof' 的无效应用, /usr/src/php/ext/sockets/sendrecvmsg .c:129:36: error: 'SCM_CREDS' undeclared, 最后:make: *** [Makefile:213: sendrecvmsg.lo] Error 1 (PHP 8.1 x64 )
      【解决方案5】:

      这里是新手说明

      • 在windows中进入你的php安装目录,可能是这样的c:\xampp\php

      • 里面的goto ext方向php\ext\

      • 检查您的目录中是否有 php_sockets.dll
      • 之后打开 php.ini 文件,该文件将在您的 php 文件夹中
      • 接下来搜索;extension=php_sockets.dll

      如果你找到它,然后从中删除 ;

      如果找不到,请搜索extension=

      然后在一些扩展名下添加extension=php_sockets.dll

      • 最后重新启动您的 apache。

      【讨论】:

      • 在 xampp 最新版本中你会发现 ;extension=sockets not this ;extension=php_sockets.dll 所以你需要删除 ;从 ;extension=sockets 并重新启动你的 apache。
      猜你喜欢
      • 2021-10-29
      • 2013-07-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      相关资源
      最近更新 更多