PHP + nginx рдмрдВрдбрд▓ рдХреА рдШреБрдорд╛рд╡рджрд╛рд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдХрдордЬреЛрд░рддрд╛

рд╕рд╛рд░рд╛рдВрд╢


рдШреЛрд╖рд┐рдд: 2010-05-20
рдХреНрд░реЗрдбрд┐рдЯ: 80 рд╕реЗрдХреЗрдВрдб
рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ: fastcgi_pass рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде ngnix + php рдкрд░ рд╕рд╛рдЗрдЯреЗрдВ




рдкреГрд╖реНрдарднреВрдорд┐


рдЕрдХреНрд╕рд░, рдХреИрд╕реЗ-рдХреИрд╕реЗ php-fpm / php-cgi рдХреЗ рд╕рд╛рде рдПрдХ nginx рдмрдВрдбрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░ рд╕рдорд╛рди рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрддреА рд╣реИрдВ:

location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } 


рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди


рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рд╕рд░реНрд╡рд░ рд╕реЗ example.com/1px.gif/test.php рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ URI 1px.gif/test.php рдЬреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛, рдЬреЛ location \.php$ SCRIPT_FILENAME location \.php$ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ SCRIPT_FILENAME рдмрд░рд╛рдмрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред /scripts/1px.gif/test.php

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ cgi.fix_pathinfo == 1 (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ), рддреЛ SCRIPT_FILENAME рдмрд░рд╛рдмрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ PATH_INFO рдмрд░рд╛рдмрд░ test.php рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдирд╛рдпрдм! рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рднреЗрджреНрдпрддрд╛ 1px.gif%00test.php рдЬреИрд╕реЗ URL рдХреЛ рдЯреНрд░рд┐рдЧрд░ 1px.gif%00test.php

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, php рджреБрднрд╛рд╖рд┐рдпрд╛ / /scripts/1px.gif рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред рд╡рд╣ рд╣реИ,

рдкреНрд░рднрд╛рд╡


рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд░реНрд╡рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд╡рддрд╛рд░) рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдлрд┐рд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЫрд╡рд┐ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рде рдЬреАрдбреА рдЖрдХрд╛рд░реЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░реЗрдЧрд╛ рдФрд░ рдкреАрдПрдЪрдкреА рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реЛрдЧрд╛ред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓


php.ini

 cgi.fix_pathinfo=0 


рдпрд╛ nginx.conf рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
 location ~ \.php$ { try_files $fastcgi_script_name =404; fastcgi_index index.php; fastcgi_param script_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } 

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдЧреИрд░-рдореМрдЬреВрджрд╛ .php рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛

Source: https://habr.com/ru/post/In100961/


All Articles