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:
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!