Slim framework - dubbio su deployment apache

di il
2 risposte

Slim framework - dubbio su deployment apache

Buon giorno

sto cercando di imparare a usare il framework slim

per provarlo in funzione sul server apache locale installato sull stesso pc ho definito un virtualhost che ascolta sulla porta 8989 in localhost(così non interferisce sul virtualhost principale che uso per altri scopi) e come documentroot del virtualhost ho messo la cartella public della mia applicazione di prova

la mia app di prova è qui:   /home/ilmiousername/lamiaapp/

la documentroot del virtualhost è questa:  /home/ilmiousername/lamiaapp/public/

dentro la cartella “lamiaapp” ho messo il file .htaccess con questo contenuto:

RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]

invece dentro la cartella “lamiaapp/public” ho messo un file .htaccess con questo contenuto:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

mi sembra che funzioni con la mia app di prova, ma è solo una spece di hello world, non fa cose complicate

qualcuno mi può dire se il metodo che ho usato va bene ?

i miei dubbi principali sono questi:

1) è corretto fare in modo che la cartella public sia la documentroot del virtualhost ?      forse avrei dovuto mettere “lamiaapp” ?

2) vanno bene i file .htaccess che ho inserito ?

grazie

buona serata

2 Risposte

  • Re: Slim framework - dubbio su deployment apache

    Ciao Padre Pedro benvenuto.

    Dipende se il framework lo consente.

    Solitamente quando si riferisce alla cartella /public come intuibile dal nome significa destinato pubblicamente (cioè aperto su internet). Poiché alcune società di hosting adottano questa prassi.

    Non conosco il framework slim però dipende dal contesto.

    Se non si vuol visualizzare index.php occorre una riscrittura interna cosa che fa il file .htaccess, ho aggiunto anche l'intestazione HTTP:Authorization, inoltre la potenziale query string è inoltrata automaticamente senza il flags QSA o http://www.domain.tld/public/index.php?chiave=valore o http://www.domain.tld/public/?chiave=valore è identico se il tuo server web è impostato per una lista di file predefiniti (ovviamente la prima URL indica index.php esplicitamente, significa per la seconda URL usa la precedenza del file index.php invece di index.html etc.) . Poi in realtà esiste anche PATH_INFO (è simile a mod_rewrite ma solitamente il valore è /index.php/) meglio da disattivare su Apache.

    Ma sempre dipende da ciò che consente il framework, sebbene è una pratica consolidata potrebbe essere necessario index.php esplicito.

    Mentre il codice da lamiaapp/ effettua il redirect a public/ che è corretto se lamiaapp è in realtà il programma da mostrare pubblicamente  

    RewriteEngine On
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /public/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .* /index.php [L]
  • Re: Slim framework - dubbio su deployment apache

    Molte grazie per le spiegazioni Hormus

Devi accedere o registrarti per scrivere nel forum
2 risposte