функции сокета php не найдены

#php #sockets #command-line

#php #сокеты #командная строка

Вопрос:

Хэзи, я пытаюсь использовать программирование сокетов, мне нужен фоновый сервис. Я попробовал простой пример:

  if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
     echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "n";
  

если я попробую это в браузерах, это сработает…
но с php.exe в командной строке это не работает … написано, что socket_create() не существует. Но сокеты включены. Что теперь? У меня нет другого php.ini в каталоге Windows

Комментарии:

1. Вы уверены, что php_sockets. dll-файл существует?

Ответ №1:

Командная строка php.exe возможно, используется другой php.ini, чем php-модуль, используемый Apache, поэтому расширение sockets не загружается для командной строки.

Попробуйте выполнить php.exe -i , чтобы увидеть, какой php.ini он использует, и включите соответствующее расширение там.

Комментарии:

1. то же самое. Я скопировал туда свой php.ini, он выдает кучу предупреждений и завершается сбоем

2. это был easyphp (похоже на WAMPP). Он содержит два php.ini, один из которых является основным, а другой — копией с небольшими изменениями. Мне просто пришлось скопировать одну из них в каталог Windows.