W tym artykule przedstawię skrypt który:
- ustawi wirtualny host na serwerze Apache
- wpisze ustawienia w plik hosts aby wpisując domenę przenieść się na wirtualny host
- utworzy bazę danych i użytkownika w MySQL
- 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