Skip to content

Commit

Permalink
fix #197 ujednolicenie chce_LAMP.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefo committed Oct 23, 2024
1 parent acb6d49 commit 77d7795
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 77 deletions.
114 changes: 93 additions & 21 deletions scripts/chce_LAMP.sh
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,44 +1,116 @@
#!/bin/bash
# LAMP = Linux + Apache + MySQL (MariaDB) + PHP
# Autor: Jakub 'unknow' Mrugalski
# Edited and modified by: Andrzej 'Ferex' Szczepaniak, Jarosław 'Evilus' Rauza, Artur 'stefopl' Stefański

function show_help() {
echo "Użycie: $0 [--php-fpm | --php-mod]"
echo "Opcje:"
echo " --php-fpm Zainstaluj Apache z FPM/FastCGI"
echo " --php-mod Zainstaluj Apache z mod_php"
echo " -h, --help Wyświetl pomoc"
echo ""
}

[[ $EUID != 0 ]] && { echo "Uruchom jako root" ; exit; }

USE_PHP_FPM=false

if [[ $# -eq 0 ]]; then
show_help
fi

for arg in "$@"; do
case $arg in
--php-fpm)
USE_PHP_FPM=true
;;
--php-mod)
USE_PHP_FPM=false
;;
-h|--help)
show_help
exit 0
;;
*)
echo "Błąd: Nieprawidłowa opcja '$arg'."
show_help
exit 1
;;
esac
done

apt update
apt install -y software-properties-common
apt install -y software-properties-common

# Repozytoria zewnętrzne z najnowszym Apachem i PHP (nie ma ich w standardowym Ubuntu)
# Repozytoria zewnętrzne z najnowszymi PHP i Apache2 (nie ma ich w standardowym Ubuntu)
add-apt-repository -y ppa:ondrej/apache2
add-apt-repository -y ppa:ondrej/php

# apache + najpopularniejsze moduły do PHP
apt install -y apache2 php libapache2-mod-php php-zip php-xml php-sqlite3 php-pgsql php-mysql php-mcrypt php-mbstring php-intl php-gd php-curl php-cli php-bcmath

# dodanie MariaDB (klient i serwer)
apt install -y mariadb-server mariadb-client

# uruchomienie serwera mariadb
systemctl start mariadb
# Instalacja Apache2 oraz popularnych modułów PHP
if [ "$USE_PHP_FPM" = true ]; then
apt install -y apache2 libapache2-mod-fcgid php php-fpm php-curl php-common php-igbinary php-imagick php-intl php-mbstring php-xml php-zip php-bcmath php-gd php-cli php-memcached php-memcache php-sqlite3 php-pgsql php-mysql php-mcrypt
# Zmiana mpm_prefork na mpm_event mpm-prefork działa kiedy instalujemy libapache2-mod-php a mpm_event dla php-fpm
a2dismod mpm_prefork
if ! apache2ctl -M | grep -q 'mpm_event'; then
a2enmod mpm_event
fi
# Aktywacja konfiguracji modułu php-fpm dla apache2
PHP_VERSION="$(/usr/bin/php.default -v | head -1 | cut -c5-7)"
a2enconf php"$PHP_VERSION"-fpm
a2enmod rewrite setenvif proxy proxy_fcgi
else
apt install -y apache2 libapache2-mod-php php php-curl php-common php-igbinary php-imagick php-intl php-mbstring php-xml php-zip php-bcmath php-gd php-cli php-sqlite3 php-pgsql php-mysql php-mcrypt

# aktywacja mod_rewrite dla wspierania krótkich linków - np. w Wordpress
a2enmod rewrite
PHP_VERSION="$(/usr/bin/php.default -v | head -1 | cut -c5-7)"
a2disconf php"$PHP_VERSION"-fpm
a2dismod mpm_event
if ! apache2ctl -M | grep -q 'mpm_prefork'; then
a2enmod php"$PHP_VERSION"
a2enmod mpm_prefork
fi
a2enmod rewrite
fi

# restart usługi po dodaniu nowego modułu
# Restart Apache
systemctl restart apache2

# dodanie autostartu do mariadb i apache
# Instalacja MariaDB (klient i serwer)
apt install -y mariadb-server mariadb-client
# Uruchomienie serwera mariadb
systemctl start mariadb
# Dodanie MariaDB i Apache2 do autostartu
systemctl enable apache2
systemctl enable mariadb

# Usuwamy domyślną
rm /var/www/html/index.html

# Dowód na działanie PHP
echo '<?php echo "2 + 2 = ".(2+2); ' >/var/www/html/index.php
if [ -f /var/www/html/index.html ]; then
echo "Plik /var/www/html/index.html istnieje. Usuwanie..."
rm /var/www/html/index.html
fi

# == Lekki hardening ustawień ==
if [ -f /var/www/html/index.php ]; then
read -p "Plik /var/www/html/index.php już istnieje. Czy chcesz go nadpisać? (t/n): " choice
if [[ "$choice" != "t" ]]; then
echo "Plik nie został nadpisany."
exit 0
fi
fi

echo '<?php
echo "<h1>Test PHP</h1>";
echo "<p>Wynik dodawania 2 + 2 = " . (2 + 2) . "</p>";
echo "<p>Aktualny czas: " . date("d.m.Y H:i:s") . "</p>";
echo "<p>Wersja PHP: " . phpversion() . "</p>";
echo "<p>Server API: " . php_sapi_name() . "</p>";
echo "<p>Domyślna strona utworzona za pomocą skryptu <a href=\"https://github.com/unkn0w/noobs/\">NOOBS</a> <a href=\"https://github.com/unkn0w/noobs/blob/main/scripts/chce_LAMP.sh\">chce_LAMP.sh</a></p>";
?>' >/var/www/html/index.php

# == Lekki hardening ustawień ==
# Serwer ma się nie doklejać swojej stopki nigdzie
sed -i -e "s/^ServerSignature OS*.*\$/ServerSignature Off/" '/etc/apache2/conf-available/security.conf'

# Serwer będzie się przedstawiał jako "Apache" - bez wersji softu i OS
# Serwer będzie się przedstawiał jako "Apache" - bez wersji softu i OS
sed -i -e "s/^ServerTokens OS*.*\$/ServerTokens Prod/" '/etc/apache2/conf-available/security.conf'

# Restart Apache
systemctl restart apache2
56 changes: 0 additions & 56 deletions scripts/chce_LAMP_FastCGI.sh

This file was deleted.

0 comments on commit 77d7795

Please sign in to comment.