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

рдиреАрдЪреЗ рдореИрдВ рдЙрдмрдВрдЯреВ 18 рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рдЬрд╣рд╛рдВ Nginx + PHP-FPM рдмрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: PHP-FPM рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХреЗрд╡рд▓ 300 рдПрдордмреА рдореЗрдореЛрд░реА рд╣реЛрддреА рд╣реИ, рдФрд░ рдЖрдк рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЗ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рдХреЛ рддреАрди рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░)ред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рджреВрд╕рд░рд╛ рдкреНрд▓рд╕ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рджреБрднрд╛рд╖рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рднрд┐рдиреНрди рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд░рдЦреЗ рдЧрдП рд╣реИрдВ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕рдорд╛рди рд╣реИ)ред
рдЬреЛрдбрд╝: рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреБрдЫ рдкрд╛рдардХреЛрдВ рдХреЛ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рд╡рд░реНрдгрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рднреА рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдХреЗ рдХрд╛рд░реНрдп рдХреЗрдВрджреНрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рдХреБрдЫ рдЖрд░рдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдордВрдЪ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИредрддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ ...
1. рдбреЙрдХрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
sudo apt update sudo apt install ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt update sudo apt install docker-ce
2. PHP рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдХрд╛рд░реНрдпрд╢реАрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ
PHP рдбреЙрдХрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ PHP рд╕рдВрд╕реНрдХрд░рдг 7.1 рдФрд░ 7.2
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЫрд╡рд┐ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдЗрдЪреНрдЫрд┐рдд PHP рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
sudo docker pull php:7.1.25-fpm-stretch sudo docker create --name=fpm71 -p 127.0.0.1:9071:9000 -v /var/www:/var/www php:7.1.25-fpm-stretch sudo docker start fpm71 sudo docker pull php:7.2.13-fpm-stretch sudo docker create --name=fpm72 -p 127.0.0.1:9072:9000 -v /var/www:/var/www php:7.2.13-fpm-stretch sudo docker start fpm72
PHP-FPM рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреЛрд░реНрдЯ 9000 рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдЫрд╡рд┐рдпрд╛рдВ рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдордиреЗ 9000 рд╡реЗрдВ рдХрдВрдЯреЗрдирд░ рдкреЛрд░реНрдЯ рдХреЛ 9071 рдФрд░ 9072 рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ (рдирдВрдмрд░ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реАрдорд╛ рд╕реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЗрди рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд▓рд┐рдП PHP рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА (Nginx рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ fastcgi_pass рдкреИрд░рд╛рдореАрдЯрд░) рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗред
рдХрдВрдЯреЗрдирд░реЛрдВ (/ var / www) рдХреЗ рдЕрдВрджрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рдлреЗрдВрдХрдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЕрдиреНрдпрдерд╛ PHP-FPM рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдкрд▓ рдХреЛ рдмреЗрд╣рддрд░ / рдЕрдзрд┐рдХ рд╕рд╣реА рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ)ред
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкреЛрд░реНрдЯ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИрдВ:
sudo docker ps -a sudo netstat -lpn
3. рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░реЗрдВ
/ Etc / рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝реЗрдВ:
127.0.0.1 project.local.php71
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБ:
sudo mkdir -p /var/www/project.local echo '<?php phpinfo(); ?>' | sudo tee /var/www/project.local/index.php
рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ.рд▓реЛрдХрд▓) рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ.рд▓реЛрдХрд▓ред рдПрдлрдкреА 71/72) рдХреЗ рд▓рд┐рдП рдирд╛рдо рд▓рд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдк рдЙрди рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ (рдмрд╕ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ)ред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ phpinfo рдХрдорд╛рдВрдб рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж, index.php рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдПрдХ рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред
4. рдирдЧреАрдиреЗрдХреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
sudo apt install nginx
рд╣рдо рдкрд╣рд▓реЗ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓
/etc/nginx/sites-available/project.local.php71 рдмрдирд╛рддреЗ рд╣реИрдВ (рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ PHP v.7.1 рдХреЗ рддрд╣рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛):
server { listen 80; server_name project.local.php71; index index.php; root /var/www/project.local; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9071; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
рдЗрд╕реА рддрд░рд╣, рджреВрд╕рд░реА рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП
/etc/nginx/sites-available/project.local.php72 рдлрд╝рд╛рдЗрд▓:
server { listen 80; server_name project.local.php72; index index.php; root /var/www/project.local; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9072; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
рдЕрдм рд╣рдо рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЗ рдЙрдкрд░реНрдпреБрдХреНрдд рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдХреЗ рдкреНрд░рддрд┐ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ Nginx рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
cd /etc/nginx/sites-enabled sudo ln -s ../sites-available/project.local.php71 sudo ln -s ../sites-available/project.local.php72 sudo systemctl reload nginx
5. рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
curl --silent http://project.local.php71/index.php | grep -o "PHP Version [0-9\.]\{1,\}" curl --silent http://project.local.php72/index.php | grep -o "PHP Version [0-9\.]\{1,\}"
рдирддреАрдЬрддрди, рд╣рдореЗрдВ PHP рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рджреБрднрд╛рд╖рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ phpinfo рдХрдорд╛рдВрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк)ред
рдЕрдм рдпрд╣ рдХреЗрд╡рд▓ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ /var/www/project.local рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдБрдЪ
http 7.1
// interject.local.php71 рдФрд░ PHP 7.2
http: //project.local.php71 рдкрд░ PHP 7.1 рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░реА1.
рдкреВрд░рд╛ рдбреЙрдХрд░ рдкреНрд░реИрдХреНрдЯрд┐рдХрд▓ рдЧрд╛рдЗрдб