Ubuntu Server med MinIO + Let's Encrypt + Laravel

Installera och konfigurera MinIO på Ubuntu + Låter Encrypt + Laravel integration

Letar du efter ett kostnadseffektivt alternativ till Amazon S3? MinIO är ett bra alternativ. I den här guiden går vi igenom installationen och den grundläggande installationen av MinIO på din Ubuntu-server, tillsammans med bonussteg för att integrera den med Laravel/PHP.

Självklart är det på egen risk att sätta upp detta. Vi är inte ansvariga för någonting.

Steg 1: Konfigurera Ubuntu Server

Innan vi börjar, se till att du har en Ubuntu-server igång.

Steg 2: Installera MinIO

För att installera MinIO, följ instruktionerna i officiella MinIO-dokumentation.

Steg 3: Konfigurera MinIO systemd Service

Efter installationen lägger du till filen systemd minio.service. Om det inte läggs till automatiskt kan du lägga till det manuellt. Du kan hitta en exempelfil här.

Öppna filen minio.service och ta bort följande rader:

Användare=minio-användare Group=minio-användare

Utan dessa linjer kommer MinIO att fungera i roten som beskrivs i detta GitHub-problem.

Steg 4: Installera Let's Encrypt SSL-certifikat

MinIO stöder SSL-kryptering. För att ställa in SSL kan du använda Let's Encrypt, en gratis och allmänt betrodd SSL-certifikatleverantör.

Följ instruktionerna på https://certbot.eff.org för Ubuntu att installera Let's Encrypt och generera ditt SSL-certifikat.

Steg 5: Konfigurera MinIO med Let's Encrypt

När du har genererat SSL-certifikatet måste du konfigurera MinIO för att använda det. Så här gör du:

Kopiera SSL-certifikatfilerna till MinIO-katalogen:

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.key

Ställ in en crontab för att förnya SSL-certifikatet varje vecka:

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/keys/private

Steg 6: Ändra MinIO-inställningar

Ändra MinIO-konfigurationsfilen:

nano /etc/default/minio

Uppdatera följande inställningar:

MINIO_VOLUMES="/mnt/data" MINIO_OPTS="--adress :9000 --console-address :9001" MINIO_ROOT_USER="ditt_användarnamn" MINIO_ROOT_PASSWORD="ditt_lösenord" MINIO_SERVER_URL="https://com:9000." MINIO_CONFIG_ENV_FILE=/etc/default/minio

Steg 7: Ändra standardanvändarnamn och lösenord

Ändra standardanvändarnamn och lösenord för att säkra din MinIO-installation.

Steg 8: Starta om MinIO Service

Starta om MinIO-tjänsten för att tillämpa ändringarna:

sudo systemctl starta om minio.service

Kontrollera statusen för att säkerställa att MinIO körs:

sudo systemctl status minio.service

Steg 9: Aktivera MinIO vid uppstart

För att aktivera MinIO att köras vid start, använd följande kommando:

systemctl aktivera minio

Steg 10: Skapa en hink

Skapa en hink i MinIO för att lagra dina filer. Du kan använda MinIOs webbgränssnitt eller MinIOs kommandoradsverktyg för att skapa en hink.

Steg 11: Skapa en policy för hinken

Skapa en policy för hinken för att definiera åtkomstbehörigheter. Här är ett exempel på policy:

{ "Version": "2012-10-17", "Statement": [ { "Effekt": "Tillåt", "Action": [ "s3:*" ], "Resurs": [ "arn:aws:s3:::din_hink/*" ] } ] }

Steg 12: Skapa en användare och tilldela den nya policyn

Skapa en användare i MinIO och tilldela användaren den tidigare skapade policyn.

Skapa en åtkomstnyckel och en hemlig nyckel för användaren. Du kommer att behöva dessa nycklar i nästa steg.

Steg 13: Konfigurera Laravel Support för MinIO

Om du använder Laravel eller PHP kan du integrera MinIO med din applikation med hjälp av league/flysystem-aws-s3-v3 paket.

Installera paketet via Composer:

kompositör kräver league/flysystem-aws-s3-v3 "^3.0"

Uppdatera sedan filsystem.php inställningsfil:

'moln' => env('FILESYSTEM_CLOUD', 'minio'), ... 'minio' => [ 'drivrutin' => 's3', 'endpoint' => env('MINIO_ENDPOINT', 'https://dindomän.com:9000'), 'use_path_style_endpoint' => true, 'key'MIN'IO ='tKEY', 'se', 'MIN'IO =' en => env('MINIO_SECRET', '...'), 'region' => env('MINIO_REGION', 'JUSTSOMETHINGRANDOM'), 'bucket' => env('MINIO_BUCKET', 'BUCKETNAME'), ],

Steg 14: Testa MinIO-integration i Laravel

Verifiera MinIO-integrationen genom att använda Laravels tinkerkonsol:

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

Detta bör returnera något som "sant" eller något framgångsrikt. Om inte, kan du lägga till detta filsystems felsökningsalternativ till MinIO: 'throw'=> env('APP_DEBUG'), så det blir något i stil med:

'moln' => env('FILESYSTEM_CLOUD', 'minio'), ... 'minio' => [ 'drivrutin' => 's3', 'endpoint' => env('MINIO_ENDPOINT', 'https://dindomän.com:9000'), 'use_path_style_endpoint' => true, 'key'MIN'IO ='tKEY', 'se', 'MIN'IO =' en => env('MINIO_SECRET', '...'), 'region' => env('MINIO_REGION', 'JUSTSOMETHINGRANDOM'), 'bucket' => env('MINIO_BUCKET', 'BUCKETNAME'), 'throw' => env('APP_DEBUG', false) ],

Detta kommer bara att felsöka / skicka felmeddelanden när APP_DEBUG är på. Kör aldrig detta i produktion eller i känsliga miljöer.

Steg 15: Konfigurera omvänd DNS

Ställ in omvänd DNS om möjligt.

Steg 16: Starta om och verifiera

Starta om din server och kontrollera att MinIO och integrationen med Laravel fortfarande fungerar korrekt. Detta kommer (förhoppningsvis) att betyda att systemd fortfarande fungerar korrekt.

Steg 17: Konfigurera brandväggar

För att förbättra säkerheten kan du ställa in brandväggar för att begränsa åtkomsten till MinIO:

  • För administratörsåtkomst, tillåt endast anslutningar från ditt hem/kontors IP-adresser.
  • För webbåtkomst, tillåt endast anslutningar från IP:erna för de servrar som behöver åtkomst.

Var alltid försiktig med det faktum att om ditt hem, kontor eller server IP ändras måste du lägga till dem på vitlistan. Om IP-adresserna ändras till ofta, vidta andra lämpliga säkerhetsåtgärder för din server.

Genom att följa dessa steg kan du installera och konfigurera en grundläggande MinIO-server på din Ubuntu-server och undvika de höga kostnaderna förknippade med Amazon S3. Genom att integrera MinIO med Laravel/PHP kan du utnyttja kraften i objektlagring i dina applikationer samtidigt som du behåller kontrollen över dina data och kostnader.

Skapa också en diskutrymmeskontroller cronjob som skickar e-post om din disk nästan är full, speciellt om du använder MinIO i singelserverläge. MinIO har möjlighet att länka flera servrar och replikeringszoner till varandra.

Om detta är för komplicerat har vi också skapat en guide för att ställa in en enkel SFTP-server för Ubuntu / Laravel.

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESvenska
Bläddra till toppen