Ошибка при загрузке php-модуля

Я добавил модуль curl в /etc/php/7.0/cli/php.ini:

extension = /usr/lib/php5/20121212/curl.so 

но когда я перезапускаю php, и я делаю:

 php -m 

Я получаю эту ошибку:

 curl : Unable to initialize module Module compiled with module API=20121212 PHP compiled with module API=20141010 These options need to match 

Я также пробовал:

 apt-get install php5-curl 

Curl «уже к новой версии».


И phpinfo () сообщает, что php5 запущен:

 PHP Version 5.5.9 php.ini Path : /etc/php5/fpm PHP Extension : 20121212 

но когда я проверяю сервер с помощью:

 which php => /usr/bin/php (for php7) php -v => PHP 7.0 (with a warning before "Unable to initialize module") 

и если я удалю curl.so в php.ini выше (один из php7, в первой строке), предупреждение исчезнет.

—————————————

поэтому я добавил: extension = / usr / lib / php5 / 20121212 / curl.so

в :

 /etc/php5/fpm/php.ini 

то я перезагружаюсь, но я до сих пор не вижу этот модуль:

введите описание изображения здесь

И здесь ошибка, говорящая об этом модуле, все еще отсутствует:

введите описание изображения здесь

Итак, если вы пытаетесь добавить модуль в PHP-сервер веб-сервера, который находится в вашем случае PHP5, вам нужно добавить этот модуль в /etc/php5/fpm/php.ini (на основе вашего предыдущего вопроса, в котором вы заявили, что вы используйте NGINX + PHP-FPM).

Если вы хотите добавить его в версию CLI – вы делаете это неправильно, потому что вы добавляете PHP5-модуль в PHP7 – это не сработает, вам нужно установить php7-curl и он автоматически добавит себя там, где это необходимо ,


Выяснить несколько больше. Ваш phpinfo() сообщает вам, что ваш путь INI находится в /etc/php5/fpm :

 PHP Version 5.5.9 php.ini Path : /etc/php5/fpm PHP Extension : 20121212 

Следовательно, чтобы добавить любые расширения к этому конкретному PHP – просто добавьте их в /etc/php5/fpm/php.ini . Обратите внимание: вы не можете (или очень редко) добавлять расширения от одной версии PHP к другой версии PHP.


Затем я добавлю резюме того, что происходит в системе OP для будущих ссылок.

В принципе, OP имеет 2 версии PHP, установленных в системе одновременно, PHP5 и PHP7 с сервером NGINX с расширением php-fpm .

Его NGINX настроен на использование PHP5, в то время как CLI PHP по умолчанию использует PHP7.

Путаница с OP исходит из того факта, что в системе Ubuntu существует явная разница между PHP, который вызывается из CLI и PHP, который используется веб-сервером.

Инструменты CLI доступны для каждой версии как /usr/bin/php5 и /usr/bin/php7 , причем одна ссылка по умолчанию /usr/bin/php указывает на одну конкретную версию, в данном случае PHP7.

Для модуля FPM есть 2 пакета, доступные php5-fpm php7-fpm и php7-fpm , с соответствующими /etc/php5/fpm/php.ini в /etc/php5/fpm/php.ini и /etc/php/7.0/php.ini .

Для CLI есть также 2 пакета – php5-cli php7-cli и php7-cli с соответствующими /etc/php5/cli/php.ini в /etc/php5/cli/php.ini и /etc/php/7.0/cli/php.ini .

Для расширения curl существует такая же история, php5-curl и php7-curl . Расширения будут автоматически подключены к необходимым INI-файлам установщиком deb.

Установка нескольких версий PHP для развлечения может создать такую ​​путаницу. 🙂

Это означает, что ваш модуль CURL был скомпилирован против другой версии PHP. В зависимости от вашего вкуса Linux (выглядит так, как у Debian) вам может потребоваться установить модуль

 sudo apt-get install php5-curl 

Как насчет того, чтобы позвонить в вашу хостинговую компанию, чтобы узнать, какие версии у них есть, и какой ваш код подбирает?

Возможно, у них есть уникальная настройка, которая выбирает версии так, как вы не представляете (никто не хотел бы видеть.)