Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix #197 ujednolicenie chce_LAMP.sh #210

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.

Loading