После обновления сегодня утром php больше не работает. Ошибка:
AH01071: Получена ошибка 'Сообщение PHP: Неустранимая ошибка PHP: вызов неопределенной функции mysqli_connect () в /var/www/html/public_html/.../config.php в строке 2 \ n ', реферер: http: // localhost / public_html /
php -v
PHP 7.0.6-9 + пожертвовать. sury.org ~ xenial + 2 (cli) (NTS) Copyright (c) 1997-2016 PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies с Zend OPcache v7.0.6-dev, Авторское право (c ) 1999-2016, Zend Technologies
Библиотеки были установлены раньше, мне потребовалось некоторое время, чтобы адаптироваться после dist-upgrade до 16.04
Без большей информации я могу только описать общие причины:
php7.0-mysql
пакет не установлен, для фиксации выполненный sudo apt-get install php-mysql
mysqli
, модуль был так или иначе отключен, для фиксации выполненный phpenmod mysqli
libapache2-mod-php5.6
с php7.0-cli
php5.6-fpm
пакет) и модуль Apache2 (f.e. libapache2-mod-php7.0
). Отключите FPM путем выполнения: a2disconf php5.5-fpm
. extension=mysqli.so
к этому файлу Для получения большего количества диагностики:
выполненный 'php-r 'phpinfo ()'; и проверьте вывод на ссылки MySQL:
$ php -r 'phpinfo();' | grep -i mysqli
/etc/php/5.6/cli/conf.d/20-mysqli.ini,
mysqli
MysqlI Support => enabled
mysqli.allow_local_infile => On => On
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_pw => no value => no value
mysqli.default_socket => no value => no value
mysqli.default_user => no value => no value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.reconnect => Off => Off
mysqli.rollback_on_cached_plink => Off => Off
API Extensions => mysql,mysqli,pdo_mysql
Делают то же с сетью, создают простую страницу только с' 'и проверяют вывод на модуль MySQLI
После дальнейшего изучения проблемы, мы узнали, что было соединение PHP 5.5 и PHP 7.0 в системе, которая, вероятно, перепутала Apache2. Поскольку общая рекомендация, которую я определенно рекомендовал бы, начинает с одной версии PHP отлаживать и производить чистку другого (s).
Для завершенной чистки определенной версии PHP можно произвести чистку phpX.Y-common
пакет, который вытянет все другие обратные зависимости:
Пример:
apt-get purge php5.5-common # to remove PHP 5.5
apt-get purge php5.6-common # to remove PHP 5.6
apt-get purge php7.0-common # to remove PHP 7.0
# and to remove old php5 packages:
apt-get purge php5-common # to remove old PHP 5.x packages