Frage Wie lautet der Name und der Speicherort der Nginx-Konfigurationsdatei (entspricht htaccess)?


Da sind viele Tutorials wie man Nginx Rewrite-Regeln schreibt, um die .htaccess-Datei von Apache nachzuahmen, aber ich kann nicht sicher sagen, dass ich weiß, wie der Name oder der Ort dieser sogenannten Nginx-Konfigurationsdatei tatsächlich ist. Ich suche speziell nach der Nginx-Konfigurationsdatei, mit der Sie Serverpfad- und PHP-Anweisungen schreiben können. Ich benutze Ubuntu 12 Linux und Codeigniter als mein PHP-Framework.

Hier ist, was ich bisher weiß:

  1. Diese Datei: /etc/nginx/nginx.conf Trotz seines verlockenden Namens ist es offenbar nicht der richtige Ort für Server-Anweisungen.
  2. Diese Datei: /etc/nginx/sites-available/default scheint wie, was ich brauche (ich bin in der Lage, PHP-Fehler für meine App zu generieren), aber ich kann nicht die Codeigniter-spezifische Pfad-Routing korrekt. Zuallererst, ist das die "config" -Datei / .htaccess-Äquivalent, von der alle sprechen?

28
2017-07-31 02:19


Ursprung


Dein Problem ist nicht mit PHP die Sprache (d. h. Programmierung in PHP), es ist mit PHP Aufbau auf einem bestimmten Server, was die vollständig gültigen Schlussabstimmungen erklärt. Ich kann den letzten Teil Ihres Beitrags nicht kommentieren, da er sehr subjektiv und voreingenommen erscheint. - nickb
Sie können herausfinden, wo sich nginx config befindet nginx -V welches Sie im Handbuch mit finden können man nginx. Das -V Die Option ist dokumentiert als "-V Gibt die nginx-Version, die Compiler-Version und die Skriptparameter aus.". Ob nginx ist nicht in deinem Weg, benutze es which nginx was den vollständigen Pfad zu nginx zurückgibt $(which nginx) -V - bucabay


Antworten:


Ich verwende PHP mit nginx auf meinem Entwicklungsserver mit folgender Konfiguration:

  1. im /etc/nginx/nginx.conf Ich fügte hinzu: include /etc/nginx/sites-enabled/*; vor dem letzten }.

  2. Führen Sie die folgenden Befehle aus, um Ihre Site-Konfigurationen zu erstellen:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. Bearbeiten Sie die Site-Konfiguration, einige mögliche Konfigurationen (das ist, was ich in meinem Setup angesprochen habe): http://kbeezie.com/view/nginx-configuration-examples/

  4. Verknüpfen Sie mit der verfügbaren Website, um sie zu aktivieren

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. Denken Sie daran, dass Sie Dateien fast überall in die Konfigurationen aufnehmen können. Dies macht es einfach, mehrere Websites zu erstellen, wenn Sie ähnliche Konfigurationen zusammenstellen möchten.

Ja, .htaccess ist vergleichbar mit dem server{} Block in Nginx, aber sie sind auch sehr unterschiedlich. nginx hat einen viel leichteren Ansatz zum Parsen der Konfiguration und es wird keine Site-Verzeichnisse nach zusätzlicher Konfiguration durchsuchen, nur was von nginx.conf gesehen wird, geht.


27
2017-07-31 02:28



- @ Andrew dankt vielen hilfreichen Informationen !, standardmäßig meine /etc/nginx/nginx.conf Datei hat bereits include /etc/nginx/sites-enabled/*; ganz am Ende. Es sieht so aus, als ob diese beiden Dateien auf meinem Server miteinander kommunizieren und ich mich jetzt mit Codeigniter-spezifischen Problemen befasse. Verwenden Sie Codeigniter? Es gibt eine Pfad-Funkiness, die ich in den Griff bekommen muss ... - tim peterson
Ich benutze mein eigenes Framework, das CodeIgniter ziemlich ähnlich (wenn auch primitiver) ist. Im Moment versuche ich meine mod_rewrite regexp Regeln in nginx's HttpRewrite Modul zu konvertieren. Mein erster großer Durchbruch war, dass ich die 403/404 Fehler-Nginx-Anzeigen übersprang, wenn ich die Konfiguration falsch konfiguriert hatte rootParameter. Fühlen Sie sich frei, meine Fragen zu überprüfen, wenn Sie irgendeine Inspiration brauchen. - abestic9
Danke für den Tipp auf Ihre Fragen zu überprüfen. Ich denke ich verstehe jetzt mehr, danke für die Einstellung auf dem Weg ... - tim peterson