GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie installiere und richte ich Apache 2 ein?

Wie kann ich Apache2, php, mysql installieren und mit virtuellen Hosts und vorzugsweise einem SSL-Zertifikat von Let’s Encrypt einrichten und dann mit der Installation von WordPress darauf fortfahren?

Akzeptierte Antwort:

Ich gehe davon aus, dass Sie eine laufende Ubuntu-Installation haben. Dies wurde im Hinblick auf 16.04 geschrieben, sollte aber mit einigen Anpassungen auch auf anderen Versionen funktionieren.

In diesen Antworten # bezeichnet eine Root-Shell, während $ bezeichnet eine normale Benutzer-Shell.

example.org wird in dieser Antwort als Beispiel (D’oh) verwendet und sollte an Ihre Installation angepasst werden.

Installieren von Apache2, PHP, MariaDB und so weiter

$ sudo apt install apache2 libapache2-mod-php mariadb-server php-mysql

Dadurch werden Apache2, PHP, MariaDB und einige Abhängigkeiten zusätzlich zu den PHP-Bindungen für den Zugriff auf mysql installiert.

Zu diesem Zeitpunkt sollten Sie auf http://example.org zugreifen und eine Standardseite sehen können:

Vhost einrichten

Vhosts sind virtuelle Hosts, die verwendet werden, um unterschiedliche Inhalte für unterschiedliche Domainnamen bereitzustellen.

Beginnen Sie mit der Bearbeitung einer neuen Datei namens /etc/apache2/sites-available/01-example.org.conf in Ihrem bevorzugten Editor:

$ sudo editor /etc/apache2/sites-available/01-example.org.conf 

Geben Sie die folgende Konfiguration ein:

<VirtualHost *:80>
        ServerName example.org
        ServerAlias www.example.org
        ServerAdmin [email protected]
        DocumentRoot /var/www/html/example.org/
        ErrorLog ${APACHE_LOG_DIR}/example.org.error.log
        CustomLog ${APACHE_LOG_DIR}/example.org.access.log combined
</VirtualHost>

Zuerst definieren wir den primären ServerName. Dies ist die Domäne, die für den Zugriff auf die Site verwendet wird. Pro vhost kann nur einer definiert werden. Außerdem definieren wir einen ServerAlias, falls jemand www.example.org in seinen Browser eingibt. Dadurch wird sichergestellt, dass Apache auf beide Namen antwortet. Beide Namen müssen auf Ihren Server zeigen, entweder im DNS oder in /etc/hosts für lokale Tests.

Es können beliebig viele Serveraliase angegeben werden, die keine Teile des ServerName enthalten müssen. Also ServerAlias example.com gültig wäre.

Erstellen Sie den neuen DocumentRoot

Ich habe das neue Dokumentstammverzeichnis in /var/www/html/example.org abgelegt . Dies ist ein Ort, der von Apache in Ubuntu bedient werden darf. Wenn ich es zum Beispiel in /srv/ abgelegt habe , müsste ich dafür eine Directory-Stanza einfügen. Erstellen Sie zunächst das Webroot, füllen Sie es mit etwas Inhalt und aktivieren Sie die neue Konfiguration:

$ sudo mkdir /var/www/html/example.org
$ echo "This is a test" | sudo tee /var/www/html/example.org/index.html
$ sudo a2ensite 01-example.org.conf
$ sudo service apache2 reload

Wenn Sie nun http://example.org besuchen, sollten Sie die Ausgabe *This is a test“ sehen. Herzliche Glückwünsche! Ihr erster vhost läuft!

Installieren Sie letsencrypt und holen Sie sich Zertifikate

Um Zertifikate von Let’s Encrypt zu erhalten, benötigen wir einen Client. Das in 16.04 enthaltene letsencrypt-Paket ist uralt, daher brauchen wir dafür einen ppa.

$ echo "deb http://ppa.launchpad.net/certbot/certbot/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/01-certbot.list
$ sudo add-apt-key -k keyserver.ubuntu.com 8C47BE8E75BCA694
$ sudo apt update && sudo apt install certbot python3-certbot-apache 

