Apache Webserver - Ubuntu: Unterschied zwischen den Versionen
Peter (Diskussion | Beiträge) K |
|||
| (6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
[[Kategorie:Inhalt]] | [[Kategorie:Inhalt]] | ||
[[Kategorie:Linux Server]] | [[Kategorie:Linux Server]] | ||
| + | __INHALTSVERZEICHNIS_ERZWINGEN__ | ||
__INDEXIEREN__ | __INDEXIEREN__ | ||
Da Linux sehr gerne genommen wird, um einen Webauftritt darzustellen, ob lokal oder im Internet. Dies Spielt keine Rolle. Da hat sich Linux eindeutig durchgesetzt und macht seine Sache wirklich gut. | Da Linux sehr gerne genommen wird, um einen Webauftritt darzustellen, ob lokal oder im Internet. Dies Spielt keine Rolle. Da hat sich Linux eindeutig durchgesetzt und macht seine Sache wirklich gut. | ||
| − | === '''Installation''' === | + | ===<span style="color:#FF0000"> '''Installation</span>''' === |
----<syntaxhighlight lang="console"> | ----<syntaxhighlight lang="console"> | ||
sudo apt install -y software-properties-common | sudo apt install -y software-properties-common | ||
| Zeile 19: | Zeile 20: | ||
[[Datei:U Apache2 1.png|zentriert|mini|1000x1000px]] | [[Datei:U Apache2 1.png|zentriert|mini|1000x1000px]] | ||
| − | === '''PHP''' === | + | === '''<span style="color:#FF0000">PHP</span>''' === |
---- | ---- | ||
| − | ==== '''Installieren''' ==== | + | ==== '''<span style="color:#4682B4">Installieren</span>''' ==== |
Es ist immer von Vorteil ein PHP Framework auf seinem System laufen zu lassen. Ich habe schon einen Beitrag zu gemacht. Daher werde ich nicht näher eingehen und es mit der Seite Verlinken. | Es ist immer von Vorteil ein PHP Framework auf seinem System laufen zu lassen. Ich habe schon einen Beitrag zu gemacht. Daher werde ich nicht näher eingehen und es mit der Seite Verlinken. | ||
| Zeile 29: | Zeile 30: | ||
</syntaxhighlight>Link: [[PHP Installieren - Ubuntu]] | </syntaxhighlight>Link: [[PHP Installieren - Ubuntu]] | ||
| − | ==== '''Aktivieren''' ==== | + | ==== '''<span style="color:#4682B4">Aktivieren</span>''' ==== |
Wir müssen noch PHP aktivieren<syntaxhighlight lang="console"> | Wir müssen noch PHP aktivieren<syntaxhighlight lang="console"> | ||
a2enmod php7.4 | a2enmod php7.4 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | === '''MySQL installieren''' === | + | === '''<span style="color:#FF0000">MySQL installieren</span>''' === |
----Zu jedem Webserver gehört immer eine Datenbank, ich habe für euch mal die MySQL gewählt, da sie sehr beliebt ist und auch super funktioniert. Ich gehe nicht näher ein, da ich einen Betrag dafür schon erstellt habe und ihn verlinkt habe. | ----Zu jedem Webserver gehört immer eine Datenbank, ich habe für euch mal die MySQL gewählt, da sie sehr beliebt ist und auch super funktioniert. Ich gehe nicht näher ein, da ich einen Betrag dafür schon erstellt habe und ihn verlinkt habe. | ||
Link: [[MySQL installieren - Ubuntu]] | Link: [[MySQL installieren - Ubuntu]] | ||
| − | === '''Virtual Hosts''' === | + | === '''<span style="color:#FF0000">Virtual Hosts</span>''' === |
----Wir müssen einen virtuellen Host anlegen, in den alles hinein Geroutet. Aber wir werden vorher einen Ordner anlegen, wo wir die Homepage Dateien ablegen. Der Standard Pfad lautet "/var/www/", in diesem Pfad werden wir einen neuen Ordner anlegen, am besten immer so wie die Homepage lauten soll.<syntaxhighlight lang="console"> | ----Wir müssen einen virtuellen Host anlegen, in den alles hinein Geroutet. Aber wir werden vorher einen Ordner anlegen, wo wir die Homepage Dateien ablegen. Der Standard Pfad lautet "/var/www/", in diesem Pfad werden wir einen neuen Ordner anlegen, am besten immer so wie die Homepage lauten soll.<syntaxhighlight lang="console"> | ||
mkdir /var/www/your_homepage | mkdir /var/www/your_homepage | ||
| Zeile 57: | Zeile 58: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | ==== '''Erklärung''' ==== | + | ==== '''<span style="color:#FF0000">Erklärung</span>''' ==== |
| − | ===== '''ServerAdmin''' ===== | + | ===== '''<span style="color:#4682B4">ServerAdmin</span>''' ===== |
<syntaxhighlight lang="vim"> | <syntaxhighlight lang="vim"> | ||
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
</syntaxhighlight>Mit der ServerAdmin Direktive sollte die E-Mail-Adresse des Server-Administrators hinterlegt werden. Diese wird u.a. in den Fehlermeldungen des Apache stehen und ist für den Kontakt zum Administrator erforderlich! | </syntaxhighlight>Mit der ServerAdmin Direktive sollte die E-Mail-Adresse des Server-Administrators hinterlegt werden. Diese wird u.a. in den Fehlermeldungen des Apache stehen und ist für den Kontakt zum Administrator erforderlich! | ||
| − | ===== '''ServerName''' ===== | + | ===== '''<span style="color:#4682B4">ServerName</span>''' ===== |
<syntaxhighlight lang="vim"> | <syntaxhighlight lang="vim"> | ||
ServerName servername | ServerName servername | ||
</syntaxhighlight>Mit der ServerName Direktive wird festgelegt, unter welchem primären Namen eine Seite erreichbar ist. Es ist zwingend erforderlich, dass dieser Name entweder via DNS oder alternativ über die /etc/hosts auflösbar ist! | </syntaxhighlight>Mit der ServerName Direktive wird festgelegt, unter welchem primären Namen eine Seite erreichbar ist. Es ist zwingend erforderlich, dass dieser Name entweder via DNS oder alternativ über die /etc/hosts auflösbar ist! | ||
| − | ===== '''ServerAlias''' ===== | + | ===== '''<span style="color:#4682B4">ServerAlias</span>''' ===== |
<syntaxhighlight lang="vim"> | <syntaxhighlight lang="vim"> | ||
ServerAlias name1 name2 name3 | ServerAlias name1 name2 name3 | ||
</syntaxhighlight>Wenn ein und dieselbe Seite unter verschiedenen Rechnernamen erreichbar sein muss, ist es erforderlich, diese mit der ServerAlias Direktive zu definieren. Achtung! Keine unerlaubten Zeichen (z.B. Bindestrich) verwenden. | </syntaxhighlight>Wenn ein und dieselbe Seite unter verschiedenen Rechnernamen erreichbar sein muss, ist es erforderlich, diese mit der ServerAlias Direktive zu definieren. Achtung! Keine unerlaubten Zeichen (z.B. Bindestrich) verwenden. | ||
| − | ===== '''DocumentRoot''' ===== | + | ===== '''<span style="color:#4682B4">DocumentRoot</span>''' ===== |
<syntaxhighlight lang="vim"> | <syntaxhighlight lang="vim"> | ||
DocumentRoot /var/www/html | DocumentRoot /var/www/html | ||
</syntaxhighlight>Mit der Direktive DocumentRoot muss das Basisverzeichnis (engl. "document root") des Virtual Hosts (bzw. der Seite) angegeben werden. Sollte nun mit <nowiki>http://SERVERNAME/datei.html</nowiki> ein Zugriff versucht werden, so würde Apache in diesem Beispiel die Datei /var/www/html/datei.html an den Client ausliefern. | </syntaxhighlight>Mit der Direktive DocumentRoot muss das Basisverzeichnis (engl. "document root") des Virtual Hosts (bzw. der Seite) angegeben werden. Sollte nun mit <nowiki>http://SERVERNAME/datei.html</nowiki> ein Zugriff versucht werden, so würde Apache in diesem Beispiel die Datei /var/www/html/datei.html an den Client ausliefern. | ||
| − | ==== '''Administration''' ==== | + | ==== '''<span style="color:#4682B4">Administration</span>''' ==== |
Zuerst werden wir die Defaultseite deaktivieren, damit der Server danach sauber ist.<syntaxhighlight lang="console"> | Zuerst werden wir die Defaultseite deaktivieren, damit der Server danach sauber ist.<syntaxhighlight lang="console"> | ||
sudo a2dissite 000-default.conf | sudo a2dissite 000-default.conf | ||
| Zeile 93: | Zeile 94: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | === '''System''' === | + | === '''<span style="color:#FF0000">System</span>''' === |
---- | ---- | ||
| + | ==== '''<span style="color:#4682B4">Apache HTTP Server Control Interface</span>''' ==== | ||
| + | Mit dem Befehl überprüft man die Konfiguration, die von Apache2 durchgeführt wird. Da sich der Befehl, sehr eignet um eine Neuinstallation, neuen Domäne auf Fehler zu untersuchen.<syntaxhighlight lang="console"> | ||
| + | sudo apachectl configtest | ||
| + | </syntaxhighlight>Es gibt noch mehr Möglichkeiten, die zeige ich euch darunter in der Tabelle. | ||
| + | {| class=" wikitable sortable" style="width: 100%;" | ||
| + | |+sudo apachectl <Kommando> | ||
| + | !Wert | ||
| + | !Beschreibung | ||
| + | |- | ||
| + | |style="text-align:center;"|start | ||
| + | |Starten Sie den Apache httpd-Daemon. Gibt einen Fehler aus, wenn es bereits ausgeführt wird. Dies entspricht einem apachectl -k-Start. | ||
| + | |- | ||
| + | |style="text-align:center;"|stop | ||
| + | |Stoppt den Apache httpd-Daemon. Dies entspricht apachectl -k stop. | ||
| + | |- | ||
| + | |style="text-align:center;"|restart | ||
| + | |Startet den Apache httpd-Daemon neu. Wenn der Dämon nicht ausgeführt wird, wird er gestartet. Dieser Befehl überprüft die Konfigurationsdateien automatisch wie in configtest, bevor der Neustart gestartet wird, um sicherzustellen, dass der Dämon nicht stirbt. Dies entspricht einem Neustart von apachectl -k. | ||
| + | |- | ||
| + | |style="text-align:center;"|fullstatus | ||
| + | |Zeigt einen vollständigen Statusbericht von mod_status an. Damit dies funktioniert, müssen Sie mod_status auf Ihrem Server aktiviert haben und einen textbasierten Browser wie lynx auf Ihrem System verfügbar haben. Die URL für den Zugriff auf den Statusbericht kann durch Bearbeiten der Variablen STATUSURL im Skript festgelegt werden. | ||
| + | |- | ||
| + | |style="text-align:center;"|status | ||
| + | |Zeigt einen kurzen Statusbericht an. Ähnlich wie bei der Option fullstatus, außer dass die Liste der aktuell zugestellten Anforderungen weggelassen wird. | ||
| + | |- | ||
| + | |style="text-align:center;"|graceful | ||
| + | |Startet den Apache httpd-Daemon ordnungsgemäß neu. Wenn der Dämon nicht ausgeführt wird, wird er gestartet. Dies unterscheidet sich von einem normalen Neustart dadurch, dass derzeit offene Verbindungen nicht abgebrochen werden. Ein Nebeneffekt ist, dass alte Protokolldateien nicht sofort geschlossen werden. Dies bedeutet, dass bei Verwendung in einem Protokollrotationsskript eine erhebliche Verzögerung erforderlich sein kann, um sicherzustellen, dass die alten Protokolldateien geschlossen werden, bevor sie verarbeitet werden. Dieser Befehl überprüft die Konfigurationsdateien automatisch wie in configtest, bevor der Neustart gestartet wird, um sicherzustellen, dass Apache nicht stirbt. Dies ist gleichbedeutend mit apachectl -k anmutig. | ||
| + | |- | ||
| + | |style="text-align:center;"|graceful-stop | ||
| + | |Stoppt den Apache httpd-Daemon ordnungsgemäß. Dies unterscheidet sich von einem normalen Stopp dadurch, dass derzeit offene Verbindungen nicht abgebrochen werden. Ein Nebeneffekt ist, dass alte Protokolldateien nicht sofort geschlossen werden. Dies entspricht apachectl -k Graceful-Stop. | ||
| + | |- | ||
| + | |style="text-align:center;"|configtest | ||
| + | |Führen Sie einen Syntaxtest für Konfigurationsdateien aus. Es analysiert die Konfigurationsdateien und meldet entweder Syntax Ok oder detaillierte Informationen zu dem jeweiligen Syntaxfehler. Dies entspricht apachectl -t. | ||
| + | Die folgende Option war in früheren Versionen verfügbar, wurde jedoch entfernt. | ||
| + | |- | ||
| + | |style="text-align:center;"|startssl | ||
| + | |Um httpd mit SSL-Unterstützung zu starten, sollten Sie Ihre Konfigurationsdatei so bearbeiten, dass sie die relevanten Anweisungen enthält, und dann den normalen Apachectl-Start verwenden. | ||
| + | |} | ||
| − | ==== ''' | + | ==== '''<span style="color:#4682B4">Einstellungen neu laden</span>''' ==== |
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
sudo systemctl reload apache2 | sudo systemctl reload apache2 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | ==== '''Dienste''' ==== | + | ==== '''<span style="color:#4682B4">Dienste</span>''' ==== |
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
sudo systemctl enable apache2 | sudo systemctl enable apache2 | ||
Aktuelle Version vom 9. November 2020, 04:56 Uhr
Da Linux sehr gerne genommen wird, um einen Webauftritt darzustellen, ob lokal oder im Internet. Dies Spielt keine Rolle. Da hat sich Linux eindeutig durchgesetzt und macht seine Sache wirklich gut.
Installation[Bearbeiten | Quelltext bearbeiten]
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/apache2
sudo apt update
sudo apt install -y apache2
Damit der Apache Webserver auch läuft und auch nach einem Neustart gestartet wird, werden wir diese Befehle absetzten.
sudo systemctl status apache2
sudo systemctl start apache2
sudo systemctl enable apache2
Damit wir kontrollieren können, ob der Webserver auch läuft, werden wir in einem Browser deiner Wahl, mit dem HTTP Protokoll und der IP-Adresse anwählen.
http://yout_server_IP
PHP[Bearbeiten | Quelltext bearbeiten]
Installieren[Bearbeiten | Quelltext bearbeiten]
Es ist immer von Vorteil ein PHP Framework auf seinem System laufen zu lassen. Ich habe schon einen Beitrag zu gemacht. Daher werde ich nicht näher eingehen und es mit der Seite Verlinken.
In vielen Fällen werden aber auch das Paket von PHP benötigt, daher werden wir es ebenso installieren. Ich habe auch, für euch einen Beitrag gestaltet, wie ihr dies Komplett installieren könnt. Aber das erforderliche Paket, möchte ich euch hier nochmal zeigen.
sudo apt install -y libapache2-mod-php
Link: PHP Installieren - Ubuntu
Aktivieren[Bearbeiten | Quelltext bearbeiten]
Wir müssen noch PHP aktivieren
a2enmod php7.4
MySQL installieren[Bearbeiten | Quelltext bearbeiten]
Zu jedem Webserver gehört immer eine Datenbank, ich habe für euch mal die MySQL gewählt, da sie sehr beliebt ist und auch super funktioniert. Ich gehe nicht näher ein, da ich einen Betrag dafür schon erstellt habe und ihn verlinkt habe.
Link: MySQL installieren - Ubuntu
Virtual Hosts[Bearbeiten | Quelltext bearbeiten]
Wir müssen einen virtuellen Host anlegen, in den alles hinein Geroutet. Aber wir werden vorher einen Ordner anlegen, wo wir die Homepage Dateien ablegen. Der Standard Pfad lautet "/var/www/", in diesem Pfad werden wir einen neuen Ordner anlegen, am besten immer so wie die Homepage lauten soll.
mkdir /var/www/your_homepage
In dem Konfigurationspfad "/etc/apache2/sites-available/", sind von allen Konfigurationen zur Homepage gespeichert, die nötig sind damit Apache sauber arbeiten kann. Wir müssen die natürlich anpassen, um eine funktionsfähige Seite zu erstellen. Die 000-default.conf ist die Standarddatei für die virtuellen Hosts und kann für weitere virtuelle Hosts verwendet werden. Zum Ansehen der Datei:
cat /etc/apache2/sites-available/000-default.conf
Wir werden wie der Pfad erstellt wurde, auch die Konfigurationsdatei erstellen, wie die Homepage genannt wurde.
nano /etc/apache2/sites-available/your_homepage.conf
Und füge diese Zeilen angepasst ein.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName servername
ServerAlias name1 name2 name3
DocumentRoot /var/www/your_homepage
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Erklärung[Bearbeiten | Quelltext bearbeiten]
ServerAdmin[Bearbeiten | Quelltext bearbeiten]
ServerAdmin webmaster@localhost
Mit der ServerAdmin Direktive sollte die E-Mail-Adresse des Server-Administrators hinterlegt werden. Diese wird u.a. in den Fehlermeldungen des Apache stehen und ist für den Kontakt zum Administrator erforderlich!
ServerName[Bearbeiten | Quelltext bearbeiten]
ServerName servername
Mit der ServerName Direktive wird festgelegt, unter welchem primären Namen eine Seite erreichbar ist. Es ist zwingend erforderlich, dass dieser Name entweder via DNS oder alternativ über die /etc/hosts auflösbar ist!
ServerAlias[Bearbeiten | Quelltext bearbeiten]
ServerAlias name1 name2 name3
Wenn ein und dieselbe Seite unter verschiedenen Rechnernamen erreichbar sein muss, ist es erforderlich, diese mit der ServerAlias Direktive zu definieren. Achtung! Keine unerlaubten Zeichen (z.B. Bindestrich) verwenden.
DocumentRoot[Bearbeiten | Quelltext bearbeiten]
DocumentRoot /var/www/html
Mit der Direktive DocumentRoot muss das Basisverzeichnis (engl. "document root") des Virtual Hosts (bzw. der Seite) angegeben werden. Sollte nun mit http://SERVERNAME/datei.html ein Zugriff versucht werden, so würde Apache in diesem Beispiel die Datei /var/www/html/datei.html an den Client ausliefern.
Administration[Bearbeiten | Quelltext bearbeiten]
Zuerst werden wir die Defaultseite deaktivieren, damit der Server danach sauber ist.
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
Wenn ein neuer Virtual Host angelegt wurde, ist dieser zwar verfügbar ("available") aber noch nicht aktiviert ("enabled"). Bei auf Debian basierenden Systemen (somit auch Ubuntu) können folgende Befehle verwendet werden:
sudo a2ensite your_homepage.conf
sudo systemctl reload apache2
Dies würde den VirtualHost mit dem Dateinamen aktivieren. Natürlich kann man die Seite auch wieder deaktivieren mit dem Befehl:
sudo a2dissite your_homepage.conf
sudo systemctl reload apache2
System[Bearbeiten | Quelltext bearbeiten]
Apache HTTP Server Control Interface[Bearbeiten | Quelltext bearbeiten]
Mit dem Befehl überprüft man die Konfiguration, die von Apache2 durchgeführt wird. Da sich der Befehl, sehr eignet um eine Neuinstallation, neuen Domäne auf Fehler zu untersuchen.
sudo apachectl configtest
Es gibt noch mehr Möglichkeiten, die zeige ich euch darunter in der Tabelle.
| Wert | Beschreibung |
|---|---|
| start | Starten Sie den Apache httpd-Daemon. Gibt einen Fehler aus, wenn es bereits ausgeführt wird. Dies entspricht einem apachectl -k-Start. |
| stop | Stoppt den Apache httpd-Daemon. Dies entspricht apachectl -k stop. |
| restart | Startet den Apache httpd-Daemon neu. Wenn der Dämon nicht ausgeführt wird, wird er gestartet. Dieser Befehl überprüft die Konfigurationsdateien automatisch wie in configtest, bevor der Neustart gestartet wird, um sicherzustellen, dass der Dämon nicht stirbt. Dies entspricht einem Neustart von apachectl -k. |
| fullstatus | Zeigt einen vollständigen Statusbericht von mod_status an. Damit dies funktioniert, müssen Sie mod_status auf Ihrem Server aktiviert haben und einen textbasierten Browser wie lynx auf Ihrem System verfügbar haben. Die URL für den Zugriff auf den Statusbericht kann durch Bearbeiten der Variablen STATUSURL im Skript festgelegt werden. |
| status | Zeigt einen kurzen Statusbericht an. Ähnlich wie bei der Option fullstatus, außer dass die Liste der aktuell zugestellten Anforderungen weggelassen wird. |
| graceful | Startet den Apache httpd-Daemon ordnungsgemäß neu. Wenn der Dämon nicht ausgeführt wird, wird er gestartet. Dies unterscheidet sich von einem normalen Neustart dadurch, dass derzeit offene Verbindungen nicht abgebrochen werden. Ein Nebeneffekt ist, dass alte Protokolldateien nicht sofort geschlossen werden. Dies bedeutet, dass bei Verwendung in einem Protokollrotationsskript eine erhebliche Verzögerung erforderlich sein kann, um sicherzustellen, dass die alten Protokolldateien geschlossen werden, bevor sie verarbeitet werden. Dieser Befehl überprüft die Konfigurationsdateien automatisch wie in configtest, bevor der Neustart gestartet wird, um sicherzustellen, dass Apache nicht stirbt. Dies ist gleichbedeutend mit apachectl -k anmutig. |
| graceful-stop | Stoppt den Apache httpd-Daemon ordnungsgemäß. Dies unterscheidet sich von einem normalen Stopp dadurch, dass derzeit offene Verbindungen nicht abgebrochen werden. Ein Nebeneffekt ist, dass alte Protokolldateien nicht sofort geschlossen werden. Dies entspricht apachectl -k Graceful-Stop. |
| configtest | Führen Sie einen Syntaxtest für Konfigurationsdateien aus. Es analysiert die Konfigurationsdateien und meldet entweder Syntax Ok oder detaillierte Informationen zu dem jeweiligen Syntaxfehler. Dies entspricht apachectl -t.
Die folgende Option war in früheren Versionen verfügbar, wurde jedoch entfernt. |
| startssl | Um httpd mit SSL-Unterstützung zu starten, sollten Sie Ihre Konfigurationsdatei so bearbeiten, dass sie die relevanten Anweisungen enthält, und dann den normalen Apachectl-Start verwenden. |
Einstellungen neu laden[Bearbeiten | Quelltext bearbeiten]
sudo systemctl reload apache2
Dienste[Bearbeiten | Quelltext bearbeiten]
sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl status apache2
sudo systemctl restart apache2
sudo systemctl disable apache2