Wie Sie den FEMP-Stack (FreeBSD, Nginx, MySQL 8 und PHP 7.4) unter FreeBSD 12 einrichten

Ein FEMP-Stack, der einem LEMP-Stack unter Linux ähnelt, ist eine Sammlung von Open-Source-Software, die normalerweise zusammen installiert wird, um einen FreeBSD-Server in die Lage zu versetzen, dynamische Websites und Webanwendungen zu hosten. FEMP ist ein Akronym, das für FreeBSD (Betriebssystem), Nginx (HTTP-Server, ausgesprochen Engine-x), MySQL (Datenbankserver) und PHP (Programmiersprache zur Verarbeitung dynamischer PHP-Inhalte) steht.

In diesem Tutorial richten wir Komponenten eines FEMP-Stacks auf einem FreeBSD 12.1-Server ein, indem wir den pkgFreeBSD-Paketmanager verwenden.

Anforderungen

Bevor Sie mit diesem Leitfaden beginnen, benötigen Sie Folgendes:

  • Ein FreeBSD 12.1.
  • Ein Benutzer mit Root-Rechten oder sudoein Benutzer, der Konfigurationsänderungen vornehmen kann.
  • Grundlegende Vertrautheit mit dem FreeBSD-System und der Kommandozeilen-Schnittstelle wird empfohlen.

Erste Schritte

Prüfen Sie die FreeBSD-Version.

uname -ro
# FreeBSD 12.1-RELEASE

Stellen Sie sicher, dass Ihr FreeBSD-System auf dem neuesten Stand ist.

freebsd-update fetch install
pkg update && pkg upgrade -y

Installieren Sie die erforderlichen Pakete.

pkg install -y sudo vim bash curl

Erstellen Sie ein neues Benutzerkonto mit Ihrem bevorzugten Benutzernamen. Wir verwenden johndoe.

adduser
# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter> 
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

Führen Sie den visudoBefehl aus und kommentieren Sie die %wheel ALL=(ALL) ALLZeile aus, um Mitgliedern der wheelGruppe zu erlauben, jeden Befehl auszuführen.

visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

Wechseln Sie nun zu Ihrem neu angelegten Benutzer mit su:

su - johndoe

HINWEIS: Ersetzen johndoeSie durch Ihren Benutzernamen.

Richten Sie die Zeitzone ein:

sudo tzsetup

Schritt 1 – Installation von Mainline Nginx

Der Webserver Nginx ist derzeit einer der beliebtesten Webserver der Welt. Er ist eine ausgezeichnete Wahl für das Hosting einer Website.

Sie können Nginx mit dem Paketmanager von FreeBSD installieren, pkg. Ein Paketmanager erlaubt es Ihnen, die meiste Software mühelos aus einem von FreeBSD verwalteten Repository zu installieren. Mehr über die Verwendung erfahren Sie pkghier.

Um das neueste Mainline-Nginx zu installieren, geben Sie den folgenden Befehl ein:

sudo pkg install -y nginx-devel

Prüfen Sie die Version:

nginx -v
# nginx version: nginx/1.17.7

Dieser Befehl installiert die neueste Mainline-Version, die zuverlässig auf einem Produktionsserver verwendet werden kann. Wenn Sie die neueste stabile Version installieren wollen, verwenden Sie einfach nginxpackage anstelle von nginx-devel.

Aktivieren und starten Sie jetzt Nginx:

sudo sysrc nginx_enable=yes
sudo service nginx start

Um zu überprüfen, ob Nginx gestartet ist, können Sie den folgenden Befehl ausführen:

sudo service nginx status

Als Ergebnis werden Sie etwas Ähnliches sehen:

# Output
nginx is running as pid 17607.

Sie können überprüfen, ob Nginx installiert wurde und fehlerfrei funktioniert, indem Sie die öffentliche IP-Adresse Ihres Servers in Ihrem Webbrowser aufrufen. Navigieren Sie zu your_server_IP. Sie sehen dann die Standardseite „Willkommen bei nginx!

Schritt 2 – Installation von MySQL 8.0

Nun, da Sie Ihren Webserver zum Laufen gebracht haben, ist es an der Zeit, MySQL, das Verwaltungssystem für relationale Datenbanken, zu installieren. Der MySQL-Server wird den Zugriff auf Datenbanken, in denen Ihr Server Informationen speichern kann, organisieren und bereitstellen.

Auch dies können Sie nutzenpkg, um Ihre Software zu beziehen und zu installieren.

Um MySQL 8.0mit pkg, zu installieren, benutzen Sie diesen Befehl:

sudo pkg install -y mysql80-client mysql80-server

Dieser Befehl installiert die neueste Version des MySQL-Clients und -Servers, die derzeit 8.x.x.

Prüfen Sie die Version:

mysql --version
# mysql  Ver 8.0.17 for FreeBSD12.0 on amd64 (Source distribution)

Jetzt aktivieren und starten Sie MySQL:

sudo sysrc mysql_enable=yes
sudo service mysql-server start

Um zu überprüfen, ob MySQL gestartet ist, können Sie folgenden Befehl ausführen:

sudo service mysql-server status

Sie sehen dann etwas Ähnliches wie das Folgende:

# Output
mysql is running as pid 19066.

Als gute Praxis können Sie das mysql_secure_installationSicherheitsskript ausführen, das einige unsichere Standardeinstellungen entfernt und den Zugriff auf Ihr Datenbanksystem leicht einschränkt.

sudo mysql_secure_installation

