0

我在创建套接字程序时遇到问题。

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('localhost');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
------------------

当我运行一个程序时,我得到这样的错误

1
Fatal error: Call to undefined function socket_create() in /opt/local/apache2/htdocs/php/TCPclient.php on line 14

我认为那个错误是因为我没有启用extension=php_sockets.dll

但是当我尝试找到 php.ini 时我没有找到 php.ini 我只是找到了 php.ini-development 和 php.ini-production,我更改了该文件以启用extension=php_sockets.dll但是当我再次尝试运行我的程序时'我仍然得到同样的错误,

有谁知道是什么问题?我给了我本地的 phpinfo,我仍然担心 phpinfo 中的配置文件没有,是否丢失了?感谢您的回答。 php信息

4

4 回答 4

2

看起来您正在 Mac OS 上运行 PHP。如果这是使用 macports 安装的,请运行以下命令

sudo port install php5-sockets
于 2012-04-13T09:36:10.340 回答
1

我在这里看到两件不同的事情:

  1. 您认为扩展名采用 .dll 格式。其实就是窗户。您没有运行 Windows。

  2. 您正在运行一个 UNIXoide 系统 一个常见的事情是接下来有一个配置文件,其中还有包含更多配置文件的文件夹,因此,如果通过所有配置目录递归扫描,这将创建一个基于多个文件的配置数据库。是的!摇滚!但是,问题是,你有很多东西要检查你的 phpinfo(如果你到目前为止还没有注意到的话):

    • 配置文件 (php.ini) 路径- 这是配置的主要配置文件。
    • 加载的配置文件- 这是实际加载的主要配置文件。
    • 扫描此目录以获取其他 .ini 文件- PHP 也在此处查看。
    • 已解析的其他 .ini 文件- 这些文件也已实际加载。

所以好好看看所有这些设置,真的,真的要小心不要混在一起。PHP 配置记录在 PHP 手册中。

检查文档扩展是什么,如何安装等。这取决于您的系统和软件管理。

于 2012-04-13T09:41:04.833 回答
0

这是一个相当公平的假设。我敢肯定,因为在您的机器上找不到 php.ini,您有安装问题。

您使用的是什么网络服务器?您是安装 Apache 还是使用 IIS 来支持 PHP?

您的快照不包含 --enable-sockets 选项,也不包含加载的配置文件 (php.ini)。

于 2012-04-13T09:31:12.130 回答
0

由于您在 Mac 上运行,因此无法使用 dlla。您可以使用套接字支持编译 php 或尝试 Xampp

http://www.apachefriends.org/en/xampp-macosx.html

于 2012-04-13T09:32:56.843 回答