# Umstieg auf PHP7 - undefined function mb_detect_encoding()



## MB.n (8. Nov. 2016)

Hey Leute,
wollte gerade PHP7 installieren und testen und bei erfolgreichem Test für alle Webspace aktivieren.

Bin wie folgt vorgegangen:
echo 'deb http://packages.dotdeb.org jessie all' > /etc/apt/sources.list.d/dotdeb.list
apt-get install apt-transport-https
curl http://www.dotdeb.org/dotdeb.gpg | apt-key add -
apt-get update
apt-get install php7.0

Auflistung aller installierten PHP Pakete:
dpkg -l | grep php

Installation aller php7.0 Pakete als zukünftiger Ersatz für PHP5 Pakete:
apt-get install php7.0-xsl php7.0-xmlrpc php7.0-tidy php7.0-sqlite php7.0-recode php7.0-pspell php7.0-mysql php7.0-mcrypt php7.0-intl php7.0-imap php7.0-imagick php7.0-gd php7.0-fpm php7.0-curl php7.0-cgi php7.0-memcache php7.0-memcached

Doch rufe ich ISPConfig auf, bekomme ich einen 500er HTTP.

find . -name "*.php" -exec php -l {} \; 1>/dev/null
Ergibt kein Ergebnis im ispconfig Webverzeichnis


Jemand ne Idee?

error log schmeißt mich zich Fehler in dieser Art:

```
[Tue Nov 08 20:53:54.721858 2016] [fcgid:warn] [pid 31014] [client 77.20.252.65:7292] mod_fcgid: stderr: PHP Fatal error:  Uncaught Error: Call to undefined function mb_detect_encoding() in /usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php:482
[Tue Nov 08 20:53:54.721902 2016] [fcgid:warn] [pid 31014] [client 77.20.252.65:7292] mod_fcgid: stderr: Stack trace:
[Tue Nov 08 20:53:54.721906 2016] [fcgid:warn] [pid 31014] [client 77.20.252.65:7292] mod_fcgid: stderr: #0 /usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php(158): db->escape('interface')
[Tue Nov 08 20:53:54.721910 2016] [fcgid:warn] [pid 31014] [client 77.20.252.65:7292] mod_fcgid: stderr: #1 /usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php(262): db->_build_query_string('SELECT `value` ...', 'interface', 'session_timeout')
[Tue Nov 08 20:53:54.721913 2016] [fcgid:warn] [pid 31014] [client 77.20.252.65:7292] mod_fcgid: stderr: #2 /usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php(301): db->_query('SELECT `value` ...', 'interface', 'session_timeout')
[Tue Nov 08 20:53:54.721916 2016] [fcgid:warn] [pid 31014] [client 77.20.252.65:7292] mod_fcgid: stderr: #3 /usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php(320): db->query('SELECT `value` ...', 'interface', 'session_timeout')
[Tue Nov 08 20:53:54.721920 2016] [fcgid:warn] [pid 31014] [client 77.20.252.65:7292] mod_fcgid: stderr: #4 /usr/local/ispconfig/interface/lib/app.inc.php(165): db->queryOneRecord('SELECT `value` ...', 'interface', 'session_timeout')
[Tue Nov 08 20:53:54.722034 2016] [fcgid:warn] [pid 31014] [client 77.20.252.65:7292] mod_fcgid: stderr: #5 /usr/local/ispconfig/interface/lib/app.inc.php(72): app->conf('interface', 'session_timeout')
[Tue Nov 08 20:53:54.722043 2016] [fcgid:warn] [pid 31014] [client 77.20.252.65:7292] mod_fcgid: stderr: #6 /usr/local/ispconfig/interface/lib/app.inc.php(340): app->__construct()
[Tue Nov 08 20:53:54.722072 2016] [fcgid:warn] [pid 31014] [client 77.20.252.65:7292] mod_fcgid: stderr: #7 /usr/local/ispconfig/interface/web/index.php(32): require_once('/usr/ in /usr/local/ispconfig/interface/lib/classes/db_mysql.inc.php on line 482
```
Es scheint so als wäre ausschließlich ISP Config hier das Problem denn alle anderen Seiten wie zum Beispiel Kunden Seiten funktionieren einwandfrei.


----------



## MB.n (8. Nov. 2016)

Da ich das Problem gerade behoben bekommen habe geb ich es hier mal als Fehler Tutorial:
Das einzige Problem war, dass mir dieses Paket gefehlt hat:
php7.0-mbstring

Also einmal schnell installiert mit "apt-get install php7.0-mbstring" und dem Apache neugestartet "service apache2 restart" und schon funktioniert es einwandfrei.


----------

