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ą?

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.


- @ 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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.