2012-10-08 4 views
5

Non riesco a trovare alcuna informazione sull'esecuzione di un'installazione di Laravel in una sottocartella.Installazione di Laravel in una sottocartella

È persino possibile farlo? O è un requisito di Laravel per essere installato a livello di root?

mio fornitore di hosting non mi permette di creare VirtualHosts, e ho bisogno di installare un'applicazione laravel al fianco di quello che è attualmente lassù ...

UDPATE: scopre che era principalmente un problema .htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 
+0

Hi @Pierlo Upitup, come hai risolto il tuo problema. puoi spiegare in dettaglio. Saluti. –

risposta

6

In primo luogo, prendere in considerazione che questa risposta è solo per farlo funzionare, non sono sicuro di tutte le implicazioni che questo può avere in sicurezza a causa di ogni cartella nella parte pubblica del tuo sito.

In secondo luogo, ho appena provato questo con un'installazione di laravel barebones, quindi non sono sicuro se questo può avere effetti in fase di sviluppo (la mia ipotesi non è, ma non si sa mai).

1) copia tutto il contenuto della cartella public nella cartella principale laravel (che è la vostra sottocartella)

2) A questo punto è possibile rimuovere la public cartella vuota

3) modificare index.php e cambiare

// -------------------------------------------------------------- 
// Set the core Laravel path constants. 
// -------------------------------------------------------------- 
require '../paths.php'; 

a

// -------------------------------------------------------------- 
// Set the core Laravel path constants. 
// -------------------------------------------------------------- 
require './paths.php'; 

4) Modifica paths.php e cambiare

// -------------------------------------------------------------- 
// The path to the public directory. 
// -------------------------------------------------------------- 
$paths['public'] = 'public'; 

a

// -------------------------------------------------------------- 
// The path to the public directory. 
// -------------------------------------------------------------- 
$paths['public'] = '.'; 

5) Modificare il file .htaccess nella cartella laravel per renderlo reindirizzare non più in pubblico

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 
+0

beh, spostare tutti i contenuti della cartella pubblica nella root non è già quello che sto cercando, poiché le cartelle css, img e js si scontreranno con l'altra installazione. Inoltre, come ho detto, tenere presente che esiste già un framework personalizzato anoter al livello root, quindi sovrascrivere il file /index.php non è un'opzione. –

+0

Per cartella principale mi riferivo alla cartella laravel radice, puoi metterlo in una cartella nella tua installazione e poi accedervi in ​​www.yourdomain.com/laravelfolder – mrzard

+0

Ho seguito le tue istruzioni ma sto ricevendo un errore interno del server 500 . Cosa potrebbe essere? –