This is an old revision of the document!
Table of Contents
Installing Apache2 web server, MySql database server, and PHP language interpreters on Ubuntu Server
You can install these with LAMP or XAMPP or install each separately using apt-get installer.
As of April, May June, 2020, Let's install Apache 2.4, MySQL 8.0 and PHP 7.4 on Ubuntu 20.04 LTS.
This is done with root or sudo privilege user access to the system. Login to your Ubuntu server either at your command line interface, using console within a GUI, or remotely using SSH. Putty is good app for remote SSH access to Linux Ubuntu from a Windows operating system.
Installing PHP
The latest PHP 7.4 packages are available in the default repositories for Ubuntu 20.04 LTS. First Update the index and then install PHP on the Ubuntu Server operating system.
sudo apt update sudo apt install -y php7.4
Install additional PHP modules that are required for your application.
sudo apt install php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-xml
Next we will install Apache2 web server and virtual hosts.
Installing Apache2 and Creating Apache VirtualHost
Installing Apache2 (version 2.4)
sudo apt-get update sudo apt-get install apache2
Creating Apache VirtualHost
In Apache on Ubuntu, the virtual host configuration files are stored under /etc/apache2/sites-available/ directory. With the new Apache installation you will find a default virtual host file there. Create a new Virtual Host configuration file by copying the default file, as follows:
cd /etc/apache2/sites-available/ sudo cp 000-default.conf www1.example.com.conf
Edit the virtual host configuration file for your requirements, using your favorite editor such as vim. A configuration for www1.example.com configuration can be something like the following:
vim www.example.com.conf
<VirtualHost *:80> ServerAdmin webmaster@site1.example.com ServerName www1.example.com DocumentRoot /var/www/www.example.com/httpdocs <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>