Qual è il nome e il percorso del file di configurazione di Nginx (equivalente di htaccess)?


30

Esistono molti tutorial su come scrivere le regole di riscrittura di Nginx per imitare il file .htaccess di Apache, ma non posso dire con certezza di sapere quale sia il nome o il percorso di questo cosiddetto file di configurazione Nginx. Sto specificatamente cercando il file di configurazione di Nginx che ti consente di scrivere il percorso del server e le direttive PHP. Sto usando Ubuntu 12 Linux e Codeigniter come il mio framework PHP.

Ecco quello che so finora:

  1. Questo file: /etc/nginx/nginx.confnonostante il suo nome allettante apparentemente non è il posto per le direttive del server.
  2. Questo file: /etc/nginx/sites-available/defaultsembra quello di cui ho bisogno (sono in grado di generare errori PHP specifici per la mia app) ma non riesco a ottenere il routing path specifico di Codeigniter corretto. Prima di tutto, è questo il file "config" / .htaccess equivalente di cui tutti parlano?

Il tuo problema non è con PHP il linguaggio (cioè la programmazione in PHP), è con la configurazione di PHP su un server specifico, il che spiega i voti stretti completamente validi. Non posso commentare l'ultima parte del tuo post, in quanto sembra altamente soggettivo e di parte.
Nick

1
Puoi trovare dove si trova nginx config usando il nginx -Vquale puoi trovare nel manuale con man nginx. L' -Vopzione è documentata come "-V Stampa la versione di nginx, la versione del compilatore e configura i parametri dello script.". Se nginxnon è nel tuo percorso, utilizza which nginxquale restituisce il percorso completo a nginx$(which nginx) -V
bucabay

Risposte:


28

Uso PHP con nginx sul mio server di sviluppo con la seguente configurazione:

  1. in /etc/nginx/nginx.confho aggiunto: include /etc/nginx/sites-enabled/*;prima dell'ultimo }.

  2. eseguire i comandi seguenti per creare le configurazioni del sito:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. modifica la configurazione del sito, alcune possibili configurazioni (questo è ciò a cui ho fatto riferimento nella mia installazione): http://kbeezie.com/view/nginx-configuration-examples/

  4. collegamento al sito disponibile per abilitarlo

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. tieni presente che puoi effettivamente includere file all'interno delle configurazioni quasi ovunque, questo rende facile la creazione di più siti quando vuoi mettere insieme configurazioni simili.

Sì, .htaccess è comparabile al server{}blocco in nginx, ma sono anche molto diversi. nginx ha un approccio molto più leggero all'analisi della configurazione e non eseguirà la scansione delle directory del sito per ulteriori configurazioni, solo ciò che viene visto da nginx.conf.


- @ Andrew grazie molte informazioni utili !, di default il mio /etc/nginx/nginx.conffile ha già include /etc/nginx/sites-enabled/*;alla fine. Sembra che questi 2 file si parlino sul mio server e ora ho a che fare con problemi specifici di Codeigniter. Stai usando codeigniter? C'è un po 'di stranezza di cui ho bisogno per capire ...
Tim Peterson,

Uso il mio framework che è abbastanza simile (anche se più primitivo) a CodeIgniter. Al momento sto cercando di convertire le mie regole regexp mod_rewrite nel modulo HttpRewrite di nginx. Il mio primo grande passo in avanti è stato il superamento degli errori 403/404 visualizzati da nginx quando ho erroneamente configurato il rootparametro. Sentiti libero di dare un'occhiata alle mie domande se hai bisogno di ispirazione.
abestic9

grazie per il suggerimento su come verificare le tue domande. Sto pensando di capire di più ora, grazie per avermi messo sulla strada ...
Tim Peterson
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.