facebook-ictlaboratory.com

Wybierz swój język

W tym artykule przedstawię skrypt który:

  1. ustawi wirtualny host na serwerze Apache
  2. wpisze ustawienia w plik hosts aby wpisując domenę przenieść się na wirtualny host
  3. utworzy bazę danych i użytkownika w MySQL
  4. pobierze najnowszą wersję wordpress i rozpakuje je na dysk

Utwórz plik install_wordpress.sh

sudo mcedit install_wordpress.sh
#!/bin/bash

# Pyta o domenę i hasło
read -p "Podaj domenę (np. londonturysta): " DOMAIN
read -p "Podaj hasło dla użytkownika MySQL '${DOMAIN}': " MYSQL_PASSWORD

# Funkcja do sprawdzania i instalowania pakietów
install_if_not_installed() {
    if ! dpkg -l | grep -q "$1"; then
        echo "Instalowanie $1..."
        sudo apt install -y "$1"
    else
        echo "$1 już jest zainstalowany."
    fi
}

# Aktualizacja listy pakietów
sudo apt update

# Instalacja Apache2, PHP8.1 i MySQL jeśli nie są zainstalowane
install_if_not_installed "apache2"
install_if_not_installed "php8.1"
install_if_not_installed "libapache2-mod-php8.1"
install_if_not_installed "mysql-server"

# Instalacja dodatkowych rozszerzeń PHP
install_if_not_installed "php8.1-mysql"
install_if_not_installed "php8.1-xml"
install_if_not_installed "php8.1-mbstring"
install_if_not_installed "php8.1-curl"
install_if_not_installed "php8.1-zip"
install_if_not_installed "php8.1-gd"
install_if_not_installed "php8.1-intl"
install_if_not_installed "php8.1-soap"
install_if_not_installed "php8.1-bcmath"
install_if_not_installed "php8.1-imagick"

# Pobranie i zainstalowanie WordPressa
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
sudo mv wordpress /var/www/html/${DOMAIN}
sudo chown -R www-data:www-data /var/www/html/${DOMAIN}
sudo chmod -R 755 /var/www/html/${DOMAIN}

# Konfiguracja MySQL
sudo mysql -u root < ${APACHE_CONFIG}" <
    ServerAdmin admin@${DOMAIN}
    DocumentRoot /var/www/html/${DOMAIN}
    ServerName ${DOMAIN}
    ServerAlias www.${DOMAIN}

    
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    

    ErrorLog \${APACHE_LOG_DIR}/${DOMAIN}_error.log
    CustomLog \${APACHE_LOG_DIR}/${DOMAIN}_access.log combined

EOL

sudo a2ensite ${DOMAIN}.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

# Wyłączenie domyślnej strony Apache
sudo a2dissite 000-default.conf
sudo systemctl reload apache2

# Konfiguracja pliku /etc/hosts
if ! grep -q "${DOMAIN}" /etc/hosts; then
    sudo bash -c "echo '127.0.0.1 ${DOMAIN} www.${DOMAIN}' >> /etc/hosts"
fi

# Zrestartowanie serwera Apache
sudo systemctl restart apache2

# Informacja o zakończeniu
echo "Instalacja WordPressa zakończona. Przejdź do http://${DOMAIN}, aby dokończyć instalację przez przeglądarkę."

Zrób go wykonywalnym

chmod +x install_wordpress.sh

Uruchom go

./install_wordpress.sh