grpc, пример php, «Класс Grpc \ ChannelCredentials не найден». при открытии из браузера работает с терминала

У меня такая проблема:

Я установил grpc и получил данный пример (https://grpc.io/docs/languages/php/quickstart/) для работы с PHP из терминала (Windows PowerShell), в котором запущен файл run_greeter_client.sh (а также тот же файл с изменениями, упомянутыми в ссылке, для отправки двух сообщений Hello World вместо одного. ). Я также добавил extension = grpc.so в файл php.ini, поэтому я могу даже запустить его с терминала, используя инструкцию php greeter_client.php. Я использую инструкцию node. \ Greeter_server.js для запуска сервера. Вместо этого, когда я пытаюсь запустить файл php из браузера, он показывает, что у меня HTTP ERROR 500, и когда я проверил журналы, я обнаружил следующее:

PHP Fatal error:  Uncaught Error: Class 'Grpc\ChannelCredentials' not found 
in D:\MAMP\grpc\grpc\examples\php\greeter_client.php:30
Stack trace:
#0 D:\MAMP\grpc\grpc\examples\php\greeter_client.php(50): 
greet('localhost:50051', 'world')
#1 {main}
  thrown in D:\MAMP\grpc\grpc\examples\php\greeter_client.php on line 30

Это кажется странным, потому что, когда я запускаю его из PowerShell (терминала) с помощью команды PHP, он работает правильно и показывает 2 сообщения Hello World, но в браузере возникает эта проблема (с использованием того же узла js-сервера из другого PowerShell). Вы хоть представляете, в чем может быть проблема?

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


person Eva Anastasiadi    schedule 18.11.2020    source источник
comment
Можете ли вы поместить ошибки в блоки кода.   -  person Abhigyan Jaiswal    schedule 18.11.2020
comment
Отредактировал, думаю теперь ошибка в блоках кода. Спасибо!   -  person Eva Anastasiadi    schedule 18.11.2020
comment
Я не думаю, что вы можете просто запустить код .php в браузере. Браузеры не могут интерпретировать или запускать код .php.   -  person Stanley Cheung    schedule 21.11.2020
comment
Мы можем запускать файлы PHP с помощью таких инструментов, как MAMP, xampp и т. Д. Из браузера в режиме локального хоста. Я попытался запустить простой файл .php из браузера, и он действительно запускается и дает соответствующий результат (например, файл test.php, который находится на том же пути, что и greeter_client.php, работает правильно и печатает Hello World на браузер с эхом).   -  person Eva Anastasiadi    schedule 21.11.2020


Ответы (1)


Я наконец решил проблему: всякий раз, когда я запускаю файл с терминала, существует определенное место для используемого им файла php.ini, которое я уже изменил, включив расширение grpc. Хотя я ошибался насчет местоположения файла php.ini, который используется, когда я запускаю его из браузера. Если вы столкнулись с подобной проблемой, вы можете просмотреть страницу phpinfo в своем браузере и найти файл php.ini по пути, указанному в поле «Загруженный файл конфигурации». Спасибо!

person Eva Anastasiadi    schedule 01.12.2020