Führen Sie certbot als root aus:

$ sudo certbot

Wählen Sie die Domain aus, für die Sie ein Zertifikat erhalten möchten, und folgen Sie den Anweisungen von certbot auf dem Bildschirm. Wenn Sie gefragt werden, ob Sie umleiten möchten, wählen Sie Umleitung aus, wenn Sie nur https möchten, und keine Umleitung, wenn Sie sowohl http als auch https möchten. Heute gibt es fast keinen Grund mehr, nicht umzuleiten.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 

Versuchen Sie erneut, http://example.com zu besuchen – es sollte sich ändern, um zu zeigen, dass es sicher ist.

Verwandte:Wie kann man die Boot-Geschwindigkeit in Ubuntu verbessern?

Herzlichen Glückwunsch, Sie haben Apache2 nicht mit einem gültigen TLS-Zertifikat eingerichtet, das sicherstellt, dass der Datenverkehr verschlüsselt wird!

WordPress installieren

Der nächste Schritt besteht darin, eine Anwendung zu installieren. Ich habe WordPress als Beispiel für die Installation ausgewählt.

Werden Sie zuerst root, indem Sie sudo -i eingeben . Wechseln Sie als Nächstes in Ihr Webroot-Verzeichnis und laden Sie es herunter, entpacken Sie es und ändern Sie den Besitz auf Apaches Benutzer:

$ sudo -i
# cd /var/www/html/example.org/
# wget https://wordpress.org/latest.tar.gz
# tar -zxf latest.tar.gz && rm latest.tar.gz
# chown -R www-data.www-data wordpress/

Sie haben jetzt eine WordPress-Instanz unter https://example.com/wordpress/ – gehen wir dorthin.

Der Assistent teilt Ihnen mit, dass Sie eine MySQL-Tabelle, einen Benutzer und ein Kennwort benötigen. Machen wir sie!

Standardmäßig verwendet Ubuntu die Unix-Socket-Authentifizierung für MariaDB. Um sich also als root bei MariaDB anzumelden, müssen Sie

verwenden
sudo mysql -u root

oder führen Sie den Befehl in einer Root-Shell aus (zum Beispiel sudo -i ). Dadurch werden Sie ohne Eingabe eines Passworts angemeldet

# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 32
Server version: 10.0.33-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE wordpress_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON `wordpress_db`.* TO 'wordpress_user'@'localhost' IDENTIFIED BY 'passw0rd';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> exit

Geben Sie den Benutzernamen wordpress_user ein , Datenbankname wordpress_db und Passwort passw0rd in der WordPress-Konfiguration. Das ist es im Grunde; Der Rest dreht sich darum, die Installationsrichtlinien von WordPress zu befolgen.

Um weitere vhosts hinzuzufügen, beginnen Sie einfach mit „Vhost einrichten“.

Weiterführende Literatur

  • Apache-Module – Deaktivieren und Aktivieren
  • Certbot von Cron ausführen, um Zertifikate automatisch zu erneuern
  • Leitfaden für mod_rewrite, ein häufig verwendetes Apache-Modul
  • Dateiberechtigungen für /var/www/html
  • Certbot-Benutzerhandbuch

Ubuntu
  1. So richten Sie ModSecurity auf Apache ein und konfigurieren es

  2. So installieren Sie Apache unter CentOS 8

  3. So installieren Sie Apache Maven unter Ubuntu 18.04 und 16.04

  4. So installieren und konfigurieren Sie mysql 8 unter Ubuntu 20.04

  5. So installieren und konfigurieren Sie PHP und Apache (LAMP-Stack) unter Ubuntu 20.04

So installieren Sie Mod_Security Apache unter Ubuntu 14.04

So installieren Sie Apache unter Linux Mint 19

So installieren Sie Apache unter Ubuntu 20.04 LTS

So installieren Sie Apache Server und richten virtuelle Hosts unter Ubuntu 22.04 ein

So installieren Sie ModSecurity Apache unter Ubuntu 20.04

So installieren Sie Apache unter Ubuntu 22.04