рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╕реЗрдЯрдЕрдк: Nginx + php5-fpm

рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдбреЗрдмрд┐рдпрди рд▓реЗрди рдкрд░ Nginx + php5-fpm (php5.3) рдмрдВрдбрд▓ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред

рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╕реЗрдЯрдЕрдк

рдорд╣рддреНрд╡рдкреВрд░реНрдг: рд╕рднреА рдХрдорд╛рдВрдб рд░реВрдЯ рд╕реЗ рд╣реИрдВред

рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ:
 рдЗрдХреЛ "рдбрд┐рдмреЗрдЯ http://backports.debian.org/debian-backports lenn-backports main" >> /etc/apt/source.list рдЗрдХреЛ "deb http://php53.dotdeb.org рд╕реНрдерд┐рд░ рд╕рднреА" >> / etc /apt/sources.list gpg --keyserver keys.gnupg.net --recv-key 89DF5277 && gpg -a --export 89DF5277 |  рдЙрдкрдпреБрдХреНрдд рдХреБрдВрдЬреА рдЬреЛрдбрд╝ - 
рдЕрджреНрдпрддрди:
  рдПрдкреНрдЯреАрдЯреНрдпреВрдб рдЕрдкрдбреЗрдЯ 
Nginx рдФрд░ php5-fpm рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
  рдПрдкреНрдЯреАрдЯреНрдпреВрдб рд╕реНрдерд╛рдкрд┐рдд -t рд▓реЗрдиреА-рдмреИрдХрдкреЛрд░реНрдЯреНрд╕ "рдирд┐рдЧреНрдиреЗрдХреНрд╕"
 apt-get install php5-cli php5-common php5-suhosin 
 apt-get install php5-fpm php5-cgi 
