Ubuntu-Server mit MinIO + Let’s Encrypt + Laravel

Installing and Setting Up MinIO on Ubuntu + Lets Encrypt + Laravel integration

Suchen Sie nach einer kostengünstigen Alternative zu Amazon S3? MinIO ist eine großartige Option. In dieser Anleitung führen wir Sie durch die Installation und Grundeinrichtung von MinIO auf Ihrem Ubuntu-Server und geben Ihnen zusätzliche Schritte zur Integration mit Laravel/PHP.

Die Einrichtung erfolgt selbstverständlich auf Ihr eigenes Risiko. Wir übernehmen für nichts die Verantwortung.

Schritt 1: Ubuntu Server einrichten

Bevor wir beginnen, stellen Sie sicher, dass Sie einen Ubuntu-Server haben und dieser läuft.

Schritt 2: MinIO installieren

Um MinIO zu installieren, folgen Sie den Anweisungen im offizielle MinIO-Dokumentation.

Schritt 3: MinIO systemd Service konfigurieren

Fügen Sie nach der Installation die Datei systemd minio.service hinzu. Wenn sie nicht automatisch hinzugefügt wird, können Sie sie manuell hinzufügen. Sie finden eine Beispieldatei hier.

Öffnen Sie die Datei minio.service und entfernen Sie die folgenden Zeilen:

Benutzer=Minio-Benutzer Gruppe=Minio-Benutzer

Ohne diese Zeilen funktioniert MinIO im Stammverzeichnis wie in dieses GitHub-Problem.

Schritt 4: Installieren Sie das Let’s Encrypt SSL-Zertifikat

MinIO unterstützt SSL-Verschlüsselung. Zum Einrichten von SSL können Sie Let's Encrypt verwenden, einen kostenlosen und weithin vertrauenswürdigen SSL-Zertifikatsanbieter.

Folgen Sie den Anweisungen unter https://certbot.eff.org für Ubuntu, um Let’s Encrypt zu installieren und Ihr SSL-Zertifikat zu generieren.

Schritt 5: MinIO mit Let’s Encrypt konfigurieren

Sobald Sie das SSL-Zertifikat generiert haben, müssen Sie MinIO für die Verwendung konfigurieren. So geht's:

Kopieren Sie die SSL-Zertifikatsdateien in das MinIO-Verzeichnis:

cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem /root/.minio/certs/public.crt cp /etc/letsencrypt/live/yourdomain.com/privkey.pem /root/.minio/certs/private .Schlüssel

Richten Sie eine Crontab ein, um das SSL-Zertifikat wöchentlich zu erneuern:

0 5 * * 1 cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem /root/.minio/certs/public.crt 0 5 * * 5 cp /etc/letsencrypt/live/yourdomain.com/privkey. pem /root/.minio/certs/private.key

Schritt 6: MinIO-Einstellungen ändern

Ändern Sie die MinIO-Konfigurationsdatei:

nano /etc/default/minio

Aktualisieren Sie die folgenden Einstellungen:

MINIO_VOLUMES="/mnt/data" MINIO_OPTS="--address :9000 --console-address :9001" MINIO_ROOT_USER="Ihr_Benutzername" MINIO_ROOT_PASSWORD="Ihr_Passwort" MINIO_SERVER_URL="https://yourdomain.com:9000" MINIO_CONFIG_ENV_FILE=/etc/default/minio

Schritt 7: Standardbenutzername und -kennwort ändern

Ändern Sie den Standardbenutzernamen und das Standardkennwort, um Ihre MinIO-Installation zu sichern.

Schritt 8: MinIO-Dienst neu starten

Starten Sie den MinIO-Dienst neu, um die Änderungen anzuwenden:

sudo systemctl starte minio.service neu

Überprüfen Sie den Status, um sicherzustellen, dass MinIO ausgeführt wird:

sudo systemctl status minio.service

Schritt 9: MinIO beim Start aktivieren

Um die Ausführung von MinIO beim Start zu aktivieren, verwenden Sie den folgenden Befehl:

systemctl aktiviere minio

Schritt 10: Einen Bucket erstellen

Erstellen Sie in MinIO einen Bucket, um Ihre Dateien zu speichern. Sie können die MinIO-Weboberfläche oder das MinIO-Befehlszeilentool verwenden, um einen Bucket zu erstellen.

Schritt 11: Erstellen einer Richtlinie für den Bucket

Erstellen Sie eine Richtlinie für den Bucket, um Zugriffsberechtigungen zu definieren. Hier ist eine Beispielrichtlinie:

{ "Version": "2012-10-17", "Anweisung": [ { "Effekt": "Zulassen", "Aktion": [ "s3:*" ], "Ressource": [ "arn:aws:s3:::your_bucket/*" ] } ] }

Schritt 12: Erstellen Sie einen Benutzer und weisen Sie die neue Richtlinie zu

Erstellen Sie einen Benutzer in MinIO und weisen Sie dem Benutzer die zuvor erstellte Richtlinie zu.

