Назад | Перейти на главную страницу

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

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

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

{"version_number": 473344, "age": 4, "features": 2736797, "ssl_version_number": 0, "version": "7.57.0", "host": "x86_64-pc-linux-gnu", " ssl_version »:« OpenSSL / 1.1.0g »,« libz_version »:« 1.2.8 »,« протоколы »: [« dict »,« файл »,« ftp »,« ftps »,« gopher »,« http », «https», «imap», «imaps», «ldap», «ldaps», «pop3», «pop3s», «rtsp», «smb», «smbs», «smtp», «smtps», «telnet» "," tftp "]}

Из цирка:

{"version_number": 472321, "age": 3, "features": 4163485, "ssl_version_number": 0, "version": "7.53.1", "host": "x86_64-redhat-linux-gnu", " ssl_version »:« NSS / 3.28.4 »,« libz_version »:« 1.2.8 »,« протоколы »: [« dict »,« файл »,« ftp »,« ftps »,« gopher »,« http », «https», «imap», «imaps», «ldap», «ldaps», «pop3», «pop3s», «rtsp», «scp», «sftp», «smb», «smbs», «smtp» "," smtps "," telnet "," tftp "]}

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

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

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