Website-Suche

So installieren Sie den Apache-, MariaDB- und PHP-Stack (FAMP) unter FreeBSD


In dieser Anleitung wird beschrieben, wie Sie FBAMP im FreeBSD-Betriebssystem installieren und konfigurieren, das einem LAMP-Stack unter Linux ähnelt. FBAMP ist ein Akronym, das für eine Sammlung von Software steht, die auf FreeBSD OS, Apache HTTP-Server, dem beliebtesten Open-Source-Webserver im Internet, MariaDB< basiert relationales Datenbankverwaltungssystem (RDBMS), eine Abzweigung der MySQL-Datenbank-Engine und PHP serverseitig.

Anforderungen

  1. Eine Neuinstallation von FreeBSD
  2. FreeBSD-Erstkonfigurationen
  3. Direkter Konsolenzugriff oder SSH im Falle einer Remote-Verbindung zu FreeBSD.
  4. Eine statische IP-Adresse, die auf einer Netzwerkschnittstelle konfiguriert ist.

Schritt 1: Installieren Sie Apache unter FreeBSD

1. Der erste Dienst, den wir installieren, ist der Apache HTTP-Server. Standardmäßig bietet FreeBSD mehrere Versionen mit unterschiedlichen Laufzeitarbeitsmodulen für den Apache-Webserver an.

Die Versionen werden in einem Binärpaket vorkompiliert und von FreeBSD PORTS-Repositorys bereitgestellt. Um alle von PORTS bereitgestellten Binärdateien der Apache-Pakete anzuzeigen, geben Sie den folgenden Befehl ein.

ls /usr/ports/www/ | grep apache

Sie können auch nach verfügbaren vorkompilierten Apache-Paketen unter FreeBSD suchen, indem Sie den folgenden Befehl eingeben.

pkg search apache2

2. Als nächstes installieren Sie die neueste Version des Apache HTTP-Servers mit allen erforderlichen Modulen, indem Sie den folgenden Befehl ausgeben.

pkg install apache24

3. Nachdem der Apache-Webserver auf dem System installiert wurde, geben Sie den folgenden Befehl ein, um den Daemon systemweit in FreeBSD zu aktivieren.

sysrc apache24_enable="yes"

Eine alternative Methode zum Aktivieren des Apache-Daemons wäre das manuelle Bearbeiten und Anhängen der Zeile apache24_enable="yes" in der Datei /etc/rc.conf, wie im folgenden Screenshot dargestellt.

4. Um abschließend zu testen, ob der Webserver ordnungsgemäß funktioniert, starten Sie den Apache-Daemon, indem Sie den folgenden Befehl ausführen, und besuchen Sie die Standardwebseite, indem Sie einen Browser auf die IP-Adresse Ihres Servers mit FQDN () verweisen http://IP-orFQDN), wie im folgenden Screenshot gezeigt.

service apache24 start

Das Standard-Webroot-Verzeichnis des Apache-Webservers in FreeBSD 11.x befindet sich im Systempfad /usr/local/www/apache24/data/. Dort finden Sie eine kleine index.html-Datei, die Sie nach Belieben bearbeiten können.

Schritt 2: PHP unter FreeBSD installieren

5. FreeBSD 11.x bietet mehrere Versionen der PHP-interpretierten serverseitigen Sprache, verpackt in vorkompilierten Binärdateien. Um eine Liste aller verfügbaren PHP-Versionspakete zu erhalten, die von FreeBSD Ports-Repositorys bereitgestellt werden, geben Sie den folgenden Befehl ein.

ls /usr/ports/lang/ | grep php

Eine alternative Methode zur Suche nach allen verfügbaren FreeBSD PHP-Paketversionen ist die Ausführung des folgenden Befehls.

pkg search -o php

6. Um nach allen verfügbaren Binärdateien zu suchen, die von FreeBSD für eine bestimmte PHP-Version (aktuell 5 oder 7) bereitgestellt werden, führen Sie die folgenden Befehle aus. Verwenden Sie den Befehl less, um die Ausgabe einzugrenzen und durch sie zu navigieren.

pkg search php5 |less
pkg search php7

7. Um genauer zu erfahren, welche Module eine benutzerdefinierte PHP-Version bereitstellt, führen Sie den folgenden Befehl wie unten beschrieben aus, der alle verfügbaren Module für die PHP 7.1-Version anzeigt.

pkg search php71

8. In dieser Anleitung installieren wir die Version PHP 7.1 für unseren FBAMP-Stack. Geben Sie den folgenden Befehl ein, um PHP mit einigen der wichtigsten Module zu installieren, die für eine typische CMS-Installation erforderlich sind.

pkg install php71 mod_php71 php71-mbstring php71-mcrypt php71-zlib php71-curl php71-gd php71-json 

9. Als nächstes müssen wir die Konfigurationsdatei php.conf für den Apache-Webserver in /usr/local/etc/apache24/Includes/ erstellen Systempfad mit folgendem Inhalt.

