Laravel app in public_html

Technische problemen? Hier kun jij jouw vragen stellen!
Forumregels
Check eerst even onze handleiding (http://help.antagonist.nl/) voordat je hier je vraag stelt. Voor de meeste problemen hebben we een oplossing met een zeer uitgebreide uitleg.
Plaats reactie
tomjesch
Berichten: 3
Lid geworden op: 07 mar 2019, 09:41

Laravel app in public_html

Bericht door tomjesch » 01 apr 2019, 11:47

Hoi iedereen,

Ik heb een Laravel applicatie welke ik op mijn webhosting pakket wil plaatsen. Standaard heeft zit er in mijn webhosting pakket een 'public_html' folder, waar je een Wordpress, Magento, etc kunt installeren. Mijn Laravel project komt al standaard met een 'public' folder waar bestanden in staan die verwijzen naar functionaliteit die buiten de 'public' folder staan. Dit zou ik zo willen houden, niet dat functionaliteit van de site beschikbaar is binnen een 'public_html' folder.

Het liefste zou ik naast (op hetzelfde niveau) mijn 'public_html' of 'public' folder ook alle source files van Laravel willen hebben.

Zijn er mensen die ervaring hebben met het publiceren van een Laravel project binnen Antagonist en eventueel tips kunnen geven wat ik nu het beste zou kunnen doen?

Reno
Berichten: 121
Lid geworden op: 22 jan 2010, 18:25

Re: Laravel app in public_html

Bericht door Reno » 01 apr 2019, 13:25

Ik heb niet specifiek ervaring met Laravel, maar wel met CodeIgniter (aangezien ikzelf webapps ontwikkel op basis van het CI framework).

De configuratie van beide frameworks komt in grote lijnen overeen. Wat ik heb gedaan is het volgende:

1. Login op FTP met behulp van FileZilla of een dergelijk programma.
2. Browse één level dieper in je domein (dus waar je public_html etc staan).
3. Maak hier een map laravel (in mijn geval was dat dus codeigniter, of iets anders onderscheidend aan)
4. Plaats hierin de bestanden die NIET publiekelijk beschikbaar mogen zijn (dit zijn bestanden die je alleen via FTP/SSH kunt benaderen, of naar kunt verwijzen in andere PHP-bestanden, zo ook bestanden die publiekelijk beschikbaar zijn).
5. Plaats de bestanden die wél publiekelijk beschikbaar mogen zijn in je public_html map.

Zorg dat je in de configs altijd verwijst naar de exacte locatie (dat wil zeggen, gebruik geen shortcuts '../laravel'), dus iets in de richting van '/home/debXXXXX/domains/jouwdomein.nl/laravel/'.

Succes!

tomjesch
Berichten: 3
Lid geworden op: 07 mar 2019, 09:41

Re: Laravel app in public_html

Bericht door tomjesch » 03 apr 2019, 04:39

Enorm bedankt voor het op weg helpen!
Uiteindelijk was het maar 1 config file aanpassen en uiteraard de Laravel files in een separate folder zetten. :lol:

emiel
Berichten: 66
Lid geworden op: 03 jan 2016, 12:40
Locatie: Gouda
Contacteer:

Re: Laravel app in public_html

Bericht door emiel » 03 apr 2019, 07:39

tomjesch schreef:
03 apr 2019, 04:39
Enorm bedankt voor het op weg helpen!
Uiteindelijk was het maar 1 config file aanpassen en uiteraard de Laravel files in een separate folder zetten. :lol:
Welke config file heb je aangepast en hoe? Voorheen gebruikte ik het stappenplan achter deze link maar deze lijkt met Laravel 5.8 niet meer te werken. Uiteindelijk heb ik het wel weer aan de praat gekregen maar als jij maar één config file hoeft aan te passen klinkt dat een stuk simpeler. :-)

tomjesch
Berichten: 3
Lid geworden op: 07 mar 2019, 09:41

Re: Laravel app in public_html

