PHP - разные среды при запуске из командной строки против цирка

У нас есть ситуация, когда мы используем circusd для управления процессами и, так или иначе, PHP загружает разные библиотеки (в частности, curl) при вызове из цирка вместо командной строки.

Из командной строки:

{ "Номер_версия":473344,"возраст":4,"особенность":2736797 "ssl_version_number":0,"Версия":"7.57.0","хозяин":"x86_64-рс-Linux-гну","ssl_version":"OpenSSL/1.1.0g","libz_version":"1.2.8","протоколы":["Словарь", "файл", "FTP", "ФСНП", "суслик", "HTTP", "HTTPS", "IMAP", "IMAPS", "LDAP", "LDAPS","pop3","POP3S", "RTSP", "кому-л", "ВРМБ", "SMTP", "SMTPs", "Telnet ", "TFTP"]}

Из цирка:

{ "Номер_версия":472321,"возраст":3,"особенность":4163485 "ssl_version_number":0,"Версия":"7.53.1","хозяин":"x86_64-RedHat-Linux-гну","ssl_version":"NSS/3.28.4","libz_version":"1.2.8","протоколы":["Словарь", "файл", "FTP", "ФСНП", "суслик", "HTTP", "HTTPS", "IMAP", "IMAPS", "LDAP", "LDAPS","pop3","POP3S", "RTSP", "УПП", "SFTP", "кому-л", "SMBS", "SMTP ", "SMTPS", "Telnet", "TFTP"]}

У нас установлены две версии curl - я не могу удалить более старую версию, поскольку yum и другие системные процессы полагаются на нее, но мне нужна более новая, поддерживающая HTTP/2.

У меня вопрос: как заставить PHP использовать более новую библиотеку? Это отлично работает в нашей тестовой среде (т.е. и библиотеки, и PHP видят более новую), поэтому я предполагаю некоторую проблему с путями.

1 ответ

Скорее всего, php использует разные файлы php.ini для разных сред. Самый простой способ - использовать php -i или phpinfo(); точно определить, какой файл php.ini используется в каждой среде. Это должно привести вас к тому, чтобы оба использовали одну и ту же версию curl. Это может быть так же просто, как создать символическую ссылку из правильного php.ini туда, где был неправильный. Удачи!

Другие вопросы по тегам