open:it:apache
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
open:it:apache [2024/07/13 19:05] – [FTP-Zugang] Kai | open:it:apache [2025/01/06 10:54] (aktuell) – [Webseiten & virtueller Host] Kai | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Apache Web-Server ====== | ====== Apache Web-Server ====== | ||
- | OS: Debian 11 | ||
===== Vorbereitung ===== | ===== Vorbereitung ===== | ||
Zeile 6: | Zeile 5: | ||
- [[open: | - [[open: | ||
- [[open: | - [[open: | ||
+ | - [[open: | ||
+ | - [[open: | ||
* https:// | * https:// | ||
* https:// | * https:// | ||
* https:// | * https:// | ||
+ | |||
===== Installation ===== | ===== Installation ===== | ||
sudo apt install apache2 | sudo apt install apache2 | ||
Zeile 15: | Zeile 17: | ||
sudo systemctl status apache2 | sudo systemctl status apache2 | ||
- | [[open: | ||
- | Firewall-Freigabe für Webseiten | ||
- | sudo ufw allow 80/tcp | ||
- | Firewall-Freigabe für Webseiten verschlüsselt | ||
- | sudo ufw allow 443/tcp | ||
Verzeichnis für Webseiten anlegen. | Verzeichnis für Webseiten anlegen. | ||
sudo mkdir / | sudo mkdir / | ||
- | Default-Einstellungen für die Webseiten-Verzeichnisse mit ACL. www-data wird als User & Gruppe vom Apache-Webbrowser | + | Default-Einstellungen für die Webseiten-Verzeichnisse mit ACL. www-data wird als User & Gruppe vom Apache-Webserver |
sudo setfacl -dm g: | sudo setfacl -dm g: | ||
Den Main-User in die Gruppe www-data aufnehmen, damit er Schreibrechte im Bereich der HTML-Seiten hat. | Den Main-User in die Gruppe www-data aufnehmen, damit er Schreibrechte im Bereich der HTML-Seiten hat. | ||
sudo usermod -aG www-data < | sudo usermod -aG www-data < | ||
+ | |||
+ | ==== Firewall ==== | ||
+ | [[open: | ||
+ | Freigabe für Webseiten | ||
+ | sudo ufw allow 80/tcp | ||
+ | Firewall-Freigabe für verschlüsselte Webseiten | ||
+ | sudo ufw allow 443/tcp | ||
+ | |||
+ | |||
===== FTP-Zugang ===== | ===== FTP-Zugang ===== | ||
sudo apt install vsftpd | sudo apt install vsftpd | ||
Zeile 44: | Zeile 50: | ||
sudo usermod -aG www-data < | sudo usermod -aG www-data < | ||
- | Zugang für FTP-User einschränken auf den Bereich der Webseiten | + | Zugang für FTP-User einschränken auf den Bereich der Webseiten |
sudo nano / | sudo nano / | ||
Zeile 59: | Zeile 65: | ||
Für den FTP-Zugriff von < | Für den FTP-Zugriff von < | ||
Der Owner vom Verzeichnis /var/www, bzw. Pfad aus Parameter **ChrootDirectory**, | Der Owner vom Verzeichnis /var/www, bzw. Pfad aus Parameter **ChrootDirectory**, | ||
- | Falls das nicht gegeben ist: | + | Diese Vorgaben gelten nur für das Hauptverzeichnis, |
+ | Ggf. Einstellungen anpassen:: | ||
Setze Besitzer. | Setze Besitzer. | ||
Zeile 71: | Zeile 78: | ||
Anschließend hat der FTP-User Lese-Zugriff auf das Verzeichnis /var/www \\ | Anschließend hat der FTP-User Lese-Zugriff auf das Verzeichnis /var/www \\ | ||
- | Schreibrechte müssen dann in weiteren Unterverzeichnissen (var/ | + | Schreibrechte müssen dann in weiteren Unterverzeichnissen (var/ |
===== Webseiten & virtueller Host ===== | ===== Webseiten & virtueller Host ===== | ||
Verzeichnis für die HTML-Daten über die Shell anlegen | Verzeichnis für die HTML-Daten über die Shell anlegen | ||
- | sudo mkdir / | + | sudo mkdir / |
- | sudo chmod -R 775 / | + | sudo chmod -R 775 / |
Die Programm-Dateien können dann mit einem FTP-Programm übertragen werden. | Die Programm-Dateien können dann mit einem FTP-Programm übertragen werden. | ||
Zeile 93: | Zeile 100: | ||
Apache-Konfiguration virtueller Host der Domain | Apache-Konfiguration virtueller Host der Domain | ||
- | sudo nano / | + | sudo nano / |
< | < | ||
- | ServerName | + | ServerName |
- | ServerAdmin mail@KSPI.DE | + | ServerAdmin mail@BLUEGNU.DE |
- | DocumentRoot / | + | DocumentRoot / |
ErrorLog ${APACHE_LOG_DIR}/ | ErrorLog ${APACHE_LOG_DIR}/ | ||
CustomLog ${APACHE_LOG_DIR}/ | CustomLog ${APACHE_LOG_DIR}/ | ||
- | < | + | < |
Options Indexes FollowSymLinks MultiViews | Options Indexes FollowSymLinks MultiViews | ||
AllowOverride All | AllowOverride All | ||
Zeile 112: | Zeile 119: | ||
Virtuellen Host im Apache-Web-Server registrieren | Virtuellen Host im Apache-Web-Server registrieren | ||
- | sudo a2ensite | + | sudo a2ensite |
Defaultseite deaktivieren. Dadurch wird erste Domain (nach Alphabet) zur Defaultseite, | Defaultseite deaktivieren. Dadurch wird erste Domain (nach Alphabet) zur Defaultseite, | ||
sudo a2dissite 000-default.conf | sudo a2dissite 000-default.conf | ||
Zeile 121: | Zeile 128: | ||
Hostname und Fully-Qualified Host Name (FQHN) festlegen | Hostname und Fully-Qualified Host Name (FQHN) festlegen | ||
- | sudo hostnamectl set-hostname server.KSPI.DE | + | sudo hostnamectl set-hostname server.BLUEGNU.DE |
Einstellungen für den Apacheserver testen | Einstellungen für den Apacheserver testen | ||
sudo apache2ctl configtest | sudo apache2ctl configtest | ||
Zeile 128: | Zeile 135: | ||
sudo nano /etc/hosts | sudo nano /etc/hosts | ||
- | 127.0.1.1 server.KSPI.DE server | + | 127.0.1.1 server.BLUEGNU.DE server |
127.0.0.1 localhost | 127.0.0.1 localhost | ||
Zeile 142: | Zeile 149: | ||
Simple HTML-Datei | Simple HTML-Datei | ||
- | sudo nano / | + | sudo nano / |
< | < | ||
Zeile 157: | Zeile 164: | ||
</ | </ | ||
+ | ===== Proxy-Server ===== | ||
+ | Erweiterungen installieren | ||
+ | sudo a2enmod proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html ssl | ||
+ | |||
+ | Konfiguration mit SSL, hier für eine Subdomain, siehe auch [[open: | ||
+ | sudo nano / | ||
+ | |||
+ | < | ||
+ | < | ||
+ | ServerName calibre.< | ||
+ | ... | ||
+ | ... | ||
+ | ProxyPass | ||
+ | ProxyPassReverse / http:// | ||
+ | ... | ||
+ | ... | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | DocumentRoot kann entfernt oder deaktiviert (#) werden | ||
+ | |||
+ | sudo apachectl configtest | ||
+ | |||
+ | sudo systemctl restart apache2 | ||
+ | |||
+ | Anschließend kann die Firewall für den Port 8080 (sofern verwendet) wieder deaktiviert werden, da der Aufruf nun über den Domainnamen bzw. Subdomain erfolgt. Siehe auch [[open: | ||
===== SSL-Zertifikate ===== | ===== SSL-Zertifikate ===== | ||
- | https:// | + | [[https:// |
+ | [[https:// | ||
==== DNS-Einstellungen ==== | ==== DNS-Einstellungen ==== | ||
Die DNS-Zeiger der Domain(s) müssen vorher beim Domainprovider eingestellt sein: | Die DNS-Zeiger der Domain(s) müssen vorher beim Domainprovider eingestellt sein: | ||
Zeile 171: | Zeile 206: | ||
Zertifikat(e) erstellen | Zertifikat(e) erstellen | ||
sudo certbot --apache | sudo certbot --apache | ||
- | Durch das Erstellen eines Zertifikats wird automatisch zusätzlich eine Datei für den virtuellen Host der SSL-Verbindung angelegt. Z.B. für die Hostdatei "KSPI.DE.conf", | + | Durch das Erstellen eines Zertifikats wird automatisch zusätzlich eine Datei für den virtuellen Host der SSL-Verbindung angelegt. Z.B. für die Hostdatei "BLUEGNU.DE.conf", |
\\ | \\ | ||
Timer-Einstellungen für Autorenew | Timer-Einstellungen für Autorenew | ||
Zeile 183: | Zeile 218: | ||
===== Weitere Domains ===== | ===== Weitere Domains ===== | ||
- | Hier als Beispiel die Subdomain für das wiki > https:// | + | Hier als Beispiel die Subdomain für das wiki > https:// |
Verzeichnis für die Daten anlegen | Verzeichnis für die Daten anlegen | ||
- | sudo mkdir / | + | sudo mkdir / |
Die Programm-Dateien können dann mit einem FTP-Programm übertragen werden. | Die Programm-Dateien können dann mit einem FTP-Programm übertragen werden. | ||
Apache-Konfiguration virtueller Host der Domain | Apache-Konfiguration virtueller Host der Domain | ||
- | sudo nano / | + | sudo nano / |
< | < | ||
- | ServerName wiki.KSPI.DE | + | ServerName wiki.BLUEGNU.DE |
- | ServerAdmin mail@KSPI.DE | + | ServerAdmin mail@BLUEGNU.DE |
- | DocumentRoot / | + | DocumentRoot / |
ErrorLog ${APACHE_LOG_DIR}/ | ErrorLog ${APACHE_LOG_DIR}/ | ||
CustomLog ${APACHE_LOG_DIR}/ | CustomLog ${APACHE_LOG_DIR}/ | ||
- | < | + | < |
Options Indexes FollowSymLinks MultiViews | Options Indexes FollowSymLinks MultiViews | ||
AllowOverride All | AllowOverride All | ||
Zeile 207: | Zeile 242: | ||
Virtuellen Host im Apache-Web-Server registrieren | Virtuellen Host im Apache-Web-Server registrieren | ||
- | sudo a2ensite wiki.KSPI.DE.conf | + | sudo a2ensite wiki.BLUEGNU.DE.conf |
Einstellungen für den Apacheserver testen | Einstellungen für den Apacheserver testen | ||
sudo apache2ctl configtest | sudo apache2ctl configtest | ||
Zeile 214: | Zeile 249: | ||
SSL-Zertifikat registrieren | SSL-Zertifikat registrieren | ||
sudo certbot --apache | sudo certbot --apache | ||
- | |||
- | ===== PHP ===== | ||
- | |||
- | ==== Ubuntu ==== | ||
- | |||
- | https:// | ||
- | |||
- | ==== Debian ==== | ||
- | |||
- | Der Apache-Server kann parallel mit unterschiedlichen PHP-Versionen betrieben und eine Version davon einer Domain explizit zugewiesen werden. \\ | ||
- | Quelle: https:// | ||
- | |||
- | Benötigte Pakete wie curl installieren | ||
- | sudo apt-get -y install apt-transport-https lsb-release ca-certificates curl | ||
- | Mit dem sury PHP Repository kommunizieren > Schlüssel herunterladen und installieren | ||
- | sudo curl -sSL -o / | ||
- | sury PHP Repository zur Source-List hinzufügen | ||
- | sudo sh -c 'echo "deb https:// | ||
- | |||
- | Paketlisten neu einlesen und aktualisieren. | ||
- | sudo apt-get update | ||
- | |||
- | PHP-Versionen installieren (je nach Bedarf) | ||
- | sudo apt install php7.4 php7.4-bcmath php7.4-cli php7.4-common php7.4-curl php7.4-dev php7.4-fpm php7.4-gd php7.4-imap php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-soap php7.4-sqlite3 php7.4-tidy php7.4-xsl php7.4-zip | ||
- | |||
- | sudo apt install php8.0 php8.0-bcmath php8.0-cli php8.0-common php8.0-curl php8.0-dev php8.0-fpm php8.0-gd php8.0-imap php8.0-intl php8.0-mbstring php8.0-mysql php8.0-opcache php8.0-readline php8.0-soap php8.0-sqlite3 php8.0-tidy php8.0-xml php8.0-xsl php8.0-zip | ||
- | |||
- | sudo apt install php8.2 php8.2-bcmath php8.2-cli php8.2-common php8.2-curl php8.2-dev php8.2-fpm php8.2-gd php8.2-imap php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline php8.2-soap php8.2-sqlite3 php8.2-tidy php8.2-xml php8.2-xsl php8.2-zip | ||
- | |||
- | Check Installiert - sollte bei allen Versionen klappen | ||
- | sudo systemctl status php7.4-fpm.service | ||
- | |||
- | Apache-Module zum Umgang mit den PHP-FPM Installationen | ||
- | sudo apt-get install libapache2-mod-fcgid php-fpm | ||
- | |||
- | sudo a2enmod actions alias fcgid proxy_fcgi | ||
- | |||
- | Version auswählen (Server intern) | ||
- | sudo update-alternatives --config php | ||
- | |||
- | Auswahl Basisversion (Server intern) | ||
- | sudo update-alternatives --config php-fpm.sock | ||
- | |||
- | Standartversion Apache festlegen -> hier nur eine Version, die anderen, sofern aktiviert, mit a2disconf abschalten | ||
- | sudo a2enconf php8.2-fpm.conf | ||
- | |||
- | sudo systemctl reload apache2 | ||
- | | ||
- | Nur wenn eine Domain/ | ||
- | sudo nano / | ||
- | Zum Beispiel: | ||
- | Include / | ||
- | |||
- | sudo systemctl reload apache2 | ||
- | |||
- | Check PHP-Version auf Webseite | ||
- | sudo nano / | ||
- | |||
- | <? | ||
- | phpinfo(); | ||
- | ?> | ||
- | |||
- | ===== MySQL-Datenbank ===== | ||
- | |||
- | sudo apt-get install mariadb-server | ||
- | |||
- | sudo mysql_secure_installation | ||
- | |||
- | " | ||
- | |||
- | Standardverzeichnis für Datenbanken | ||
- | |||
- | / | ||
- | ==== PHPMyAdmin ==== | ||
- | Es ist möglich, die PHPMyAdmin von Debian zu verwenden > apt install phpmyadmin. \\ | ||
- | Alternativ (hier angewandt) die aktuelle Variante von der Internetseite von phpmyadmin.net verwenden. | ||
- | Aktuelle Installationsdateien downloaden in Unterverzeichnis des Apacheservers, | ||
- | |||
- | cd / | ||
- | In diesem Beispiel wird eine bestehende Domain genutzt und darin das Unterverzeichnis phpmyadmin erstellt. Aufruf über den Browser mit < | ||
- | Alternative: | ||
- | |||
- | Download der Installations-Dateien | ||
- | sudo wget https:// | ||
- | |||
- | Sollte unzip nicht installiert sein: | ||
- | sudo apt-get install unzip | ||
- | |||
- | sudo unzip phpMyAdmin-5.2.1-all-languages.zip | ||
- | |||
- | sudo mv phpMyAdmin-5.2.1-all-languages/ | ||
- | |||
- | sudo chown -R www-data: | ||
- | |||
- | sudo chmod -R 775 / | ||
- | |||
- | cd phpmyadmin/ | ||
- | |||
- | sudo cp config.sample.inc.php config.inc.php | ||
- | |||
- | sudo nano config.inc.php | ||
- | ÄNDERN IN: | ||
- | $cfg[' | ||
- | |||
- | Sicherheit: direkten root-Zugang über phpmyadmin sperren. \\ | ||
- | |||
- | Möglich über phpmyadmin oder wie folgt: | ||
- | |||
- | sudo nano / | ||
- | Entscheidung über letzte Zeile (AllowRoot = false == gesperrt) ggf. Zeile einfügen: \\ | ||
- | /* Configure according to dbconfig-common if enabled */ | ||
- | if (!empty($dbname)) { | ||
- | /* Authentication type */ | ||
- | $cfg[' | ||
- | $cfg[' | ||
- | ... | ||
- | |||
- | Neuen User anlegen: | ||
- | sudo mysql | ||
- | |||
- | CREATE USER '< | ||
- | |||
- | User mit Rechten versehen (hier alle): | ||
- | GRANT ALL PRIVILEGES ON * . * TO '< | ||
- | Berechtigungen neu laden: | ||
- | FLUSH PRIVILEGES; | ||
- | | ||
- | ~~DISCUSSION~~ | ||
open/it/apache.1720890314.txt.gz · Zuletzt geändert: 2024/07/13 19:05 von Kai