2012-09-17 17 views
13

Ho letto molti articoli e domande sulla distribuzione del progetto Symfony 2 su un server di produzione, ma ancora non è chiaro. La distribuzione del progetto Symfony sembra un inferno - nessuno sa come farlo correttamente. Suppongo che l'argomento migliore che vedo sia Deploying a Symfony2 project, ma ancora, molto non è chiaro. L'ho letto e ho scoperto che in quella domanda la persona ha aggiunto il proprio IP a un elenco di IP consentiti, ma ciò significa che solo questo IP può accedere a questo sito, ma devo consentire a tutti di utilizzarlo.Passi per spostare il progetto Symfony 2 in hosting?

e come posso fare sito a lavorare con il percorso www.mydomen.com, invece di www.mydomen.com/web/app_dev.php/index (posso correggere percorso via Symfony, ma funziona dopo app_dev.php e via hosting, ma come si può lavorare prima/app_dev.php? Sembra app-dev .php dovrebbe sempre essere nel mio percorso).

Quindi, come devo trasferire correttamente il progetto sviluppato dal server locale al server di produzione, per favore?

+0

Questo è come lo faccio http://stackoverflow.com/questions/25887925/deploying-symfony-2-5-3-website-to-production-server – Baig

risposta

20

OK, scopro come distribuire correttamente l'app su hosting condiviso. Eccolo:

  1. Dipende tipo di hosting che si ha: se si dispone di console SSH , allora si può fare su di hosting dopo la fase 2, se non si dispone di poi farlo a livello locale: run comando php app/console cache:clear --env=prod.
  2. Supponiamo di avere su di te le cartelle di hosting youdomain/public_html, quindi in public_html devono trovarsi tutti i file web. È necessario caricare tutto dal progetto Symfony (cartelle: app, src, venditori, bin; file: deps, deps.lock), eccetto la cartella web nella cartella youdomain. Tutto dalla cartella web deve essere caricato nella cartella public_html.
  3. Controllare CHMOD per cartelle app/cache e app/logs, ci dovrebbe essere accesso in scrittura.
  4. Se non ci sono file .htaccess in public_html, quindi creare e aggiungere tale codice in esso: https://raw.github.com/symfony/symfony-standard/master/web/.htaccess
  5. Ora si dovrebbe usare youdomain.com/index invece di youdomain.com/app_dev.php/index, di utilizzare a livello locale.

Se il sito ancora non funziona, è possibile aprire il file web/config.php e trovare il codice dove eseguito il controllo per IP, si trova lì solo IP 127.0.0.1, aggiungi il tuo IP corrente a questo elenco e caricare nuovi config su un server. Quindi è possibile aprire il percorso yourdomain/config.php e verificare cosa non va. Se config.php mostra che tutto va bene, ma il tuo sito continua a non funzionare, puoi abilitare il debug di app_dev.php: apri app/app_dev.php e aggiungi il tuo IP all'elenco come per config.php fatto prima. Ora puoi eseguire gli script come localmente usando app_dev.php.

+0

L'ho fatto, ma ho ricevuto questo errore: Errore di sintassi: errore di sintassi, T_STRING imprevisto, in attesa di T_CONSTANT_ENCAPSED_STRING o '(' in /home/.../public_html/app.php sulla riga 3. In questa riga è: utilizzare Symfony \ Component \ ClassLoader \ ApcClassLoader; – user3383675

+0

Non funziona connettersi con la distribuzione, sembra essere un errore di sintassi – sphinks

+0

La cartella Web di symfony deve esistere. Invece di cambiare il nome della cartella web in public_html, è meglio creare un collegamento simbolico chiamato public_html che punta al web (public_html -> web). in altri casi, diversi comandi si lamenteranno della mancanza di una cartella Web, ad esempio risorse: installazione. –