Table of Contents : Il manuale

Installazione

Per installare CakePHP basta caricarlo nella directory principale del tuo webserver, ma puoi anche modificare l'installazione di default con estrema flessibilità, in base alle tue esigenze. In questa sezione spieghiamo i tre modi principali per installare CakePHP: Sviluppo, Produzione e Avanzato.

  • Sviluppo: facile e istantaneo, ma la directory principale di CakePHP è accessibile tramite url, il che è un po' meno sicuro.
  • Produzione: è necessario saper configurare la directory principale del web server. Produce url semplici ed è molto sicuro.
  • Avanzato: modificando poche variabili di configurazione, puoi posizionare CakePHP in qualsiasi parte del filesystem. In questo modo puoi utilizzare la stessa installazione di CakePHP per svariate applicazioni.

Sviluppo

Copia le cartelle di CakePHP nella directory principale del tuo web server. Per esempio, se la directory principale del tuo web server è /var/www/html, la tua installazione di sviluppo assomiglierà a quanto segue:

  • /var/www/html
    • /cake_1_2
      • /app
      • /cake
      • /docs
      • /index.php
      • /vendors

Per vedere il risultato, digita nel browser http://www.example.com/cake_1_2/

Produzione

Per realizzare l'installazione di produzione, doevi avere i permessi di modificare la directory root del tuo web server. Eseguire l'installazione di produzione significa che il tuo dominio funzionerà come una sola applicazione CakePHP.

La configurazione dell'installazione di produzione:

  • /percorso_alla_directory_di _installazione/
  • /app
    • /webroot (questa directory deve essere impostata come root del web server)
  • /cake
  • /docs
  • /index.php
  • /vendors

Se usi il web server Apache, modifica la direttiva DocumentRoot in questo modo:

DocumentRoot /percorso_alla_directory_di _installazione/app/webroot
  1. DocumentRoot /percorso_alla_directory_di _installazione/app/webroot

Per vedere il risultato, digita nel browser http://www.example.com.

Installazione Avanzata

In molti casi potrebbe essere utile accedere alla stessa istallazione di CakePHP da più parti del tuo sistema. Questo a causa di restrizioni sull'hosting condiviso, oppure perché vuoi che molte applicazioni condividano la stessa istallazione di CakePHP. Questa sezione descrive come rendere disponibile un'unica istallazione di CakePHP da molte directory.

Innanzitutto, comprendiamo la struttura di base di una applicazione CakePHP:

  1. Le librerie principali di CakePHP, in /cake.
  2. La tua applicazione, in /app.
  3. La directory root della tua applicazioneT, di norma in /app/webroot.

Ciascuna di queste directory ppuò essere spostata ovunque nel filesystem, con l'eccezione della webroot, che deve essere accessibile dal web server. Puoi spostare la directory webroot dove vuoi, ma devi comunicare a CakePHP come raggiungerla.

Per configurare la tua istallazione, devi solo cambiare alcune variabili nel file /app/webroot/index.php. Le variabili sono: ROOT, APP_DIR, e CAKE_CORE_INCLUDE_PATH.

  • ROOT deve essere impostata con il percorso delle directory che contiene la directory app.
  • APP_DIR deve essere impostata con il percorso della directory app.
  • CAKE_CORE_INCLUDE_PATH deve essere impostata con il percorso della directory delle librerie principali di CakePHP.

Ecco un esempio per mostrare come funziona una istallazione avanzata nella pratica. Immagina di voler impostare l'istallazione come segue:

  • La directory principale di CakePHP la mettiamo in /usr/lib/cake.
  • La directory webroot la mettiamo in /var/www/mysite/.
  • La directory dell'applicazione la mettiamo in /home/me/mysite.

Data questa struttura, devi ora modificare il file webroot/index.php (che ora si troverà in /var/www/mysite/index.php) in questo modo:

// /app/webroot/index.php (partial, comments removed) 

if (!defined('ROOT')) {
    define('ROOT', DS.'home'.DS.'me');
}

if (!defined('APP_DIR')) {
    define ('APP_DIR', 'mysite');
}

if (!defined('CAKE_CORE_INCLUDE_PATH')) {
    define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake');
}
  1. // /app/webroot/index.php (partial, comments removed)
  2. if (!defined('ROOT')) {
  3. define('ROOT', DS.'home'.DS.'me');
  4. }
  5. if (!defined('APP_DIR')) {
  6. define ('APP_DIR', 'mysite');
  7. }
  8. if (!defined('CAKE_CORE_INCLUDE_PATH')) {
  9. define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake');
  10. }

Utilizza sempre la costante DS al posto delle barre per descrivere il percorso delle directory. Questo evita molti errori che possono essere causati dall'utilizzo di barre sbagliate, e rende il codice più postabile.

Configurazione di classi esterne

Talvolta può essere utile riutilizzare delle classi MVC tra diverse applicazioni sullo stesso sistema. Se vuoi utilizzare un controller in più applicazioni, puoi modificare il file bootstrap.php per ottenere questo risultato.

In bootstrap.php, definisci alcune variabili con nomi speciali per informare CakePHP dove cercare alcune classi MVC:

$viewPaths        = array();
$controllerPaths  = array();
$modelPaths       = array();
$helperPaths      = array();
$componentPaths   = array();
$behaviorPaths    = array();
  1. $viewPaths = array();
  2. $controllerPaths = array();
  3. $modelPaths = array();
  4. $helperPaths = array();
  5. $componentPaths = array();
  6. $behaviorPaths = array();

Ciascuna di queste variabili può essere impostata come un array di percorsi assoluti del filesystem dove sono posizionate le classi esterne. Assicurati che ciascun percorso termini con una barra.

Apache e mod_rewrite

Anche se CakePHP è costruito in modo da funzionare con mod_rewrite ovunque, alcuni utenti hanno riscontrato delle difficoltà. Riportiamo alcuni consigli per un corretto funzionamento:

  • Assicurati che .htaccess sia attivato. Nel file httpd.conf, dovresti trovare una sezione che definisce la tua directory nel server. Assicurati che AllowOverride sia impostato a All per la directory DocumentRoot.
  • Assicurati che quello che stai modifcando sia httpd.conf del sistema, piuttosto che un httpd.conf specifico di un utente o di un sito.
  • Mancano i files .htaccess forniti con CakePHP? Questo può succedere durante la copia o lo spostamento di files, dato che alcuni sistemi operativi trattano i files .htaccess come file nascosti, perché iniziano con '.'. Assicurati che la tua copia di CakePHP sia autentica (scaricata dalla sezione Downloads del sito o dal repository SVN) e che sia integra.
  • Assicurati che stai utilizzando correttamente mod_rewrite. Nel tuo file httpd.conf dovresti trovare qualcosa di simile a questo: LoadModule rewrite_module libexec/httpd/mod_rewrite.so e AddModule mod_rewrite.c.
  • Se stai istallando CakePHP in una directory utente (http://example.com/~username), devi modificare il file .htaccess nella directory principale di CakaPHP. Aggiungi la linea "RewriteBase /~myusername/".

Azione!

Bene, ora guarda il risultato. A seconda della tua configurazione, scrivi nel browser http://example.com/ o http://example.com/cake_install/. Dovrebbe apparire la homepage di dafault e un messaggio che che ti comunica lo stato attuale della connessione al database.

Bravo! Sei pronto per iniziare a sviluppare la tua applicazione in CakePHP.