Website-Suche

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


In dieser Anleitung wird beschrieben, wie Sie FBAMP unter FreeBSD 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 Relational Database Management System (RDBMS), einem Fork der MySQL-Datenbank-Engine, und PHP serverseitig basiert.

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: Apache unter FreeBSD installieren

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

Die Versionen werden in ein Binärpaket vorkompiliert und von den FreeBSD-PORTS-Repositories bereitgestellt. Um alle Binärdateien der Apache-Pakete anzuzeigen, die von PORTS bereitgestellt werden, 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. Installieren Sie als Nächstes die neueste Version des Apache HTTP-Servers mit allen erforderlichen Modulen, indem Sie den folgenden Befehl eingeben.

# pkg install apache24

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

# sysrc apache24_enable="yes"

Eine alternative Methode zum Aktivieren des Apache-Daemons besteht darin, die Zeile apache24_enable="yes" in der Datei /etc/rc.conf manuell zu bearbeiten und anzuhängen, wie im folgenden Screenshot dargestellt.

4. Um zu testen, ob der Webserver ordnungsgemäß funktioniert, starten Sie den Apache-Daemon, indem Sie den folgenden Befehl eingeben, und besuchen Sie die Standardwebseite, indem Sie einen Browser auf die IP-Adresse Ihres Servers mit dem FQDN (http://IP-orFQDN) verweisen, 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 beliebig bearbeiten können.

Schritt 2: PHP unter FreeBSD installieren

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

# ls /usr/ports/lang/ | grep php

Eine alternative Methode, um nach allen verfügbaren FreeBSD-PHP-Paketversionen zu suchen, besteht darin, den folgenden Befehl auszuführen.

# pkg search -o php

6. Um nach allen verfügbaren Binärdateien zu suchen, die FreeBSD für eine bestimmte PHP-Version (derzeit 5 oder 7 Versionen) zur Verfügung stellt, 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 bestimmen, 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 im Systempfad /usr/local/etc/apache24/Includes/ mit dem folgenden Inhalt erstellen.

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

Fügen Sie die folgenden Zeilen in die Datei php.conf ein.

<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-info.php-Datei im Pfad /usr/local/www/apache24/data/system, der der Standard-Stammpfad des Webdokuments 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 php.ini Produktionsdatei ä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: MariaDB unter FreeBSD installieren

12. Die letzte fehlende Komponente für unseren FBAMP-Stack ist der MySQL-Datenbankserver. FreeBSD 11.x bietet mehr als 1000 Pakete für verschiedene 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 entwickelt 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 unter FreeBSD, die derzeit durch die Binary Package Release 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. Aktivieren Sie als Nächstes den MariaDB-Server systemweit und starten Sie 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 Auszug aus der Skriptausgabe, um MariaDB zu härten.

# /usr/local/bin/mysql_secure_installation
Beispiel-Ausgabe

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 Port 3306/TCP auf Netzwerkverbindungen außerhalb von localhost. Führen Sie die Befehle netstat, lsof oder sockstat aus, um den MariaDB-Socket-Status abzurufen. Diese Konfiguration ist gefährlich und macht den Dienst anfällig für Angriffe von außen.

# lsof -i4 -i6
sockstat -4 -6

17. Wenn Sie keinen Fernzugriff auf MariaDB benötigen, stellen Sie sicher, dass der MariaDB-Daemon nur localhost abhört, indem Sie den folgenden Befehl ausführen. Starten Sie anschließend 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 die Befehle netstat, lsof oder sockstat aus, um den MariaDB-Netzwerksocket aufzulisten. Der Socket sollte jetzt auf localhost gebunden und überwacht werden, wie in der folgenden Abbildung dargestellt.

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

19. Um die Konnektivität der MariaDB-Datenbank über die Konsole 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 in der folgenden Abbildung 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 werden wir einige fortgeschrittene FPBAMP-Themen besprechen, z. B. wie man virtuelle Apache-Hosts aktiviert und erstellt, das Rewrite-Modul aktiviert, das für die .htaccess-Datei erforderlich ist, um ordnungsgemäß zu funktionieren, und wie man Apache-Verbindungen mit einem selbstsignierten Zertifikat oder einem kostenlosen Zertifikat sichert, das von Let's Encrypt angeboten wird.

Verwandte Artikel: