PAB's blog - Tag - phpmyadmin2022-11-19T07:02:34+00:00urn:md5:5926f7e05a689ea9af53f3d15057feb6DotclearPhpmyadmin et open_basedir sur Debian Sidurn:md5:7988708f55d90d541735af343c049d992016-09-22T06:28:00+02:002016-09-22T06:28:00+02:00Pierre-Alain Bdebianlinuxphpmyadmin <p>Stupéfaction hier quand, sur Debian Sid, phpmyadmin cessa de fonctionner... Sans doute une mise à jour récente avait-elle cassé le
subtile équilibre propice à phpmyadmin.</p>
<p>L'examen de logs (dans /var/logs/apache2/error.log) montre que :</p>
<pre>
[Tue Sep 20 07:17:39.550343 2016] [:error] [pid 4509] [client ::1:57788]
PHP Fatal error: require_once(): Failed opening required
'/usr/share/php/php-gettext/gettext.inc' (include_path='.') in
/usr/share/phpmyadmin/libraries/common.inc.php on line 77
[Tue Sep 20 07:17:40.162663 2016] [:error] [pid 4505] [client ::1:57790]
PHP Warning: require_once(): open_basedir restriction in effect.
File(/usr/share/php/php-php-gettext/gettext.inc) is not within the
allowed path(s):
(/usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/)
</pre>
<p>La seconde ligne (Warning PHP) est assez explicite sur l'erreur. Il semble donc nécessaire d'ajouter le chemin vers <em>/usr/share/php/php-gettext/</em> dans l'instruction open_basedir.</p>
<p>Pour ce faire, ouvrir le fichier de configuration de l'hôte phpmyadmin en écriture :</p>
<pre>
nano /etc/apache2/conf-available/phpmyadmin.conf
</pre>
<p>et repérer la ligne "open_basedir" qui doit ressembler à</p>
<pre>
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
</pre>
<p>Il faut alors la transformer par un ajout judicieux en :</p>
<pre>
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/:/usr/share/php/php-gettext/
</pre>
<p>Et, après un redémarrage d'Apache, tout fonctionne à nouveau.</p>