Jaka jest nazwa i lokalizacja pliku konfiguracyjnego Nginx (odpowiednik htaccess)?

30

Istnieje wiele samouczków na temat pisania reguł przepisywania Nginx w celu naśladowania pliku .htaccess Apache, ale nie mogę śmiało powiedzieć, że wiem, jaka jest nazwa lub lokalizacja tak zwanego pliku konfiguracyjnego Nginx. W szczególności szukam pliku konfiguracyjnego Nginx, który pozwala napisać ścieżkę serwera i dyrektywy PHP. Używam Ubuntu 12 Linux i Codeigniter jako mojego frameworka PHP.

Oto, co dotychczas wiem:

  1. Ten plik: /etc/nginx/nginx.confpomimo jego kuszącej nazwy, najwyraźniej nie jest to miejsce na dyrektywy serwerowe.
  2. Ten plik: /etc/nginx/sites-available/defaultwygląda na to, czego potrzebuję (jestem w stanie generować błędy php specyficzne dla mojej aplikacji), ale nie mogę uzyskać prawidłowego routingu ścieżki specyficznej dla Codeigniter. Przede wszystkim, czy jest to plik „config” / .htaccess, o którym wszyscy mówią?
Tim Peterson
źródło
Twój problem nie dotyczy PHP w języku (tj. Programowania w PHP), ale konfigurację PHP na konkretnym serwerze, co tłumaczy całkowicie poprawne głosy bliskie. Nie mogę komentować drugiej części twojego postu, ponieważ wydaje się ona bardzo subiektywna i stronnicza.
nickb
1
Możesz dowiedzieć się, gdzie znajduje się konfiguracja nginx, za pomocą nginx -Vktórego możesz znaleźć w instrukcji za pomocą man nginx. -VOpcja jest udokumentowane jako „-V Wydrukuj wersję kompilatora, Nginx wersję, a parametry skryptu konfiguracji.”. Jeśli nginxnie znajduje się na twojej ścieżce, użyj, which nginxktóra zwraca pełną ścieżkę do nginx$(which nginx) -V
bucabay 16.04.16

Odpowiedzi:

28

Używam PHP z nginx na moim serwerze programistycznym w następującej konfiguracji:

  1. w /etc/nginx/nginx.confdodałem: include /etc/nginx/sites-enabled/*;przed ostatnim }.

  2. uruchom następujące polecenia, aby utworzyć konfiguracje witryny:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. edytuj konfigurację strony, niektóre możliwe konfiguracje (o tym mówiłem w mojej konfiguracji): http://kbeezie.com/view/nginx-configuration-examples/

  4. link do dostępnej strony, aby ją włączyć

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. pamiętaj, że możesz faktycznie włączyć pliki w konfiguracje niemal wszędzie, dzięki czemu tworzenie wielu witryn jest łatwe, gdy chcesz połączyć podobne konfiguracje razem.

Tak. .Htaccess można porównać do server{}bloku w nginx, ale są one również bardzo różne. nginx ma znacznie lżejsze podejście do parsowania konfiguracji i nie skanuje katalogów witryn w poszukiwaniu dodatkowej konfiguracji, tylko to, co widzi nginx.conf, idzie.

abestic9
źródło
- @ Andrew dziękuje za wiele przydatnych informacji !, domyślnie mój /etc/nginx/nginx.confplik ma już include /etc/nginx/sites-enabled/*;na samym końcu. Wygląda na to, że te 2 pliki rozmawiają ze sobą na moim serwerze, a teraz mam do czynienia z problemami związanymi z Codeigniter. Czy używasz Codeigniter? Istnieje pewna ścieżka funkiness że muszę dostać uchwyt na ...
Tim Peterson
Używam własnego frameworka, który jest dość podobny (choć bardziej prymitywny) do CodeIgniter. W tej chwili próbuję przekonwertować moje reguły regexp mod_rewrite na moduł HttpRewrite nginx. Moim pierwszym poważnym przełomem było przekroczenie błędów 403/404 wyświetlanych przez nginx, gdy źle skonfigurowałem rootparametr. Jeśli potrzebujesz inspiracji, sprawdź moje pytania.
abestic9
dziękuję za wskazówkę dotyczącą sprawdzania twoich pytań. Myślę, że teraz rozumiem więcej, dzięki za postawienie mnie na ścieżce ...
Tim Peterson