Skip to content

Instantly share code, notes, and snippets.

@fieri
Forked from mavuriel/README.md
Created April 9, 2024 14:05
Show Gist options
  • Save fieri/8d4bd22c6f09642290106c2cd8157a94 to your computer and use it in GitHub Desktop.
Save fieri/8d4bd22c6f09642290106c2cd8157a94 to your computer and use it in GitHub Desktop.
Script to setup LAMP
#!/bin/bash
## Apache
echo "\n === Updating package manager ==="
sudo apt update
echo "\n === Installing Apache ==="
sudo apt install apache2 -y
echo "\n === Allow apache in firewall ==="
sudo ufw allow in "Apache"
echo "\n === Restarting apache2 service ==="
sudo systemctl restart apache2
echo "\n Apache default page: http://localhost"
## PHP
echo "\n === Installing PHP ==="
echo "\n === Adding Ondřej Surý ppa for PHP ==="
sudo add-apt-repository ppa:ondrej/php -y
echo "\n -- Updating package manager -- "
sudo apt update
echo "\n === Installing PHP 8.0 ==="
sudo apt install libapache2-mod-php8.0 php8.0 php8.0-mysql php8.0-curl php8.0-mbstring php8.0-xml -y
echo "\n === Installing PHP 8.1 ==="
sudo apt install libapache2-mod-php8.1 php8.1 php8.1-mysql php8.1-curl php8.1-mbstring php8.1-xml -y
echo "\n === Installing PHP 8.2 ==="
sudo apt install libapache2-mod-php8.2 php8.2 php8.2-mysql php8.2-curl php8.2-mbstring php8.2-xml -y
echo "\n === Installing PHP 8.3 ==="
sudo apt install libapache2-mod-php8.3 php8.3 php8.3-mysql php8.3-curl php8.3-mbstring php8.3-xml -y
echo "\n === PHP version ==="
php -v
echo "\n === Creating php info file ==="
echo "<?php phpinfo();" | sudo tee /var/www/html/info.php
if [ ! -f /var/www/html/info.php ] ; then
echo "Something happen when creating php info file, may be a permissions problem"
else
echo "PHP info http://localhost/info.php"
fi
## Composer
echo "\n ====== Installing Composer ======"
echo "\n === Downloading composer setup script ==="
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
echo "\n === Checking integrity installer ==="
HASH=`curl -sS https://composer.github.io/installer.sig`
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo '\n Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
echo "\n === Installing composer globally ==="
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
echo "\n === Composer version ==="
composer --version
## MariaDB
echo "\n === Installing MariaDB ==="
sudo apt install mariadb-server mariadb-client -y
echo "\n === Set up MariaDB secure installation"
sudo mysql_secure_installation
echo "\n === MariaDB version ==="
mariadb --version
echo "\n === NOTES ==="
echo "To change PHP version use command: sudo update-alternative --config php then restart apache service"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment