Ошибка CodeIgniter после изменения PHP с 5.6 на 7.0 на HostGator через SSH - PullRequest
0 голосов
/ 25 мая 2018

Итак, как описано в заголовке, я получаю эту ошибку прямо сейчас на своем CI после изменения PHP с 5.6 на 7.0.Это работает нормально, если я возвращаюсь к 5.6, но мне нужно, чтобы мой сервер был на 7.0.

Обнаружена ошибка PHP

Серьезность: Предупреждение ядра

Сообщение: PHP Startup: SourceGuardian: Невозможно инициализировать модуль Модуль скомпилирован с модулем API = 20121212 PHP скомпилирован с модулем API= 20151012 Эти параметры должны соответствовать

Имя файла: Неизвестно

Номер строки: 0

Backtrace:

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Загрузите последний модуль SourceGuardian, который поддерживает PHP 7.X: https://www.sourceguardian.com/loaders/download.php

0 голосов
/ 25 мая 2018

Из моего сообщения в блоге 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 ', если он все еще компилируется со старыми файлами из исходной папки модулей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...