J'utilise un environnement serveur minimal d'ubuntu16.04.1, Apache2, MySQL et PHP 7.0.8.1. J'ai installem AMP via: apt-get install lamp-server^
.
J'ai aussi installé PHPmyadmin manuellement via:
cd /var/www/html
wget https://files.phpmyadmin.net/phpMyAdmin/4.6.5.2/phpMyAdmin-4.6.5.2-all-languages.Zip
find ./ -type f -name '*phpMyAdmin*.Zip' -exec unzip {} \; # We can also do unzip \*phpMyAdmin*.Zip ...
find ./ -type d -name 'phpMyAdmin-*' -exec mv {} phpmyadmin \;
PHPmyadmin est démarré mais pour l'utiliser pleinement, autant que je sache, il faut aussi:
phpenmod mcrypt
phpenmod mbstring
Pourtant, ces erreurs retournent respectivement:
Module mcrypt ini file doesn't exist under /etc/php/7.0/mods-available
Module mbstring ini file doesn't exist under /etc/php/7.0/mods-available
Je n'ai jamais eu ces erreurs avant. Ces modules sont-ils redondants pour PHPmyadmin dans les versions actuelles ou non installés via apt-get install
?
Installez-les d'abord:
Sudo apt install php7.0-mcrypt && Sudo apt install php7.0-mbstring
Puis activez-les avec:
Sudo a2enmod mcrypt
Sudo a2enmod mbstring
Mettre à jour
D'après des recherches approfondies, je crois qu'il existe un bogue empêchant votre php cli de bien fonctionner avec php mcrypt.
La source:
Impossible d'utiliser PHP extension Mcrypt dans Ubuntu 13.10 (Nginx, PHP-FPM)
php ne fonctionne pas bien sur Ubuntu 13.10 et mcrypt est manquant dans phpmyadmin
Pour confirmer que mcrypt
est enabled dans Apache, procédez comme suit:
Créez un fichier php
appelé info.php
y placez ce code:
<?php echo phpinfo(); ?>
Mettez le fichier dans /var/www/html
ou votre racine du serveur
Accédez-y à partir du navigateur, par exemple, IP/info.php
ou localhost/info.php
Regardez à la sortie et vous constaterez que mcrypt and mbstring
sont activés
Comme vous pouvez le voir, il est activé dans Apache, mais inaccessible à partir de php CLI d'où les messages d'erreur.
Pour confirmer son fonctionnement [comme j'ai ce problème aussi] j'ai fait ce qui suit:
mcrypt
n'était pas activé sur Apache.Une simple mise en fonction de votre si --- page d'information Apache affiche ces modules tels qu'ils sont activés. L'erreur vue est le résultat de php CLI ayant des problèmes avec mcrypt qui a été noté comme étant un bogue. Vu dans les versions précédentes de php mais présent dans php 7
J'ai eu des problèmes avec les solutions ci-dessus, mais j'ai trouvé ceci:
https://www.techrepublic.com/article/how-to-install-mcrypt-for-php-7-2/
Essentiellement, construisez-le vous-même:
Sudo apt-get -y install gcc make autoconf libc-dev pkg-config
Sudo apt-get -y install php7.2-dev
Sudo apt-get -y install libmcrypt-dev
Une fois les dépendances installées, vous pouvez installer mcrypt avec la commande suivante:
Sudo pecl install mcrypt-1.0.1
A partir de là, j'ai eu besoin d'ajouter:
/etc/php/7.2/mods-available/mcrypt.ini
Qui ressemblait à ceci:
; configuration for php mcrypt module
; priority=20
extension=mcrypt.so
Ensuite
Sudo phpenmod mcrypt
Sudo systemctl restart Apache2.service
Si les deux sont installés et que l'erreur persiste, essayez de créer un lien symbolique vers les fichiers ini dans mods-available
Voici comment faire:
Sudo ln -s /etc/php7/conf.d/mcrypt.ini /etc/php/7.0/mods-available/mcrypt.ini
Sudo ln -s /etc/php7/conf.d/mbstring.ini /etc/php/7.0/mods-available/mbstring.ini