이유
아파치를 오랫동안 사용하지 않았고, 친구가 apache에서 nginx로 이동한 zendframework 프레임워크를 가지고 있고 pathinfo 모드 지원이 필요하기 때문에 점점 아파치가 낯설게 느껴집니다.
상하이에서 온라인으로 검색
그래서 처음에는 nginx+pathinfo 관련 기사를 찾아보기 시작했는데 구성이 쉬울 것 같았습니다. 검색해보니 pathinfo 모드를 활성화하기 위해 nginx를 소개하는 글이 많이 나오는데, 어렵지 않은 것 같습니다. 그러나 몇 시간이 지난 후에도 여전히 제대로 구성되지 않았습니다. 그리고 다수의 기사의 내용은 매우 유사하며 기본적으로 재인쇄됩니다.
조금 불안해지기 시작했어요! 하루가 지났는데도 준비가 완료되지 않았기 때문입니다.
계속 검색하세요
선택하지 않고 계속 검색하세요. 검증의 편의를 위해 a.com을 이용하여 thinkphp 프레임워크를 다운로드하고 환경을 설정했습니다. 그리고 useraction.class.php 컨트롤러 클래스를 추가하고 클래스에 app 메소드를 추가한 후 텍스트 한 줄을 출력합니다.
그래서 저는 nginx.conf 파일을 지속적으로 다시 작성하고, nginx를 다시 시작하고, a.com/index.php/user/app 주소를 지속적으로 새로 고치기 시작했습니다. 결과는 주소 손상 프롬프트, 502 또는 액세스 정의입니다.
또 하루가 지나고 조금 망설이기 시작했습니다.
Finally persisted
논리적으로 nginx+thinkphp에 대한 선례가 있어야 한다고 생각하는데, 답을 찾지는 못했습니다. 갑자기 인터넷에서 너무 혼란스러워서 작은 질문에 대한 답을 찾을 수 없습니다. 오늘 밤에 다시 nginx thinkphp 키워드 검색을 해보니 10페이지 이상을 클릭했더니 코드가
코드를 복사해 줍니다.
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 사용할 수 없는 페이지가 나타났는데 드디어 풀렸네요. 한숨 쉬기 편하다.
nginx.conf 코드 게시:
코드 복사 코드는 다음과 같습니다.
사용자 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
{
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 3 00;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
server
{
듣기 80;
server_name a.com;
index index.php;
root /data0/htdocs/a.com/www;
위치 / {
if (!-e $request_filename) {
다시 작성 ^ /(.*)$ /index.php/$1 last;
break;
}
}
위치 ~ .php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fcgi.conf 포함;
세트 $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
$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;
}
}
}
위 내용은 nginx에서 pathinfo 모드를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!