Как следует из названия, я получаю эту ошибку прямо сейчас на своем CI после изменения PHP с 5.6 на 7.0. Он отлично работает, если я вернусь к 5.6, но мне нужно, чтобы мой сервер был на 7.0.
Произошла ошибка PHP
Уровень серьезности: основное предупреждение
Сообщение: Запуск PHP: SourceGuardian: Невозможно инициализировать модуль Модуль, скомпилированный с модулем API = 20121212 PHP, скомпилированный с модулем API = 20151012 Эти параметры должны соответствовать
Имя файла: Неизвестно
Номер строки: 0
Обратная трассировка:






Из моего сообщения в блоге 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!
EDIT : you may need to run ‘phpize –clean’ if it is still compiling with the older stuff from within the modules source folder
Загрузите последний модуль SourceGuardian, который поддерживает PHP 7.X: https://www.sourceguardian.com/loaders/download.php
У вас есть идеи, как мне получить доступ к этим путям? Согласно моему хостинг-провайдеру, он находится в / usr / local / bin / php (ИСТОЧНИК) Но я могу получить доступ только к чему-либо по пути / home вместо / usr из-за отказа в доступе. Попробую связаться по этому поводу с хост-провайдером.