Cómo instalar phpMyAdmin en ubuntu 16.04 con Nginx

Instalar phpMyAdmin en ubuntu 16.04 con nginx

Para gestionar las bases de datos mysql o mariadb desde una interfaz web en nuestro ubuntu server 16.04, podemos hacerlo instalando phpmyadmin.

Pero si tenemos nginx instalado como servidor web a algunos se les complican las cosas, por tal motivo me tomé la tarea de hacerlo, aunque gestiono todas mis bases de datos desde consola nunca esta demás hacerlo desde una interfaz gráfica, bueno vamos a ello.

Instalar phpmyadmin

sudo apt-get install phpmyadmin php-gettext

Cuando la instalación pida que elijamos el servidor web, no seleccione nada. Estamos usando Nginx webserver y no está en la lista, así que saltamos este paso.

+------------------------+ Configuring phpmyadmin +-------------------------+
| Please choose the web server that should be automatically configured to   |
| run phpMyAdmin.                                                           |
|                                                                           |
| Web server to reconfigure automatically:                                  |
|                                                                           |
|    [ ] apache2                                                            |
|    [ ] lighttpd                                                           |
|                                                                           |
|                                                                           |
|                                 <ok>                                      |
|                                                                           |
+---------------------------------------------------------------------------+

Luego nos solicita que debconfig-common cree y configure una base de datos para phpmyadmin solo debemos seleccionar no.

+------------------------+ Configuring phpmyadmin +-------------------------+
|                                                                           |
| The phpmyadmin package must have a database installed and configured      |
| before it can be used.  This can be optionally handled with               |
| dbconfig-common.                                                          |
|                                                                           |
| If you are an advanced database administrator and know that you want to   |
| perform this configuration manually, or if your database has already      |
| been installed and configured, you should refuse this option.  Details    |
| on what needs to be done should most likely be provided in                |
| /usr/share/doc/phpmyadmin.                                                |
|                                                                           |
| Otherwise, you should probably choose this option.                        |
|                                                                           |
| Configure database for phpmyadmin with dbconfig-common?                   |
|                                                                           |
|                  <Yes>                   <No>                             |
|                                                                           |
+---------------------------------------------------------------------------+

Habilitamos el modulo mcrypt

sudo phpenmod mcrypt

Reiniciamos php

sudo systemctl restart php7.0-fpm

Ya con esto tenemos instalado el phpmyadmin y si vamos a la dirección http://direccion_ip/phpmyadmin no veremos mas que la pagina de error de nginx 404.

No importa lo que digan los tutoriales en internet, no pude nunca ingresar con la http://direccion_ip/phpmyadmin, para eso debemos hacer varias cosas, primero crear un link dinámico de/usr/share/phpmyadmin/ a /var/www/html/

sudo ln -s /usr/share/phpmyadmin/ /var/www/html/

Al crear el link dinámico en algunos tutoriales dice que si podemos ingresar usando http://direccion_ip/phpmyadmin pero yo no lo pude hacer y tuve que crear un vhost para el phpmyadmin

Con su editor favorito vamos a crear el vhost de nginx.

vim /etc/nginx/sites-available/database

En este vhost que vamos a crearnos apuntaremos a el linik dinámico de phpmyadmin

server {
       listen 80;
       listen [::]:80;

       server_name direccion_ip;

       root /var/www/html/phpmyadmin;
       index index.php;

       location / {
               try_files $uri $uri/ /index.php?$args;
       }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                #fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #



        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny all;
        }
}

Comprobamos que nginx este bien en la configuración

sudo nginx -t

Debe salir algo como esto

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Después reiniciamos los servicios de nginx y por si las moscas los de php

sudo service nginx restart
sudo service php7.0-fpm restart

Ya con esto si podemos ingresar a nuestra dirección http://direccion_ip/phpmyadmin y veremos la pantalla de ingreso.

Happy Hacking!