Setting Up a Web Development Server – Part 6 – Installing PhpMyAdmin

PhpMyAdmin Installation

Image sourced from WebLife.

In Part Five, we installed and configured Varnish Caching and Memcached. Part Six, the last part of the series, we will be installing and configuring PhpMyAdmin. PhpMyAdmin is a web-based tool that makes it easier to manage databases – besides using the bash shell.

Step One

Before we begin installation, we need to enable the ‘rewrite’ module for Apache – to do this, run the following command: a2enmod rewrite. To inform Apache of the change, restart Apache with the following command: service apache2 restart.

Step Two

To begin installing PhpMyAdmin, run the following command: apt-get install phpmyadmin. If prompted to continue, press the y key then the Enter key. You will then be taken through an installation process with several prompts…

Select Server for PhpMyAdmin Installation

Press the Enter key to move to the next step.

Step Three

This step will ask if we want to use a utility called dbconfig-common to configure the database – select Yes and press the Enter key to proceed. You will then be prompted to enter the password for the database administrator (in our case, this is root). Enter the password (debian), then press the Enter key to proceed.

Step Four

The next step will ask you to enter a password for phpmyadmin to use with the database. We will use debian as our password – type this in and press the Enter key to proceed. Enter the password and press the Enter key again to confirm the password. This should complete the initial setup; however, we need to configure some extra settings before the installation is fully complete.

Step Five

To proceed with the installation, we will need to add PhpMyAdmin to Apache configuration. Open the configuration file by running the following command: vim /etc/apache2/apache2.conf. Scroll down to the bottom of this file, and add the following line: Include /etc/phpmyadmin/apache.conf. The bottom of the apache2.conf should look like this:

Add PhpMyAdmin Apache Configuration File to Apache Main Configuration File

Save the changes and exit out of the file.

To update the new changes for Apache, run the following command: service apache2 restart.

Step Six

To access our PhpMyAdmin installation, visit the following URL in your browser: localhost:8888/phpmyadmin. If the installation process went well, you should see the following in your browser:

PhpMyAdmin Login Screen - Successful Installation

Step Seven

To make sure we can login, enter the following credentials and click on the Go button:

  • Username: root
  • Password: debian

If all goes well, you should be logged in and shown something like the image below:

PhpMyAdmin Successful Login

IMPORTANT: Do not make PhpMyAdmin publically accessible, and use a better password combination (than the one used here) on your server.

Step Eight

To finish off the PhpMyAdmin installation for this guide, we will be implementing an example security measure – using .htaccess authentication to block unauthorized access to PhpMyAdmin.

To begin implementing these measures, we will need to make a change to PhpMyAdmin’s Apache configuration. Enter the following command to open the file: vim /etc/phpmyadmin/apache.conf. You should see something like the following in the top half of the file:

PhpMyAdmin Apache Configuration File

Just below the line ‘DirectoryIndex index.php’, enter the following: AllowOverride All. The file should now look like the following:

PhpMyAdmin Apache Configuration File Altered

Step Nine

Now create a directory to store the password file (needed later on) by running the following command: mkdir /var/passwords. With that directory created, create an .htaccess file in our phpmyadmin directory with the following command: vim /usr/share/phpmyadmin/.htaccess. In this new file, enter the following information:

AuthType Basic

AuthName "These are restricted files, please authenticate yourself"

AuthUserFile /var/passwords/.htpasswd

Require valid-user

Below describes each of the lines:

  • AuthType: This defines the type of authentication to be used. By using ‘Basic’, we will be using HTTP authentication.
  • AuthName: This is what will be displayed with the password prompt.
  • AuthUserFile: This is the path to the password file we will be using.
  • Require valid user: This means only users defined in the password file can access PhpMyAdmin.

Your new .htaccess file should now look like the following:

PhpMyAdmin .htaccess File

Step Ten

Now it is time to create the password file mentioned in the .htaccess file. To do this, run the following command: htpasswd –c /var/passwords/.htpasswd root – where root is our username. This will open a prompt which will ask us to enter and confirm our password. You should see something like the following:

Create .htpasswd File

For our installation, we will use debian as our password. Once you have entered and confirmed the password, you should see something like this:

Completed .htpasswd File Confirmation

Restart Apache to finalize the changes.

Step Eleven

To see if this works, clear your browsers history and cache, and visit localhost:8888/phpmyadmin in your browser. You should be seeing something like the image below:

PhpMyAdmin .htaccess Password Prompt

Enter root as the user and debian as the password, then click on the Log In button. If the setup went well, you should now be shown the login screen for PhpMyAdmin. If you like, you can login to PhpMyAdmin to see if it still works – user is root, and debian for the password.

This concludes the PhpMyAdmin installation, and also the entire guide

Part Six and Guide Conclusion

During this whole guide, we have achieved the following tasks:

  • Creating a virtual machine with VirtualBox.
  • Installed Debian (version 7.7) as our virtual machine’s operating system.
  • Installed Vim as our chosen text file editor (feel free to change this).
  • Installed Git (useful for version control and retrieving other Git-based repositories).
  • Installed SSH.
  • Forwarded ports (to mitigate port-related conflicts).
  • Accessed our development machine via Git Bash.
  • Accessed our development machine’s file system via SFTP and FileZilla.
  • Installed and configured a L.A.M.P stack – with Apache version 2.2.22, PHP version 5.6.3.1, and MySQL version 5.6.21.
  • Installed and configured Memcached and its dependencies.
  • Installed and configured PhpMyAdmin, with basic security implementation.

This guide is only an example of creating a web development virtual machine. You can install any available tool you require for your particular needs – e.g. Ruby on Rails, Node.js, Node Package Manager, and many more. Feel free to post your (constructive) feedback and suggestions for each part of this guide, and share it around via social media etc. Feel free to contact me if you have any queries about this particular guide.

Posted in Linux, MySQL, PHP, Systems Administration, Web Development Tagged with: , , , , , , , , , , , , , , , , , , , , , , , , , , ,