Я добавил модуль 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
Как насчет того, чтобы позвонить в вашу хостинговую компанию, чтобы узнать, какие версии у них есть, и какой ваш код подбирает?
Возможно, у них есть уникальная настройка, которая выбирает версии так, как вы не представляете (никто не хотел бы видеть.)