Sök…


Anmärkningar

Besök denna Github-repo för att få mer information om hur du distribuerar Laravel-projektet om delad värd .

Laravel 5-app om delad hosting på Linux-server

Som standard exponerar Laravel-projektets public mapp innehållet i appen som kan begäras var som helst av vem som helst, resten av appkoden är osynlig eller otillgänglig för någon utan korrekt behörighet.

Efter att du har utvecklat applikationen på din utvecklingsmaskin måste den skjuts till en produktionsserver så att den kan nås via internet var som helst - eller hur?

För de flesta appar / webbplatser är det första valet att använda delat värdpaket från webbhotellleverantörer som GoDaddy, HostGator etc. främst på grund av låga kostnader.

Obs! Du kan be din leverantör att manuellt ändra document_root , så allt du behöver göra är att ladda upp din Laravel-applikation till servern (via FTP), begära ändring av root till {app} / public och du borde vara bra.

Sådana delade värdpaket har dock begränsningar vad gäller terminalåtkomst och filtillstånd. Som standard måste man ladda upp sin app / kod till mappen public_html på deras delade värdkonto.

Så om du vill ladda upp ett Laravel-projekt till ett delat värdkonto, hur skulle du göra det? Ska du ladda upp hela appen (mappen) till mappen public_html på ditt delade värdkonto? - Visst INGEN

Eftersom allt i mappen public_html är tillgängligt "offentligt dvs av vem som helst" vilket skulle vara en stor säkerhetsrisk.

Steg för att ladda upp ett projekt till delat värdkonto - Laravel-sättet

Steg 1
Skapa en mapp som heter laravel (eller vad du vill) på samma nivå som mappen public_html .

Eg:  
/
|--var  
    |---www
        |----laravel       //create this folder in your shared hosting account
        |----public_html  
        |----log  

Steg 2
Kopiera allt utom den public mappen från ditt laravel-projekt (på utvecklingsmaskin) i laravel mappen (på servervärd - delat värdkonto).
Du kan använda:

  • C-panel: vilket skulle vara det långsammaste alternativet
  • FTP-klient: som FileZilla för att ansluta till ditt delade värdkonto och överföra dina filer och mappar via FTP-uppladdning
  • Map Network Drive: du kan också skapa en mappad nätverksenhet på din utvecklingsmaskin för att ansluta till ditt delade värdkontots rotmapp med " ftp: // your-domain-name " som nätverksadress.

Steg 3
Öppna den public mappen för ditt laravel-projekt (på utvecklingsmaskin), kopiera allt och klistra in i mappen public_html (på servervärd - delat värdkonto).
Steg 4
index.php filen public_html mappen public_html på det delade värdkontot (i cpanel-redigeraren eller någon annan ansluten redigerare) och:

Förändra:

require __DIR__.'/../bootstrap/autoload.php';   

Till:

require __DIR__.'/../laravel/bootstrap/autoload.php';  

Och ändra:

$app = require_once __DIR__.'/../bootstrap/app.php';

Till:

$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

Spara och stäng.

Steg 5
Gå nu till laravel mappen (på delat webbhotell-server) och öppna server.php filen
Förändra

require_once __DIR__.'/public/index.php';

Till:

require_once __DIR__.'../public_html/index.php';  

Spara och stäng.

Steg 6
Ställ in laravel/storage för laravel/storage (rekursivt) och alla filer, undermappar och filer i dem på delat värdkonto - server till 777 .
Obs: Var försiktig med filbehörigheterna i Linux, de är som dubbelkantade svärd, om de inte används korrekt kan de göra din app sårbar för attacker. För att förstå Linuxfilbehörigheter kan du läsa https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions

Steg 7

Eftersom .env filen för lokal / utvecklingsserver ignoreras av git och den borde ignoreras eftersom den har alla miljövariabler inklusive APP_KEY och den bör inte utsättas för allmänheten genom att skjuta in den i förvaren. Du kan också se att .gitignore filen har .env nämnt så att den inte kommer att ladda upp den till förvar.

När du har följt alla ovanstående steg gör du en .env fil i laravel-mappen och lägger till alla miljövariabler som du har använt från den lokala / utvecklingsserverns .env fil till .env filen för produktionsservern.

Även det finns konfigurationsfiler som app.php , database.php i konfigurationsmappen i laravel-applikationen som definierar dessa variabler som standard i den andra parametern i env() men kodar inte värdena i dessa filer eftersom det kommer att påverka konfigurationsfiler för de användare som drar ditt arkiv. Så det rekommenderas att skapa .env fil manuellt!

Laravel ger också .env-example som du kan använda som referens.

Det är allt.

När du nu besöker webbadressen som du konfigurerade som domän med din server, bör din laravel-app fungera precis som den fungerade på din localhost-utvecklingsmaskin, medan applikationskoden fortfarande är säker och inte tillgänglig för någon utan korrekt filtillstånd.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow