• This is for a debian/ubuntu environment
  • We’re going to install PHP at the end since it’s the longest step and has more explanations

Setup details

  • PHP version 7 or greater
  • MySQL version 5.6 or greater
  • HTTPS support

Getting ready

sudo apt update && sudo apt upgrade -y

Apache

sudo apt install apache2 apache2-utils ssl-cert -y

MySQL

sudo apt install mysql-server mysql-client -y

Secure the installation

mysql_secure_installation

PHP

add repo

add repo to get the latest version of PHP

sudo add-apt-repository ppa:ondrej/php
sudo apt update

if you get

sudo: add-apt-repository: command not found

then install the software-properties-common package. Depending on your Ubuntu version (Precise Pangolin, 12.04 LTS), you may also have to install the python-software-properties package:

sudo apt-get install software-properties-common -y

Now update the sources list so it gets packages from the repo we just added

sudo apt update

install PHP and packages

at the time of this writing, the latest PHP version is 7.2

sudo apt install php7.2 libapache2-mod-php7.2 php7.2-cli php7.2-common php-curl php7.2-curl php7.2-dev php7.2-gd php7.2-intl php7.2-mcrypt php7.2-mbstring php7.2-mysql php7.2-pspell php7.2-recode php7.2-xml php-imagick php-pear php-gettext php7.2-zip -y

  • Most of the packages are installed as dependencies for other packages. For example: installing php7.2 will also install libapache2-mod-php7.2, php-common, php7.2-cli, php7.2-common, php7.2-json, php7.2-opcache, php7.2-readline. But we’re going to manually specify them just in case.
Packages Software that requires them
curl OpenCart, Magento
gd OpenCart, Magento, WordPress
gettext phpmyadmin
intl Magento
mbstring OpenCart, Magento
mcrypt OpenCart, Magento
openssl Magento
xml OpenCart
xsl Magento
zip OpenCart, Magento
Magento extensions
sudo apt-get update
sudo apt-get install php7.0-gd php7.0-mcrypt php7.0-curl php7.0-intl php7.0-xsl php7.0-mbstring php7.0-openssl php7.0-zip
sudo service apache2 restart

Enable stuff

  • The mod_rewrite Apache module is required by WordPress and OpenCart. It is usually required by any software that uses pretty/SEO/custom URLs.
a2enmod rewrite
phpenmod -v 7.2 mcrypt

PHPMyAdmin

sudo apt install phpmyadmin -y