How to change URL phpmyadmin OR change phpMyAdmin port ?
  easystem   21 Januari 2018   Tutorial

change URL phpmyadmin :

Edit /etc/phpmyadmin/apache.conf and comment (#) the first Alias directive like thath:

Alias /phpmyadmin /usr/share/phpmyadmin to
/change this /usr/share/phpmyadmin

change phpMyAdmin port :

Just to be clear, this is not a setting of PhpMyAdmin, it is a setting of the configuration of Apache2, and we need to create new VirtualHost for this purpose.

1. Understanding of the default configuration of PhpMyAdmin. By default (within Ubuntu 16.04) PhpMyAdmin is included (and enabled) into the Apaches configuration (for all VirtualHosts!) through this additional configuration file:

/etc/apache2/conf-enabled/phpmyadmin.conf

This file is a symbolic link to the file /etc/apache2/conf-available/phpmyadmin.conf, which is a symbolic link to the file /etc/phpmyadmin/apache.conf, which will be used in the next step.

2. Create new VirtualHost configuration file. Lets call it phpmyadmin.conf and create it by nano(or you can use your favorite text editor):

sudo nano /etc/apache2/sites-available/phpmyadmin.conf

The content of this file should looks like:

Listen 99

<VirtualHost *:99>

        ServerName localhost

        <Directory /usr/share/phpmyadmin>
                AllowOverride None
                Require all granted
        </Directory>

        DocumentRoot /usr/share/phpmyadmin

        Include /etc/phpmyadmin/apache.conf

        ErrorLog ${APACHE_LOG_DIR}/phpmyadmin.error.log
        CustomLog ${APACHE_LOG_DIR}/phpmyadmin.access.log combined

</VirtualHost>

Where:

  • Listen 99 instructs Apache2 to listen on port 99. Like @L.D.James says you can put this directive in /etc/apache2/ports.conf or you can leave it here;

  • <VirtualHost *:99>...</VirtualHost> defines a VirtualHost which will handle the requests form all interfaces (*) on port :99.

  • ServerName localhost this directive is optional and can be customised according to your needs. (Usually there have ServerName set on the Server level - in /etc/apache2/apache2.conf);

  • <Directory /usr/share/phpmyadmin>...</Directory> this directive is optional because the access permissions for /usr/share/ are usually set in /etc/apache2/apache2.conf. But you can add specific rules here, for example you can Set Up Password Authentication;

  • DocumentRoot /usr/share/phpmyadmin this directive sets /usr/share/phpmyadmin as directory that forms the main document tree visible from the web, for the current VirtualHost;

  • Include /etc/phpmyadmin/apache.conf this directive includes the default phpMyAdmins configuration into Apaches configuration. Thus /etc/phpmyadmin/apache.conf will be included only for the current VirtualHost! Instead of this directive you can copy/paste the content of /etc/phpmyadmin/apache.conf in this place.

3. Switch Apaches configuration and restart it.

sudo a2disconf phpmyadmin
sudo a2ensite phpmyadmin
sudo systemctl restart apache2.service

Where:

  • a2disconf phpmyadmin will disable the default phpMyAdmins configuration, described in 1.
  • a2ensite phpmyadmin will enable the new VirtualHost, described in 2.

!!. Edit /etc/phpmyadmin/apache.conf and comment (#) the first Alias directive like thath:

#Alias /phpmyadmin /usr/share/phpmyadmin

This step is optional, but otherwise http://localhost:99 and http://localhost:99/phpmyadminwill provide identical result, so I suppose we do not need that :)


!!. If you want this new VirtualHost to be accessible from the outside dont forget to add port 99into your firewall's rules. If you use UFW you can do that by this command:

sudo ufw allow 99/tcp

With iptables you can do that by this command:

sudo iptables -A INPUT -p tcp -m tcp --dport 99 -j ACCEPT

Tags :

tutorial , ubuntu , phpmyadmin

Bagikan :