#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.