Из моего сообщения в блоге 2013 года: https://delboy1978uk.wordpress.com/2013/10/30/manually-compiling-php-modules-successfully/
Это выглядит знакомо?
PHP Warning: PHP Startup: memcached: Unable to initialize module
Module compiled with module API=20090626
PHP compiled with module API=20100525
These options need to match
Я не знаю о вас, но мне нравится быть в курсе!Мой PHP на 5.5, и мне пришлось установить несколько модулей.Но иногда старые версии могут поднять свою уродливую голову и вызвать всевозможные страдания.Менеджеры пакетов делают все возможное, чтобы позаботиться обо всем этом для вас, но иногда они просто не работают.Оставляю вас на компиляцию!Итак, давайте сделаем это!Я собираюсь установить memcached, а затем библиотеки imagick (теперь я знаю, что я делаю!)
Я делаю это на сервере CentOS 6, но, как мы делаем старый способ skoolкомпиляции и т. д., это должно работать на любом другом варианте Linux или Mac OS X.
Первый шаг - это скачать ваш .tar.gz, затем разархивировать его с помощью tar -zxvf file.tar.gz и изменитьв папку.
Откройте веб-страницу с вашими серверами php.ini.Вы ищете версию PHP API и extension_dir.
В своем терминале перейдите в папку с исходным кодом модуля и введите phpize.
Если при проверке версий API,они отличаются от вашего php.ini, тогда в терминале используется старая версия php, и ваш модуль не будет работать!В этом случае вам нужно заставить его использовать правильный phpize.
, наберите which phpize
, чтобы узнать, где находится файл-нарушитель.(у меня был / usr / bin / phpize)
Мой PHP оказался в / usr / local, поэтому я попытался запустить /usr/local/phpize
.API соответствует.И тогда я сделал следующее:
mv /usr/bin/phpize /usr/bin/phpize-old
ln -s /usr/local/bin/phpize /usr/bin/phpize
На полпути!Мы должны сделать то же самое для php-config
mv /usr/bin/php-config /usr/bin/php-config-old
ln -s /usr/local/bin/php-config /usr/bin/php-config
Теперь, когда вы сделали это, установка должна быть тривиальной и работать в соответствии с загрузкой страниц учебника / инструкций в Интернете.
./configure
make
make install
Наконец отредактируйте ваш php.ini и добавьте 'extension = memcached.so' (или любой другой модуль, который вы скомпилировали) и перезапустите ваш сервер apache!
РЕДАКТИРОВАТЬ: вам может потребоваться запустить 'phpize–Clean ', если он все еще компилируется со старыми файлами из исходной папки модулей