In this article we will learn to Install php apache mysql(Lamp) and phpmysadmin on Ubuntu. PHP, Apache MySQL and phpMyAdmin is most useful part to run a web application like PHP. In this tutorial we will cover installation of PHP 7, Apache, MySQL and phpMyAdmin.
Here is the list of tools and their use.
- PHP : To run the PHP code.
- Apache : To run PHP code on a server
- MySQL : To connect PHP or any language with database and store the data.
- phpMyAdmin: Mysql GUI to access MySQL database.
So, let’s begin with Install Apache,php,mysql Tutorial in Ubuntu
1 . How to install Apache in Ubuntu
Step 1.1 : Login into the server with ssh
First, open the terminal or putty and type below command to login into server.
ssh username@ip_or_domain
output will be :
Then it will ask for the password. After entering the password you will enter into server ssh.
Step 1.2 : Update Ubuntu System Repositories
Before install the apche we will update the Ubuntu system repositories using below command.
sudo apt update
Step 1.3: Install Apache
sudo apt install apache2
Step 1.4 Enable/Disable firewall for Apache
sudo ufw allow 'Apache Full'
Step 1.5 Check Apache server is installed and running
sudo systemctl status apache2
//or
sudo service apache2 status
Output :
Step 1.6 Open browser and type your ip or domain
2 . How to install MySQL in Ubuntu?
2.1 – Installing MySQL server
sudo apt-get install mysql-server
This will install the MySQL server and won’t ask you to set the password so let’s move to the next step of securing the MySQL server.
2.2. Securing MySQL server
After the fresh installation of MySQL, we are going to secure our MySQL by strengthening the password, type of authentication and root password.
sudo mysql_secure_installation
The above command will ask many questions as below
2.2.1 Do you want to Validate password plugin
Press Any key for no for now.
2.2.2 Set root password for MySQL
Next prompt will be set root password .
Enter the password twice and move to next step.
2.2.3 Remove Anonymous Users
Next question would be for removing Anonymous user.
Enter Y and go ahead.
2.2.3 Disable Remote Root Login
By default, MySQL comes with a database named ‘test’ that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Enter Y and go ahead.
2.2.4 Reload Privilege Tables
Reloading privileges to ensure that all changes will take effect.
Enter Y and go ahead.
2.2.5 Check MySQL Service
sudo service mysql status
2.2.6 Login into MySQL terminal
sudo mysql -u root -p
Enter password and you will be in to mysql terminal.
3. Install PHP 7.3 in Ubuntu
Now, we have installed Apache and MySQL, now we are going to install PHP so we can run our PHP code and render it on browser.
Type below command to install the PHP 7.3 and
3.1 Install php
open terminal or putty and ssh into the server, then type below command
sudo apt-get install php libapache2-mod-php php-mysql php-curl php-gd php-json php-zip php-mbstring
Above command will install php along with some extension of php.
3.2 Check PHP versions in CLI
php -v
It will show the output as below :
3.2 Check in browser
Go to folder /var/www/html and create a file info.php
cd /var/www/html
Then type command to edit the or create a new file
sudo vi info.php
And type
<?php
echo phpinfo();
Then, open http://ip_domain/info.php
4. Install, Configure and Access phpMyAdmin
PhpMyAdmin is used for the mysql GUI to access the all databases, tables, structure of table and almost all task related to MySql.
Let’s install it step by step
4.1 Install phpMyAdmin
sudo apt install phpmyadmin
Above command will prompt a box like below
Select the apache2 .
4.2 Configure phpMyAdmin in Ubuntu
Configure phpmyadmin in Apache config so it will be accessible through the web panel.
sudo vi /etc/apache2/apache2.conf
And that, add the following line into apache2.conf file and save it:
Include /etc/phpmyadmin/apache.conf
Enable MySQL root Login for phpMyAdmin Ubuntu
sudo mysql -u root -p
Enter your password and then type in MySQL Session
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;