nano /usr/local/etc/apache24/Includes/php.conf

Fügen Sie der Datei php.conf die folgenden Zeilen hinzu.

<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

10. Um zu testen, ob das PHP-Gateway wie erwartet mit dem Apache-Webserver funktioniert, erstellen Sie eine PHP-Datei info.php in /usr/local/www/ apache24/data/system-Pfad, der der standardmäßige Webdokument-Stammpfad des Apache-Webservers ist.

echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php

Starten Sie den Apache-Daemon neu, um die Änderungen zu übernehmen.

service apache24 restart

Besuchen Sie als Nächstes den folgenden URI in einem Browser, um die PHP-Zusammenfassung anzuzeigen.

http://IP-or-FQDN/info.php 

11. Um die PHP-INI-Konfigurationsdatei für die Produktion zu aktivieren, geben Sie die folgenden Befehle ein. Sie können die Produktionsdatei php.ini ändern, um verschiedene PHP-Einstellungen in Ihrem FBAMP-Stack zu ändern.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Schritt 3: Installieren Sie MariaDB unter FreeBSD

12. Die letzte fehlende Komponente für unseren FBAMP-Stack ist der MySQL-Datenbankserver. FreeBSD 11.x bietet mehr als 1000 Pakete für diverse Datenbanken.

Um anzuzeigen, welche Komponenten für MariaDB- oder MySQL-Datenbanken verfügbar sind, geben Sie die folgenden Befehle ein. In dieser Anleitung installieren wir die MariaDB-Datenbank über MySQL (das jetzt im Besitz von Oracle ist und aktiv von Oracle weiterentwickelt wird).

ls -al /usr/ports/databases/ | grep mariadb
pkg search -o mariadb
ls -al /usr/ports/databases/ | grep mysql
pkg search -o mysql5

13. In dieser Anleitung installieren wir die neueste Version des MariaDB-Datenbankservers in FreeBSD, die derzeit durch die Binärpaketversion mariadb102 repräsentiert wird.

Führen Sie den folgenden Befehl aus, um den MariaDB-Server und -Client sowie das erforderliche PHP 7.1-Modul zu installieren, das für den Zugriff auf die Datenbank über das Apache-Server-Gateway erforderlich ist.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. Als nächstes aktivieren Sie den MariaDB-Server systemweit und starten den Datenbank-Daemon, indem Sie die folgenden Befehle ausführen.

sysrc mysql_enable="yes" 
service mysql-server start

15. Um die Datenbank zu sichern, führen Sie mysql_secure_installation scrip aus. Verwenden Sie den folgenden Skriptausgabeauszug, um MariaDB zu härten.

/usr/local/bin/mysql_secure_installation
Beispielausgabe

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

16. Standardmäßig lauscht der MariaDB-Daemon auf Netzwerkverbindungen außerhalb von localhost auf Port 3306/TCP. Führen Sie den Befehl netstat, lsof oder sockstat aus, um den MariaDB-Socket-Status abzurufen. Diese Konfiguration ist gefährlich und setzt den Dienst externen Netzwerkangriffen aus.

lsof -i4 -i6
sockstat -4 -6

17. Wenn Sie keinen Fernzugriff auf MariaDB benötigen, stellen Sie sicher, dass der MariaDB-Daemon nur auf localhost lauscht, indem Sie den folgenden Befehl ausführen. Anschließend starten Sie den MariaDB-Dienst neu, um die Änderungen zu übernehmen.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart
or
/usr/local/etc/rc.d/mysql-server restart

18. Führen Sie erneut den Befehl netstat, lsof oder sockstat aus, um den MariaDB-Netzwerk-Socket aufzulisten. Der Socket sollte sich jetzt an localhost binden und darauf lauschen, wie in der folgenden Abbildung dargestellt.

lsof -i4 | grep mysql
netstat -an | grep 3306
sockstat -4 | grep 3306

19. Um die MariaDB-Datenbankkonnektivität von der Konsole aus zu testen, geben Sie den folgenden Befehl ein. Geben Sie das MySQL-Root-Passwort in die Eingabeaufforderung ein und eine Liste der Standarddatenbanken sollte auf Ihrem Konsolenbildschirm angezeigt werden, wie im folgenden Bild dargestellt.

mysql -u root -p -e "show databases"

Das ist alles! Sie haben den Apache-Webserver mit MariaDB-Datenbank und PHP-Interpreter erfolgreich in FreeBSD installiert. Sie können jetzt im Handumdrehen mit der Bereitstellung einer WordPress-Website beginnen.

Im nächsten Tutorial besprechen wir einige fortgeschrittene FPBAMP-Themen, z. B. das Aktivieren und Erstellen virtueller Apache-Hosts, das Aktivieren des Rewrite-Moduls, das für die ordnungsgemäße Funktion der Datei .htaccess erforderlich ist, und das Sichern von Apache-Verbindungen mithilfe eines Selbstsigniertes Zertifikat oder ein kostenloses Zertifikat, das von Let's Encrypt angeboten wird.