27
Jul
2023

Lamp WordPress install Script

ein gefundenes Bash install script , dass in 2 Schritten Lamp und dann WordPress installiert (im Home Ordner ist die log.txt. )

Die Scripte habe ich mal gesichert, falls sie mal wegkommen sollten. – Ansonsten immer vom Original installieren !

ACHTUNG: Das WordPress Install Script macht noch Probleme – Stand 29.07.2023


wget https://raw.githubusercontent.com/DjNaufrago/LAMP-Wordpress-installer/main/install-lamp.sh

Lamp install.sh

#!bin/bash

#
#       Author:   Reinaldo Moreno
#  Description:   Apache web server installer, PHP modules,
#                 MariaDB database and firewall configuration.
#           SO:   Ubuntu Server 22.04
# Architecture:   EC2 Amazon Web Service Instance
#

startinstall() {
  Color_Off='\033[0m'       # Reset
  Green='\033[0;32m'        # Green
  Cyan='\033[0;36m'         # Cyan
  Yellow='\033[0;33m'       # Yellow

  echo -e "${Yellow} * Starting installation... ${Color_Off}"
  touch /home/ubuntu/log.txt
  echo "Unattended installation of LAMP Server" | tee -a $HOME/log.txt
  echo "Author - Reinaldo Moreno" | tee -a $HOME/log.txt
}

# Update repository and install latest packages.
updateupgrade() {
  echo "$(date "+%F - %T") - Update the list of repositories..." | tee -a $HOME/log.txt
  sudo apt-get -y -qq update
  echo "$(date "+%F - %T") - Installing latest packages..." | tee -a $HOME/log.txt
  sudo apt-get -y -qq upgrade
  echo "$(date "+%F - %T") - Installing pwgen password generator." | tee -a $HOME/log.txt
  sudo apt-get install -qq pwgen
}
    
# Install apache web server.
installapache() {
  echo "$(date "+%F - %T") - Installing Apache2." | tee -a $HOME/log.txt
	sudo apt-get -qq install apache2
}

# Install PHP modules.
installphp() {
  sudo apt-get -qq install php libapache2-mod-php php-mysql \
  php-common php-cli php-common php-json php-opcache php-readline \
  php-mbstring php-gd php-dom php-zip php-curl
  echo "$(date "+%F - %T") - Installing PHP modules." | tee -a $HOME/log.txt
}

# Install MariaDB Server.
# Generate key for root user.
# Remove anonymous users, remove remote access and delete test database.
installconfigmariadb() {
  echo "$(date "+%F - %T") - Installing MariaDB." | tee -a $HOME/log.txt
  sudo apt-get install -qq mariadb-server

  echo "$(date "+%F - %T") - Generating root key for MariaDB." | tee -a $HOME/log.txt
  DB_ROOT_PASS="$(pwgen -1 -s 16)"

  echo "$(date "+%F - %T") - Setting root password for MariaDB." | tee -a $HOME/log.txt
  sudo mysql -e "UPDATE mysql.global_priv SET priv=json_set(priv, '$.plugin', \
    'mysql_native_password', '$.authentication_string', \
    PASSWORD('$DB_ROOT_PASS')) WHERE User='root';"

  echo "$(date "+%F - %T") - Applying privileges to MariaDB root user." | tee -a $HOME/log.txt    
  sudo mysql -e "FLUSH PRIVILEGES;"  

  echo "$(date "+%F - %T") - Deleting anonymous users in MariaDB." | tee -a $HOME/log.txt
  sudo mysql -u root -p$DB_ROOT_PASS -e "DELETE FROM mysql.user WHERE User='';"
  echo "$(date "+%F - %T") - Removing remote access to databases." | tee -a $HOME/log.txt
  sudo mysql -u root -p$DB_ROOT_PASS -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
  echo "$(date "+%F - %T") - Deleting test database." | tee -a $HOME/log.txt
  sudo mysql -u root -p$DB_ROOT_PASS -e "DROP DATABASE IF EXISTS test;"
  sudo mysql -u root -p$DB_ROOT_PASS -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
  echo "$(date "+%F - %T") - Applying changes." | tee -a $HOME/log.txt
  sudo mysql -u root -p$DB_ROOT_PASS -e "FLUSH PRIVILEGES;"
}


# Set rules on the firewall to give access to ssh, http, https.
configfirewall() {
  echo "$(date "+%F - %T") - Setting firewall rules for ports 22, 80 and 443." | tee -a $HOME/log.txt
  sudo ufw default deny incoming
  sudo ufw allow ssh
  sudo ufw allow http
  sudo ufw allow https
  sudo echo y | sudo ufw enable
  # For Oracle Cloud, comment out the above values and uncomment the following:
  # sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
  # sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
  # sudo netfilter-persistent save
}

# Clean installation cache and files that are no longer needed.
finishcleanrestart() {
  echo "$(date "+%F - %T") - Assigning permissions to the web directory." | tee -a $HOME/log.txt
  sudo adduser $USER www-data
  sudo chmod g+w /var/www -R
  sudo chown -R www-data:www-data /var/www/
  echo -e "ServerName localhost" | sudo tee -a /etc/apache2/apache2.conf
  echo "$(date "+%F - %T") - Clearing package cache an restart web service." | tee -a $HOME/log.txt
  sudo apt-get clean
  sudo apt-get autoclean
  sudo systemctl restart apache2
}

startinstall
updateupgrade
installapache
installphp
installconfigmariadb
configfirewall
finishcleanrestart

echo -e '\n' >> $HOME/log.txt
echo '# ============ MARIADB ROOT PASSWORD ============' >> $HOME/log.txt
echo '# =====' >> $HOME/log.txt
echo "# ===== MARIADB ROOT PASSWORD: $DB_ROOT_PASS" >> $HOME/log.txt
echo '# =====' >> $HOME/log.txt

echo -e "\n${Yellow} * LAMP SERVER IS READY!!!${Color_Off}"
echo -e "\n${Green} * Installation details in /home/ubuntu/log.txt.${Color_Off}"
echo -e "\n${Yellow} * DO NOT DELETE THIS FILE BEFORE COPYING THE DATA.${Color_Off}"
echo -e "\n${Green} * You can access through your domain name or public ip address.${Color_Off}"


gefunden auf: https://github.com/DjNaufrago/LAMP-Wordpress-installer

Share

You may also like...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert