Is féidir an t-ionsaí a dhéanamh i bhfoirmíochtaí nginx ina ndéantar cur ar aghaidh chuig PHP-FPM trí chodanna den URL a scaradh ag baint úsáide as “fastcgi_split_path_info” agus an athróg timpeallachta PATH_INFO a shainmhíniú, ach gan seiceáil ar dtús an bhfuil an comhad ann ag baint úsáide as an “try_files $ fastcgi_script_name” treoir nó an "má tá (! -f $) document_root$fastcgi_script_name)". Is é an fhadhb freisin
suíomh ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}
Is féidir leat réiteach na faidhbe a rianú i bhfearais dáileacháin ar na leathanaigh seo:
try_files $fastcgi_script_name = 404;
Earráid is cúis leis an bhfadhb agus leideanna á láimhseáil i gcomhad
Má shonraíonn an treoir fastcgi_split_path_info an cosán scripte a scoilteadh ag baint úsáide as slonn rialta nua-íogair (mar shampla, go leor samplaí le fios go n-úsáidfí "^(.+?\.php)(/.*)$"), ansin d'fhéadfadh ionsaitheoir a chinntiú go tá luach folamh scríofa chuig an athróg timpeallachta PATH_INFO. Sa chás seo, níos faide ar feadh an fhorghníomhú
Trí URL formáidithe ar bhealach áirithe a iarraidh, is féidir le hionsaitheoir an pointeoir path_info a aistriú chuig an gcéad bheart den struchtúr “_fcgi_data_seg”, agus má scríobhtar nialas don bheart seo cuirfear an “char* pos” ar aghaidh. pointeoir chuig limistéar cuimhne atá suite roimhe seo. Déanfaidh an chéad cheann eile ar a dtugtar FCGI_PUTENV na sonraí a fhorscríobh sa chuimhne seo le luach is féidir leis an ionsaitheoir a rialú. Stórálann an chuimhne sonraithe luachanna na n-athróg FastCGI eile freisin, agus trína gcuid sonraí a scríobh, is féidir le hionsaitheoir athróg bhréige PHP_VALUE a chruthú agus forghníomhú a gcód a bhaint amach.
Foinse: oscailtenet.ru