рд╣рдо рдлреЙрд░реНрдо рдореЗрдВ config /etc/nginx/nginx.conf рд▓рд╛рддреЗ рд╣реИрдВ:
  рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ www-рдбреЗрдЯрд╛;
 рдХрд╛рд░реНрдпрдХрд░реНрддрд╛_рдкреНрд░реЛрд╕реЗрд╕ 1;  # рд╣рдордиреЗ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд░рдЦрд╛

 рдЯрд╛рдЗрдорд░_ рд╕рдорд╛рдзрд╛рди 100ms;
 worker_rlimit_nofile 8192;
 рдХрд╛рд░реНрдпрдХрд░реНрддрд╛_рдкрд░рд╛рдпрдгрддрд╛ -5;  # рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрдврд╝рд╛рдПрдВ

 error_log /var/log/nginx/error.log;
 pid /var/run/nginx.pid;
 рдШрдЯрдирд╛рдПрдБ {
     worker_connections 1024;
 }
 http {
     /etc/nginx/mime.types рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ;
     access_log /var/log/nginx/access.log;

     рдкрд░ рднреЗрдЬ рджреЗрдирд╛;
     Keepalive_timeout 65;
     tcp_nodelay on;

     рдкрд░ gzip;
     gzip_min_length 1100;
     #gzip_disable "msie6";  # рддреЗрдЬрд╝, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдирдЧрдиреЗрдХреНрд╕ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
     gzip_disable "MSIE [1-6] \ _? (?!? * SV1)";
     gzip_proxied рдХреЛрдИ рднреА;
     gzip_comp_level 4;
     gzip_types text / plain text / css application / x-javascript text / xml application / xml application / xml + rss text / javascript;
     gzip_vary рдкрд░;

     /etc/nginx/conf.d/*.conf рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ;
     / etc / nginx / рд╕рд╛рдЗрдЯреНрд╕-рд╕рдХреНрд╖рдо / * рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ;
 }

рд╣рдЯрд╛рдПрдВ /etc/nginx/sites-available/default

рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрджрд╛рд╣рд░рдг

рд╡рд░реНрдбрдкреНрд░реЗрд╕ рд╕реАрдПрдордПрд╕ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рдиреНрдпрд╛рд╕, /etc/nginx/sites-enabled/example.ru рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП:
 рд╕рд░реНрд╡рд░ {
	 80 рд╕реБрдиреЛ;
	 server_name www.example.ru;
	 rewrite ^ http: //example.ru$request_uri?  рд╕реНрдерд╛рдпреА;  # 301 рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд
 }
 рд╕рд░реНрд╡рд░ {
     80 рд╕реБрдиреЛ;
	 server_name example.ru; 
	 root /var/www/example.ru;
	 index index.php;

	 рд╕реНрдерд╛рди / {
		 try_files $ uri $ uri / /index.php?q=$uri&osargs;
	 }
	 рд╕реНрдерд╛рди ~ * ^ред + (js | css | png | jpg | jpeg | gif | ico) $ {
		 access_log рдмрдВрдж;
		 рдЕрдзрд┐рдХрддрдо рд╕рдорд╛рдкреНрдд;
	 }
	 рд╕реНрдерд╛рди ~ \ .php $ {
		 # fastcgi_split_path_info ^ (ред + \ _ php) (ред *ред) $;
		 fastcgi_pass 127.0.0.1:9000;
		 fastcgi_index index.php;

		 fastcgi_param DOCUMENT_ROOT /example.ru;
		 fastcgi_param SCRIPT_FILENAME /example.ru>fastcgi_script_name;
		 fastcgi_param PATH_TRANSLATED /example.ru>fastcgi_script_name;

		 fastcgi_params рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ;
		 fastcgi_param QUERY_STRING $ query_string;
		 fastcgi_param REQUEST_METHOD $ request_method;
		 fastcgi_param CONTENT_TYPE $ content_type;
		 fastcgi_param CONTENT_LENGTH $ content_length;
		 fastcgi_intercept_errors рдкрд░;
		 fastcgi_ignore_client_abort рдмрдВрдж;
		 fastcgi_connect_timeout 60;
		 fastcgi_send_timeout 180;
		 fastcgi_read_timeout 180;
		 fastcgi_buffer_size 128k;
		 fastcgi_buffers 4 256k;
		 fastcgi_busy_buffers_size 256k;
		 fastcgi_temp_file_write_size 256k;
	 }
	
	 рд╕реНрдерд╛рди = /favicon.ico {
		 log_not_found рдмрдВрдж;
		 access_log рдмрдВрдж;
	 }
	 рд╕реНрдерд╛рди = /robots.txt {
		 рд╕рднреА рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ;
		 log_not_found рдмрдВрдж;
		 access_log рдмрдВрдж;
	 }
	 ## рджреЗрдЦрдиреЗ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ .htaccess рдФрд░ .htpassword 
	 рд╕реНрдерд╛рди ~ /\.ht {
		 рд╕рднреА рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░;
	 }
 }
Mysql рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
  apt-get mysql-server mysql-client php5-mysql рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 mkdir -p / var / www / var / run / mysqld
 рдЖрд░реЛрд╣ - bind / var / run / mysqld / / var / www / var / run / mysqld / 
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ index.php рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
  mkdir -p /var/www/example.ru
 рдЗрдХреЛ "<? php phpinfo ();?>"> /var/www/example.ru/index.php 
Nginx рдФрд░ php5-fpm рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
  /etc/init.d/nginx рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ
 /etc/init.d/php5-fpm рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ 

рд╕реБрд░рдХреНрд╖рд╛

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рд╕рд╣реА рдЕрдиреБрдорддрд┐ рджреЗрдВ:
  chown -R www-data /var/www/example.ru && chmod -R 750 /var/www/example.ru 
рд╣рдо рдЗрд╕рд╕реЗ рдЬреБрдбрд╝реА рднреЗрджреНрдпрддрд╛ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ
  рд╕реНрдерд╛рди ~ .php $ { 
, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо /etc/php5/fpm/php.ini рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ
  cgi.fix_pathinfo = 0 
рд╣рдо chroot рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ PHP рдПрдХреНрд╕реЗрд╕ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ /etc/php5/fpm/php5-fpm.conf рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рд▓рд┐рдЦреЗрдВ:
 рдЪреБрд░реЛрдЯ = / var / www
 рдЪрджрд┐рд░ = /
рдЕрдЧрд▓рд╛, рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ PHP рдкрддреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧреА, рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ:
 mkdir / var / www / {etc, lib};
 cp / etc / рдореЗрдЬрдмрд╛рди / var / www / etc / рдореЗрдЬрдмрд╛рди;
 cp /etc/resolv.conf /var/www/etc/resolv.conf;
 cp /lib/libnss_dns.so.2 /var/www/lib/libnss_dns.so.2 // рдЖрдкрдХреА рдкреНрд░рдгрд╛рд▓реА 32 рдмрд┐рдЯ рд╣реИ
 cp /lib64/libnss_dns.so.2 /var/www/lib64/libnss_dns.so.2 // рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо 64 рдмрд┐рдЯ рд╣реИ 
Php5-fpm рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
  /etc/init.d/php5-fpm рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ 

рд╣рдо рдЕрдкрдиреА рд╕рд╛рдЗрдЯ example.ru рдХреЗ рдкреЗрдЬ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдХреЗ phpinfo () рдЗрдирдкреБрдЯ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдкреАрдПрд╕ рдмреНрд▓реЙрдЧ рдХреЗ рд▓реЗрдЦрдХ рдбреЗрдмрд┐рдпрди.рдкреНрд░реЛ рдиреЗ рдореБрдЭреЗ рдЗрдВрдХрд╡рд┐рдЬрд╝рд┐рдЯрд░ 68 рдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреАред
рдирдИ:

Nginx 0.8.54 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

 apt-get update
 apt-get install libxml2-dev libbz2-dev libcurl4-opensl-dev libmcrypt-dev libmhash2 libmhash-dev libpcre3 libpcre3-dev рдмрдирд╛рдирд╛

 wget http://sysoev.ru/nginx/nginx-0.8.54.tar.gz
 рдЯрд░ zxf рдирдЧрдиреЗрдХреНрд╕-0.8.54.tar.gz
 рд╕реАрдбреА рдирдЧреНрдиреЗрдХреНрд╕-0.8.54
 
 ./configure \
 --conf- рдкрде = / etc / nginx / nginx.conf \
 --err-log-path = / var / log / nginx / error.log \
 --http-client-body-temp-path = / var / lib / nginx / body \
 --http-fastcgi-temp-path = / var / lib / nginx / fastcgi \
 --http-log-path = / var / log / nginx / access.log \
 --http -xy-temp-path = / var / lib / nginx /xy \ n
 --рд▓реЙрдХ-рдкрде = / var / рд▓реЙрдХ / nginx.lock \
 --рдкрд┐рдб-рдкрде = / var / run / nginx.pid \
 - рд╕рд╛рде-рдбрд┐рдмрдЧ - рд╕рд╛рде-http_dav_module \
 - рд╕рд╛рде-http_gzip_static_module \
 - рд╕рд╛рде-http_realip_module \
 - рд╕рд╛рде-http_stub_status_module \
 --with-http_sub_module

 && рдореЗрдХ рдЗрдирд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ 

рдбреЗрдмрд┐рдпрди "рдирд┐рдЪреЛрдбрд╝"

Php-fpm рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
 рдЗрдХреЛ "deb http://packages.dotdeb.org рд╕рднреА рдирд┐рдЪреЛрдбрд╝реЗрдВ" >> /etc/apt/source.list
 wget http://www.dotdeb.org/dotdeb.gpg && cat dotdeb.gpg |  apt- рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗрдВ - & aptitude рдЕрджреНрдпрддрди
UPD: mysql рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдореЗрдВ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЕрдм рдЬреЛ рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЙрд╕рдореЗрдВ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж рдЗрдВрдХрд╡рд┐рдЬрд╝рд┐рдЯрд░ 68 рдПрд╕рдПрд▓ ред


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


All Articles