Generieren Sie einen Zugriffsschlüssel und einen geheimen Schlüssel für den Benutzer. Sie benötigen diese Schlüssel in den nächsten Schritten.

Schritt 13: Laravel-Support für MinIO einrichten

Wenn Sie Laravel oder PHP verwenden, können Sie MinIO in Ihre Anwendung integrieren, indem Sie Liga/Flysystem-AWS-S3-V3 Paket.

Installieren Sie das Paket über Composer:

Komponist erfordert Liga/Flysystem-aws-s3-v3 "^3.0"

Aktualisieren Sie als nächstes die dateisysteme.php Konfigurationsdatei:

'Cloud' => Umgebung('FILESYSTEM_CLOUD', 'minio'), ... 'minio' => [ 'Treiber' => 's3', 'Endpunkt' => Umgebung('MINIO_ENDPOINT', 'https://yourdomain.com:9000'), 'use_path_style_endpoint' => true, 'Schlüssel' => Umgebung('MINIO_KEY', '...'), 'Geheimnis' => Umgebung('MINIO_SECRET', '...'), 'Region' => Umgebung('MINIO_REGION', 'NUR ETWAS ZUFÄLLIGES'), 'Bucket' => Umgebung('MINIO_BUCKET', 'BUCKETNAME'), ],

Schritt 14: Testen Sie die MinIO-Integration in Laravel

Überprüfen Sie die MinIO-Integration mithilfe der Tinker-Konsole von Laravel:

php Artisan Tinker \Storage::cloud()->put('hello.json', '{"hello": "world"}'); \Storage::cloud()->get('hello.json');

Dies sollte etwas wie „true“ oder etwas Erfolgreiches zurückgeben. Wenn nicht, können Sie diese Dateisystem-Debugoption zu MinIO hinzufügen: 'throw'=> env('APP_DEBUG'), sodass es etwa so aussieht:

'Cloud' => Umgebung('FILESYSTEM_CLOUD', 'minio'), ... 'minio' => [ 'Treiber' => 's3', 'Endpunkt' => Umgebung('MINIO_ENDPOINT', 'https://yourdomain.com:9000'), 'use_path_style_endpoint' => true, 'Schlüssel' => Umgebung('MINIO_KEY', '...'), 'Geheimnis' => Umgebung('MINIO_SECRET', '...'), 'Region' => Umgebung('MINIO_REGION', 'NUR ETWAS ZUFÄLLIGES'), 'Bucket' => Umgebung('MINIO_BUCKET', 'BUCKETNAME'), 'werfen' => Umgebung('APP_DEBUG', false) ],

Dies führt nur dann zum Debuggen/Ausgeben von Fehlermeldungen, wenn APP_DEBUG aktiviert ist. Führen Sie dies niemals in der Produktion oder in sensiblen Umgebungen aus.

Schritt 15: Reverse DNS einrichten

Richten Sie nach Möglichkeit Reverse-DNS ein.

Schritt 16: Neustart und Überprüfung

Starten Sie Ihren Server neu und überprüfen Sie, ob MinIO und die Integration mit Laravel noch ordnungsgemäß funktionieren. Dies bedeutet (hoffentlich), dass systemd noch ordnungsgemäß funktioniert.

Schritt 17: Firewalls konfigurieren

Um die Sicherheit zu verbessern, können Sie Firewalls einrichten, um den Zugriff auf MinIO einzuschränken:

  • Erlauben Sie für den Administratorzugriff nur Verbindungen von Ihren privaten/bürobezogenen IP-Adressen.
  • Erlauben Sie für den Webzugriff nur Verbindungen von den IPs der Server, die Zugriff benötigen.

Denken Sie immer daran, dass Sie Ihre IP-Adresse zu Hause, im Büro oder auf dem Server zur Whitelist hinzufügen müssen, wenn sie sich ändert. Wenn sich die IP-Adressen zu häufig ändern, ergreifen Sie geeignete andere Sicherheitsmaßnahmen für Ihren Server.

Wenn Sie diese Schritte befolgen, können Sie einen einfachen MinIO-Server auf Ihrem Ubuntu-Server installieren und einrichten und so die hohen Kosten vermeiden, die mit Amazon S3 verbunden sind. Durch die Integration von MinIO mit Laravel/PHP können Sie die Leistungsfähigkeit des Objektspeichers in Ihren Anwendungen nutzen und gleichzeitig die Kontrolle über Ihre Daten und Kosten behalten.

Erstellen Sie außerdem einen Cronjob zur Überprüfung des Speicherplatzes, der eine E-Mail sendet, wenn Ihre Festplatte fast voll ist, insbesondere wenn Sie MinIO im Einzelservermodus verwenden. MinIO kann mehrere Server und Replikationszonen miteinander verknüpfen.

Wenn Ihnen das zu kompliziert ist, haben wir auch einen Leitfaden für die Einrichtung eines einfacher SFTP-Server für Ubuntu / Laravel.

Einen Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEDeutsch
Nach oben blättern