Intereting Posts
Портирование расшифровки C # AES 256 на PHP Отправка полученных заказов woocommerce дилерам, отправляющим уведомления по электронной почте Быстрый способ (или альтернативный путь) для динамической загрузки 40000 ссылок на карту изображения? Как отправить электронное письмо с помощью PHP? AngularJS и Codeigniter – Комбинация и передача данных Как сохранить значения из цикла foreach в массив? Невозможно избавиться от PHP-уведомлений в mPDF Предупреждение: mysql_connect (): доступ запрещен Как добавить двойную кавычку в значениях внутри переменной PHP и преобразовать ее в массив Как изменить первоначальную цену на странице продукта OpenCart? Есть ли способ, которым я применяю эту ошибку PHP, если я использую переменную uninitialized / undefined? Можно безопасно использовать $ mysqli-> insert_id для назначения темы для публикации в сценарии форума? Установка плагина Uploader для CakePHP 2.x Ошибка php cURL в facebook api Пул потоков PHP?

Класс ZMQContext не найден, даже если ZMQ установлен

Прежде всего, да, я знаю, что есть очень похожий вопрос, но ответ, данный там, не применим к моей ситуации, и нет никаких признаков того, что он также исправил проблему другого человека.

У меня есть ZMQ, установленный на моем сервере Apache, согласно руководству, содержащемуся в документации Racthet. Я приложил все к успеху после многих разочарований, и я готов привести пример. Простой PHP-скрипт помещается в post.php и имеет эту строку (после некоторых довольно тривиальных PHP, переменных установки и т. Д.):

 $context = new ZMQContext(); 

Тем не менее, это порождает эту ошибку:

 Fatal error: Class 'ZMQContext' not found in /home/lights/public_html/apps/post.php on line 12 

Я включил extension=zmq.so в конце моего только что используемого файла php.ini, как предлагала документация zeromq. Чтобы убедиться, что Apache загружает тот же php.ini, что и страница, я проверил. Apache дал мне точно такую ​​же информацию, как и phpinfo () на странице:

 Configuration File (php.ini) Path /usr/local/lib Loaded Configuration File /usr/local/lib/php.ini 

Из этого я пришел к выводу, что такая же ошибка должна появиться, если я запустил php post.php из терминала. Однако в этом случае ошибки не было показано – кажется, что код PHP сделал свою часть. Итак, я устранил единственную возможную причину, которую я нашел в своем поиске до сих пор, и я ищу альтернативу.

У кого-нибудь есть решение, предложение, идея, что-нибудь вообще, что могло бы помочь прояснить это?

Related of "Класс ZMQContext не найден, даже если ZMQ установлен"

Я не использовал ZMQ, но это похоже на проблему с конфигурацией.

Во-первых, запустите PHP в cli и в apache можете использовать разные php.ini

Например, в ubuntu 12.04:

 /etc/php5/apache2/php.ini is used for apache /etc/php5/cli/php.ini is used for cli 

Чтобы проверить, загружается ли ZMQ в apache, создайте php-файл, содержащий phpinfo(); и проверить его вывод через веб-браузер, должна быть некоторая информация о ZMQ, используйте ctrl-f для его поиска.

В cli php -m покажет загруженный / скомпилированный модуль или расширение.

Во-вторых, версия ZMQ

Я не могу думать о другой причине, чем вы использовали версию ZMQ, которая не имеет ZMQContext? Вы можете проверить документ ZMQ и версию, которую вы использовали.

(Удалено, не должно быть этой проблемы в соответствии с сообщением об ошибке), пространство имен

если ZMQ правильно загружен, а ваш код все еще не работает, другой возможной причиной является использование пространства имен. Если ваш post.php похож

 <?php namespace Some\NameSpace; $context = new ZMQContext(); 

Тогда это означает ZMQContext в пространстве имен Some \ NameSpace, полное quanlified имя класса – это Some \ NameSpace \ ZMQContext, которого не существует. Поэтому вам может понадобиться использовать \ZMQContext для класса из текущего пространства имен.

Если расширение включено, вам все равно необходимо использовать это:

 use \ZMQContext; use \ZMQ; 

(или, альтернативно, напрямую обращаться к ним с использованием ведущего «\»)

Перед использованием новых расширений вам необходимо перезапустить Apache. mod_php не добавляет модули во время выполнения

Если вы используете Wampserver, скопируйте файл libzmq.dll в C:\wamp64\bin\apache\apache2.4.17\bin и перезапустите wamp.