Created
March 12, 2026 09:26
-
-
Save devinci-it/11fc95cd213cf1c3769484c36e00f132 to your computer and use it in GitHub Desktop.
Simple LAMP + Composer installer for Ubuntu/Debian
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # Simple LAMP + Composer installer for Ubuntu/Debian | |
| set -e | |
| echo "Starting LAMP + Composer installation..." | |
| # Update system | |
| echo "Updating package list..." | |
| sudo apt update -y | |
| sudo apt upgrade -y | |
| # Install Apache | |
| echo "Installing Apache..." | |
| sudo apt install apache2 -y | |
| sudo systemctl enable apache2 | |
| sudo systemctl start apache2 | |
| # Install PHP and common extensions | |
| echo "Installing PHP and common extensions..." | |
| sudo apt install php libapache2-mod-php php-cli php-mysql php-curl php-json php-mbstring php-xml php-zip -y | |
| # Install MySQL or MariaDB | |
| read -p "Do you want to install MySQL or MariaDB? (mysql/mariadb): " db_choice | |
| if [[ "$db_choice" == "mysql" ]]; then | |
| echo "Installing MySQL server..." | |
| sudo apt install mysql-server -y | |
| sudo systemctl enable mysql | |
| sudo systemctl start mysql | |
| elif [[ "$db_choice" == "mariadb" ]]; then | |
| echo "Installing MariaDB server..." | |
| sudo apt install mariadb-server -y | |
| sudo systemctl enable mariadb | |
| sudo systemctl start mariadb | |
| else | |
| echo "Invalid choice, skipping database installation." | |
| fi | |
| # Install Composer | |
| echo "Installing Composer..." | |
| EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')" | |
| php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" | |
| ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" | |
| if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then | |
| echo 'ERROR: Invalid Composer installer checksum' | |
| rm composer-setup.php | |
| exit 1 | |
| fi | |
| sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer | |
| rm composer-setup.php | |
| # Enable Apache mods and restart | |
| sudo a2enmod rewrite | |
| sudo systemctl restart apache2 | |
| echo "Installation complete!" | |
| echo "Apache version: $(apache2 -v | grep 'Server version')" | |
| echo "PHP version: $(php -v | head -n 1)" | |
| if [[ "$db_choice" == "mysql" ]]; then | |
| echo "MySQL version: $(mysql --version)" | |
| elif [[ "$db_choice" == "mariadb" ]]; then | |
| echo "MariaDB version: $(mariadb --version)" | |
| fi | |
| echo "Composer version: $(composer --version)" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment