Zoeken…
Opmerkingen
Ga naar deze Github-repo voor meer informatie over het implementeren van het Laravel-project op shared hosting .
Laravel 5-app op Shared Hosting op Linux Server
Standaard wordt in de public
map van het Laravel-project de inhoud van de app weergegeven die door iedereen kan worden opgevraagd, de rest van de app-code is onzichtbaar of ontoegankelijk voor iedereen zonder de juiste machtigingen.
Na het ontwikkelen van de applicatie op uw ontwikkelmachine, moet deze naar een productieserver worden gepusht zodat deze overal via internet toegankelijk is - toch?
Voor de meeste apps / websites is de eerste keuze het gebruik van een gedeeld hostingpakket van hostingproviders zoals GoDaddy, HostGator enz. Voornamelijk vanwege de lage kosten.
opmerking : u kunt uw provider vragen om document_root handmatig te wijzigen, dus het enige wat u hoeft te doen is uw Laravel-applicatie uploaden naar de server (via FTP), een wijziging van root aanvragen in {app} / public en u zou goed moeten zijn.
Dergelijke shared hostingpakketten hebben echter beperkingen op het gebied van terminaltoegang en bestandsrechten. Standaard moet men hun app / code uploaden naar de map public_html
op hun gedeelde hostingaccount.
Dus als u een Laravel-project naar een gedeeld hostingaccount wilt uploaden, hoe zou u dat dan doen? Moet u de volledige app (map) uploaden naar de map public_html
op uw gedeelde hostingaccount? - Zeker NEE
Omdat alles in de map public_html
"publiekelijk dwz door iedereen" toegankelijk is, wat een groot beveiligingsrisico zou zijn.
Stappen om een project te uploaden naar een gedeeld hostingaccount - op de Laravel-manier
Stap 1
Maak een map met de naam laravel (of wat u maar wilt) op hetzelfde niveau als de map public_html
.
Eg:
/
|--var
|---www
|----laravel //create this folder in your shared hosting account
|----public_html
|----log
Stap 2
Kopieer alles behalve de public
map van uw laravelproject (op ontwikkelmachine) in de laravel
(op serverhost - gedeeld hostingaccount).
Je kunt gebruiken:
- C-paneel: dat zou de langzaamste optie zijn
- FTP-client: zoals FileZilla om verbinding te maken met uw gedeelde hostingaccount en uw bestanden en mappen over te zetten via FTP-upload
- Netwerkstation toewijzen: u kunt ook een toegewezen netwerkstation op uw ontwikkelingsmachine maken om verbinding te maken met de hoofdmap van uw gedeelde hostingaccount met " ftp: // uw-domeinnaam " als het netwerkadres.
Stap 3
Open de public
map van uw laravelproject (op ontwikkelmachine), kopieer alles en plak in de map public_html
(op serverhost - gedeelde hostingaccount).
Stap 4
Open nu het index.php
bestand in de map public_html
op het gedeelde hostingaccount (in cpanel-editor of een andere aangesloten editor) en:
Verandering:
require __DIR__.'/../bootstrap/autoload.php';
Naar:
require __DIR__.'/../laravel/bootstrap/autoload.php';
En verandering:
$app = require_once __DIR__.'/../bootstrap/app.php';
Naar:
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
Opslaan en afsluiten.
Stap 5
Ga nu naar de laravel
(op gedeelde hostingaccount-server) en open het server.php
bestand
Verandering
require_once __DIR__.'/public/index.php';
Naar:
require_once __DIR__.'../public_html/index.php';
Opslaan en afsluiten.
Stap 6
Stel de bestandsrechten voor de laravel/storage
(recursief) en alle bestanden, submappen en bestanden daarin op gedeelde hostingaccount - server in op 777
.
Opmerking: Wees voorzichtig met de bestandsrechten in Linux, ze zijn als tweesnijdend zwaard, als ze niet correct worden gebruikt, kunnen ze uw app kwetsbaar maken voor aanvallen. Voor het begrijpen van Linux-bestandsrechten kunt u https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions lezen
Stap 7
Omdat het .env
bestand van de lokale / ontwikkelingsserver wordt genegeerd door git en het moet worden genegeerd omdat het alle omgevingsvariabelen bevat, inclusief de APP_KEY en het niet aan publiek moet worden blootgesteld door het in de opslagplaatsen te duwen '. Je kunt ook zien dat .gitignore
bestand .env
genoemd, dus het zal het niet uploaden naar repositories.
Nadat u alle bovenstaande stappen hebt .env
maakt u een .env
bestand in de map laravel en voegt u alle omgevingsvariabele die u hebt gebruikt van het .env
bestand van de lokale / ontwikkelingsserver toe aan het .env
bestand van de productieserver.
Zelfs zijn er configuratiebestanden zoals app.php
, database.php
in de configuratiemap van de laraventoepassing die deze variabelen definieert als standaard in de tweede parameter van env()
maar codeer de waarden in deze bestanden niet hard, omdat dit invloed heeft op de configuratiebestanden van de gebruikers die uw repository ophalen. Het wordt dus aanbevolen om handmatig een .env
bestand te maken!
Laravel geeft ook een .env-example
dat u als referentie kunt gebruiken.
Dat is het.
Wanneer u nu de URL bezoekt die u hebt geconfigureerd als het domein met uw server, zou uw laravel-app moeten werken net zoals deze werkte op uw localhost - ontwikkelingsmachine, terwijl de toepassingscode nog steeds veilig is en niet toegankelijk voor iedereen zonder de juiste bestandsrechten.