Error 500 con Nginx+Chroot+PHP5-FPM+PhpMyadmin

Despues de hacer la instalación de Nginx y PHP5-FPM con Chroot (Jail) e instalar MySQL PhpMyAdmin la página me daba un error 500.

Investigando veo que el problema esta en la siguiente línea del archivo library/common.inc.php de PhpMyAdmin.

date_default_timezone_set(@date_default_timezone_get());

El problema está en que la función date_default_timezone_get() y todo se debe a que no se tienen los archivos necesarios para buscar la timezone del servidor, como lo muestra el log de nginx

[error] 12058#0: *13 FastCGI sent in stderr: “PHP message: PHP Fatal error: date_default_timezone_get(): Timezone database is corrupt – this should *never* happen! in /var/www/phpmyadmin/libraries/common.inc.php on line 276” while reading response header from upstream, client: 111.111.111.111, server: miservidor.com, request: “GET /phpmyadmin/ HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”, host: “miservidor.com”

La solución es instalar la timezonedb con PHP-PEAR ( pecl ), procedemos con el siguiente código:

apt-get install php-pear php5-dev
pecl install timezonedb
echo ‘extension=timezonedb.so’> /etc/php5/mods-available/timezonedb.ini
ln -sf /etc/php5/mods-available/timezonedb.ini /etc/php5/fpm/conf.d/30-timezonedb.ini
service php5-fpm restart

Y listo!!.. ya debe de funcionar correctamente la página de PhpMyAdmin

PhpMyAdmin: La conexión para controluser, como está definida en su configuración, fracasó.

Despues de reiniciar la MacBook al querer ingresar al phpmyadmin me marcaba un error que la contraseña era incorrecta, y pues claro que era la correcta ya que es la que siempre se habia utilizado, y para rematar el mensaje de error me aparecia:

La conexión para controluser, como está definida en su configuración, fracasó.

Ahora bien, para resetear la contraseña tuve que utilizar estos comandos:

sudo launchctl stop org.macports.mysql5
sudo -u mysqld /opt/local/libexec/mysqld –skip-grant-tables

Con estos dos primeros matamos el proceso del mysql y con el otro iniciamos el proceso pero ignorando las tablas de privilegios, despues ingresamos al mysql como root

mysql -u root

Y ejecutamos estos 2 comandos dentro de la consola del mysql

UPDATE mysql.user SET Password=PASSWORD(‘password’) WHERE User=’root’
FLUSH PRIVILEGES;

Y listo!! con esto reseteamos al usuario root con la contraseña: password

Ahora para quitar el mensaje de phpmyadmin, buscamos el archivo config.inc.php y en la linea donde aparece:

$cfg[‘Servers’][$i][‘controluser’] = ”;
$cfg[‘Servers’][$i][‘controlpass’] = ”;

Nos aseguramos que esten vacios!! y listo!!. todo como nuevo!., aunque no estaría mal revisar que todas las tablas esten en buen estado!.