Bericht door tomjesch » 04 apr 2019, 05:34

Allereerst draai ik nog Laravel 5.6, weet niet of daar heel ver verschil in zal zitten maar ik ben zelf ook enorm benieuwd wat er gebeurd wanneer ik ga updaten.

Daarnaast ben ik zelf ook nog niet helemaal klaar met testen (nog geen tijd gehad om er even goed voor te zitten). Ik heb na mijn vorige bericht, nog een aantal opties tegen. Op het moment draai ik mijn website nu door alleen aanpassingen aan de index.php file (weet dus niet of dit werkt in 5.8 ).

Wat ik heb gedaan (handmatig):

1. mappen op server plaatsen
Alle files en folders in een map 'laravel' geplaatst, behalve de 'public' folder en mijn .git gerelateerde files.
De 'laravel' folder staat bij mij op hetzelfde niveau als de default 'public_html'. De inhoud van mijn 'public' html staat in de standaard 'public_html'.

2a. index.php aanpassen
In de 'public' folder mijn 'index.php' geopend en de locatie van '/vendor/autoload.php' en '/bootstrap/app.php' aangepast, door de laravel folder ervoor te zetten. Bij mij staan ze nu zo:

require realpath(__DIR__.'/../') .'/laravel/vendor/autoload.php';
$app = require_once realpath(__DIR__.'/../') .'/laravel/bootstrap/app.php';

2b.
Onder de '/bootstrap/app.php' regel heb ik ook het onderstaande aan gegeven, om de app te vertellen dat de huidige map, de public map is.

$app->bind('path.public', function() {
return __DIR__;
});

3. TO-DO! public folder hernoemen
In Laravel moet ik de aanpassing nog maken dat mijn css en js builds niet in 'public' maar in 'public_html' moet verschijnen. Hier heb ik een aantal dingen voor gevonden, maar tot dusver krijg ik deze change nog niet voor elkaar. Wanneer dat werkt kan ik verder met CI via bitbucket.

Ik zal even de bronnen opzoeken die ik heb gevonden om het tot zover werkend te krijgen, ik heb nog geen tests gedaan met betrekking tot invullen van formulieren op mijn site, uploaden van data of het automatisch builden en deployen naar Antagonist vanaf bitbucket (wat voorheen wel allemaal werkte, met een niet gewenste folder structuur).

emiel
Berichten: 66
Lid geworden op: 03 jan 2016, 12:40
Locatie: Gouda
Contacteer:

Re: Laravel app in public_html

Bericht door emiel » 04 apr 2019, 12:20

Dank je wel voor het delen!

jwktje
Berichten: 1
Lid geworden op: 09 mei 2019, 16:25

Re: Laravel app in public_html

Bericht door jwktje » 09 mei 2019, 16:29

Ik heb zojuist een Laravel app gedeployed op mijn hosting pakket. Qua mappenstructuur heb ik niks omgegooid.
Ik heb simpelweg op het niveau van public_html mijn Git repo gecloned.
Hierdoor staat je applicatie in een submap die niet publiekelijk bereikbaar is.
Daarna heb ik public_html verwijderd en een Symlink gemaakt naar /domains/{domein}/{laravel app naam}/public.

Hierdoor is de public map de publieke root, en staat de rest er buiten. Dit lijkt prima te werken. Let wel, ik ben pas recent met Laravel gestart dus misschien ga ik er nog achter komen of er problemen zijn met deze aanpak.

Ik vond het vooral wel fijn omdat ik op deze manier gewoon 1:1 mijn repository kan aanhouden qua structuur.

emiel
Berichten: 66
Lid geworden op: 03 jan 2016, 12:40
Locatie: Gouda
Contacteer:

Re: Laravel app in public_html

Bericht door emiel » 10 mei 2019, 07:21

Klinkt ook als een goede oplossing. Wist niet dat je public_html zomaar kon verwijderen cq. kon vervangen door een symbolic link.

Plaats reactie