So konfigurieren Sie den Pathinfo-Modus in Nginx

WBOY
Freigeben: 2023-05-12 19:52:04
nach vorne
1495 Leute haben es durchsucht

Grund

Ich habe Apache schon lange nicht mehr verwendet und fühle mich allmählich mit Apache nicht mehr vertraut, weil ein Freund ein Zendframework-Framework hat, das von Apache nach Nginx verschoben wurde und Unterstützung im Pathinfo-Modus erfordert.

Suchen Sie online in Shanghai

Also begann ich, nach Artikeln zu suchen, die sich auf Nginx + Pathinfo beziehen. Zuerst dachte ich, es wäre einfach, es zu konfigurieren. Nach der Suche habe ich festgestellt, dass es viele Artikel gibt, in denen Nginx vorgestellt wird, um den Pathinfo-Modus zu aktivieren, und es scheint, dass dies nicht schwierig ist. Aber nach mehreren Stunden ist es immer noch nicht richtig konfiguriert. Und der Inhalt vieler Artikel ist sehr ähnlich und sie werden grundsätzlich nachgedruckt.
Ich fange an, ein wenig ängstlich zu werden! Denn ein Tag ist vergangen und die Vorbereitung ist noch nicht abgeschlossen.

Weiter suchen

Keine Wahl, weitersuchen. Zur Vereinfachung der Überprüfung habe ich a.com verwendet, um das thinkphp-Framework herunterzuladen und eine Umgebung einzurichten. Und fügte die Controller-Klasse useraction.class.php hinzu, fügte der Klasse eine App-Methode hinzu und gab eine Textzeile aus.
Also begann ich, die Datei nginx.conf ständig neu zu schreiben, nginx neu zu starten und die Adresse a.com/index.php/user/app ständig zu aktualisieren. Das Ergebnis ist entweder eine Eingabeaufforderung zur Adressbeschädigung, 502, oder eine Zugriffserkennung.
Ein weiterer Tag verging und ich begann, ein wenig zu zögern.

Endlich durchgehalten

Logisch gesehen bin ich der Meinung, dass es einen Präzedenzfall für Nginx + Thinkphp geben sollte, aber ich habe nicht nach der Antwort gesucht. Plötzlich fühle ich mich im Internet so verwirrt und kann auf eine kleine Frage keine Antwort finden. Heute Abend habe ich erneut versucht, die Nginx-Thinkphp-Schlüsselwortsuche zu verwenden. Nachdem ich auf mehr als zehn Seiten geklickt hatte, habe ich einen Code gefunden. Der Code lautet wie folgt:

location / { rewrite ^/(.*) $ /index.php/$1 last;

include fcgi.conf;

set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
set $ real_script_name $1;
set $path_info $2;
}
fastcgi_param script _filename $document_root $ Real_script_name;
Fastcgi_param Script_name $ Real_Script_name; Es wurde angezeigt, dass ich darauf zugreifen konnte, und es wurde schließlich gelöst einfach, einen Atemzug zu nehmen.
Posten Sie den nginx.conf-Code:


Kopieren Sie den Code. Der Code lautet wie folgt:

user  www www;
worker_processes 2;
worker_cpu_affinity 01 10;
 
error_log  /data1/logs/nginx_error.log  crit;
 
pid        /usr/local/webserver/nginx/nginx.pid;
 
worker_ rlimit_nofile 65535;
 
events
{
  use epoll;
  worker_connections 65535;
}
 
http
{
  include       mime.types;
  default_type  application/octet-stream;
 
  server_names_hash_bucket_size 128;
 . client _header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
 
  sendfile on;
  tcp_nopush     on;
 
  keepalive_timeout 60;
  tcp_nodelay on;
 
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_ timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
 
server:          umschreiben  ^ /(.*)$  /index.php/$1  last;
                    break;
            }
    }
    
    location ~ .php {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fcgi.conf;
        set $real_script_name $fastcgi_script_name;
            if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
            set $real_script_name $1;
            set $path_info $2;
        }
        fastcgi_param script_filename $document_root$real_script_name ;
        fastcgi_param script_name $real_script_name;
        fastcgi_param path_info $path_info;
    }
  }
}

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie den Pathinfo-Modus in Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage