Ukuhlasela kungenzeka ekucushweni kwe-nginx lapho ukudlulisela phambili ku-PHP-FPM kwenziwa ngokuhlukanisa izingxenye ze-URL kusetshenziswa i-“fastcgi_split_path_info” nokuchaza okuguquguqukayo kwemvelo ye-PATH_INFO, kodwa ngaphandle kokuhlola kuqala ubukhona befayela kusetshenziswa i-“try_files $fastcgi_script_name” isiyalelo noma “uma (!-f $) document_root$fastcgi_script_name)". Inkinga futhi
indawo ~ [^/]\.php(/|$) {
i-fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}
Ungakwazi ukulandelela ukuxazululwa kwenkinga kumakhithi wokusabalalisa kulawa makhasi:
zama_files $fastcgi_script_name =404;
Inkinga ibangelwa iphutha lapho kushintshwa izikhombi kufayela
Uma i-fastcgi_split_path_info isiyalelo sicacisa ukuhlukanisa indlela yeskripthi kusetshenziswa isisho esivamile esizwela umugqa omusha (isibonelo, izibonelo eziningi ziphakamisa ukuthi kusetshenziswe okuthi "^(+?\.php)(/.*)$"), khona-ke umhlaseli angaqinisekisa ukuthi inani elingenalutho libhalwe ku-PATH_INFO okuguquguqukayo kwemvelo. Kulokhu, qhubeka phambili ekubulaweni
Ngokucela i-URL efomethwe ngendlela ethile, umhlaseli angakwazi ukuzuza ukuguqulwa kwesikhombisi se-path_info siye kubhayithi yokuqala yesakhiwo se-“_fcgi_data_seg”, futhi ukubhala uziro kule byte kuzoholela ekunyakazeni kwe-“char* pos” i-pointer endaweni yenkumbulo ebekwe ngaphambilini. Okulandelayo okubizwa nge-FCGI_PUTENV kuzocisha idatha ekule nkumbulo ngevelu umhlaseli angakwazi ukulilawula. Imemori eshiwo iphinde igcine amanani wezinye izinto eziguquguqukayo ze-FastCGI, futhi ngokubhala idatha yazo, umhlaseli angakha okuguquguqukayo kwe-PHP_VALUE okuqanjiwe futhi azuze ukusetshenziswa kwekhodi yakhe.
Source: opennet.ru