The LAMP is a collection of open-source software that is used to develop web applications. It stands for Linux, Apache, MySQL, and PHP. Here, Apache is a server that creates a local server for us. It allows us to run the web application in our local system. That is called the localhost. MySQL is the database management tool and the last one is the PHP that is a scripting language. So, all these tools will be under the LAMP stack. Hence, you can easily install it through the command line.
However, it is most important to install every software in a order to work properly. But, don’t worry, I will be guiding you step by step here.
In this tutorial, we will learn how to install and configure Lamp (apache, mysql, php) on Ubuntu 22.04 server. To install LAMP Apache, MySQL, PHP in Ubuntu 22.04, follow these steps.
Open command prompt and run following command on command prompt to update the packages to the latest version available:
sudo apt update
sudo apt upgrade
Run the following command on command prompt to install apache on ubuntu 22.04 system:
sudo apt install apache2
Once the apache installation has been finished. Then need to set up Uncomplicated Firewall (UFW) with Apache to allow public access on default web ports for HTTP
and HTTPS
sudo ufw app list
We will see all listed applications.
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
80
(normal, unencrypted web traffic)80
(normal, unencrypted web traffic) and port 443
(TLS/SSL encrypted traffic)443
(TLS/SSL encrypted traffic)22
for SSH access.If your e are not going to use SSL we need to enable only the Apache profile.
Then enable apache full by using the following command; is as follows:
sudo ufw allow 'Apache Full'
With this command you can view the status of UFW.
sudo ufw status
Also you will see the output as follows.
Output
Status: active
To Action From
-- ------ ----
Apache Full ALLOW Anywhere
OpenSSH ALLOW Anywhere
Apache Full (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
Once Apache is installed and firewall configuration has been finished, you can check Apache version using the following command: is as follows:
sudo apachectl -vOutput
Server version: Apache/2.4.52 (Ubuntu)
Server built: 2022-03-25T00:35:40
Every process in Apache is managed with the systemctl
command. Check the status of Apache with the following command.
sudo systemctl status apache2Output
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-29 00:34:49 UTC; 2min 52s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 12782 (apache2)
Tasks: 55 (limit: 1151)
Memory: 5.1M
CPU: 52ms
CGroup: /system.slice/apache2.service
├─12782 /usr/sbin/apache2 -k start
├─12784 /usr/sbin/apache2 -k start
└─12785 /usr/sbin/apache2 -k start
Install and configure mysql on ubuntu 22.04 by using the following commands: is as follows:
sudo apt install mysql-server
Once the installation is completed. You can verify that the MySQL server status is running, type:
sudo service mysql status
The output should show that the service is enabled and running:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-29 00:38:45 UTC; 11s ago
Process: 13836 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, statu>
Main PID: 13844 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 1151)
Memory: 351.4M
CPU: 1.043s
CGroup: /system.slice/mysql.service
└─13844 /usr/sbin/mysqld
To check mysql version using the following command:
sudo mysql -V
Output
mysql Ver 8.0.28-0ubuntu4 for Linux on x86_64 ((Ubuntu))
MySQL installation comes with a script named mysql_secure_installation
that allows we to easily improve the MySQL server security.
sudo mysql_secure_installation
Will be asked to configure the VALIDATE PASSWORD PLUGIN
which is used to test the strength of the MySQL users passwords and improve the security.
Press y
if we want to set up the validate password plugin or any other key to move to the next step.
There are three levels of password validation policy, low, medium, and strong. Enter 2 for strong password validation.
On the next prompt, will be asked to set a password for the MySQL root user.
If we set up the validate password plugin, the script will show we the strength of we new password. Type y
to confirm the password.
Next, will be asked to remove the anonymous user, restrict root user access to the local machine, remove the test database, and reload privilege tables. we should answer y
to all questions.
Run the following command to Install PHP:
sudo apt install php8.1-fpm php8.1 libapache2-mod-php8.1 php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl php8.1-bcmath unzip -y
Once the PHP installed has been complete, you can use the following command to check the version of installed php:
php -v
Output
PHP 8.1.5 (cli) (built: Apr 7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.5, Copyright (c) Zend Technologies
with Zend OPcache v8.1.5, Copyright (c), by Zend Technologies
To configure PHP by changing some values in php.ini
file.
So, open php.ini file by using the following command on command prompt:
sudo nano /etc/php/8.1/apache2/php.ini
Hit F6
for search inside the editor and update the following values for better performance.
upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
Once we have modified PHP settings, we need to restart Apache for the changes to take effect.
Disable default Apache configuration.
sudo a2dissite 000-default
Create website directories.
sudo mkdir -p /var/www/html/domainname/public
Setup correct permissions.
sudo chmod -R 755 /var/www/html/domainname
sudo chown -R www-data:www-data /var/www/html/domainname
Create a new virtual host configuration.
sudo nano /etc/apache2/sites-available/domainname.conf
Paste the following configurations in the new file:
<VirtualHost *:80>
ServerAdmin admin@domainname.com
ServerName domainname.com
ServerAlias www.domainname.com
DocumentRoot /var/www/html/domainname/public
<Directory /var/www/html/domainname/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Enable the new configuration.
sudo a2ensite domainname.conf
Run the following command to Install PHPMyAdmin:
sudo apt install phpmyadmin
Configuration phpmyadmin for Apache.
sudo cp /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
Enable the configuration.
sudo a2enconf phpmyadmin.conf
Then execute the following command on command prompt to restart apache web server:
sudo service apache2 restart
Now you have installed PHPMyadmin, this can be accessible with this route yourdomain.com/phpmyadmin
.
In this tutorial, we have shown to you how to install and configure Lamp (apache, mysql, php) on Ubuntu 22.04 server.
#linux #php #ubuntu #mysql #apache