Sie werden aufgefordert, ein Passwort festzulegen, gefolgt von einigen anderen Fragen. Geben Sie ein sicheres Passwort ein und drücken Sie dann für den Rest der Fragen ENTER, um die Standardeinstellungen auszuwählen.

Schritt 3 – Installieren von PHP 7.4

PHP ist eine serverseitige Skriptsprache, die für die Webentwicklung entwickelt wurde. PHP ist eine unverzichtbare Komponente des FEMP-Stacks. Außerdem werden anstelle von PHP häufig Python oder Perl verwendet. Am häufigsten wird jedoch PHP als die beliebteste Option verwendet. Zusammen mit der Datenbank verleiht es Ihren Websites oder Anwendungen ein dynamisches Verhalten.

Erneut das pkgSystem nutzen, um PHP-Komponenten zu installieren.

Um PHP 7.4mit pkg, zu installieren, führen Sie diesen Befehl aus:

sudo pkg install -y php74

Prüfen Sie die PHP-Version:

php --version
# PHP 7.4.0 (cli) (built: Jul 18 2019 01:14:37) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies

Dieser Befehl installiert die neueste Version von PHP, 7.4.

Jetzt aktivieren und starten Sie PHP-FPM:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Um zu überprüfen, ob PHP-FPM gestartet wurde, können Sie folgenden Befehl ausführen:

sudo service php-fpm status

Als Ergebnis werden Sie etwas Ähnliches sehen:

# Output
php_fpm is running as pid 23005.

PHP-Module installieren (optional)

Um die Funktionalität von PHP zu erweitern, können Sie optional einige zusätzliche Module installieren.

Um die aktuell in PHP kompilierten Module zu sehen, können Sie dies ausführen:

php -m

# [PHP Modules]
# Core # date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard
# [Zend Modules]

Um nach verfügbaren PHP-Modulen zu suchen, können Sie diesen Befehl verwenden:

pkg search ^php74-*

Das Ergebnis sind meist PHP 7.4-Module, die Sie installieren können:

# Output
# php74-7.4.7                    PHP Scripting Language
# php74-Ice37-3.7.2              Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
# php74-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
# php74-aphpunit-1.8             Testing framework for unit tests
# php74-bcmath-7.4.7             The bcmath shared extension for php
# php74-brotli-0.7.0             Brotli extension for PHP
# php74-bsdconv-11.5.0           PHP wrapper for bsdconv
# php74-bz2-7.4.7                The bz2 shared extension for php
# php74-calendar-7.4.7           The calendar shared extension for php
# php74-composer-1.8.6           Dependency Manager for PHP
# php74-ctype-7.4.7              The ctype shared extension for php
# php74-curl-7.4.7               The curl shared extension for php
# . . .

Wenn Sie nach der Recherche entscheiden, dass Sie ein Paket installieren müssen, können Sie dies mit diesem pkg installBefehl tun. Die meisten PHP-Webanwendungen benötigen zusätzliche Module, daher ist es gut zu wissen, wie man nach ihnen sucht.

Schritt 4 – Konfigurieren von Nginx für die Verwendung des PHP-Moduls

Bevor Sie PHP verwenden, müssen Sie es so konfigurieren, dass es mit Nginx funktioniert.

Starten Sie die Datei sudo vim /usr/local/etc/nginx/test.confund füllen Sie sie mit dem untenstehenden Inhalt:

server {

  listen 80;
  server_name SERVER_IP; # Replace with your IP or hostname
  root /usr/local/www/nginx-dist;
  index index.php index.html index.htm;

  location / {
    try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

}

Speichern Sie die Datei und beenden Sie vim.

Nun müssen wir in die nginx.confHauptdatei einschließentest.conf. Die Hauptkonfigurationsdatei für Nginx lebt unter /usr/local/etc/nginxnginx.conf.

Starten sudo vim /usr/local/etc/nginx/nginx.confSie, um die Hauptkonfigurationsdatei in Vim zu öffnen und fügen Sie die folgende Zeile zum http {}Block hinzu.

include test.conf;

Testen Sie die Nginx-Konfiguration:

sudo nginx -t

Da Sie Konfigurationsänderungen in Nginx vorgenommen haben, müssen Sie den Dienst neu laden, damit diese angewendet werden können. Andernfalls wird Nginx immer noch mit der früheren Konfiguration funktionieren:

sudo service nginx reload

Schritt 5 – PHP-Verarbeitung testen

Um zu testen, ob Ihr System korrekt für PHP konfiguriert ist, können Sie ein sehr einfaches PHP-Skript erstellen. Sie nennen dieses Skript info.php. Sie rootkönnen die info.phpDatei unter diesem Speicherort durch Eintippen erstellen/usr/local/www/nginx-dist:

sudo vim /usr/local/www/nginx-dist/info.php

Und fügen diesen Code zu dieser Datei hinzu:

<?php phpinfo(); ?>

Navigieren Sie zu http://your_server_IP/info.phpund Sie werden die folgende Seite sehen:

Nach der Installation und Einrichtung des FEMP-Stacks sollten Sie die Datei entferneninfo.php, um zu vermeiden, dass die Informationen über den Server der Öffentlichkeit preisgegeben werden:

sudo rm /usr/local/www/nginx-dist/info.php

Schlussfolgerung

Herzlichen Glückwunsch, Sie haben erfolgreich einen FEMP-Stack auf Ihrem FreeBSD 12.1 VPS installiert. Jetzt haben Sie mehrere Möglichkeiten, was Sie als nächstes tun können. Sie haben eine Plattform installiert, die es Ihnen erlaubt, die meisten Arten von Websites und Web-Software darauf zu installieren.

Das könnte dich auch interessieren …