рдбреЙрдХрд░ + php-fpm + PhpStorm + Xdebug

рдЗрддрдирд╛ рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдЯреАрдо рд▓реАрдб рдиреЗ рдХрд╣рд╛: рджреЛрд╕реНрддреЛрдВ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдХреЙрдореНрдмреИрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рд╕рдорд╛рди рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдорд╛рд╣реМрд▓ рдорд┐рд▓реЗ + рд╣рдо рд╕рдмрдХреЛ рдбрд┐рдмреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рджреЛрдиреЛрдВ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдПрдкреАрдЖрдИ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ, рдФрд░ рд╣рдорд╛рд░реА рдирд╕реЛрдВ рдФрд░ рд╕рдордп рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрдВрд╕реЛрд▓ рдХрд░реЗрдВред рдФрд░ рдЗрд╕ рдбреЙрдХрдЯрд░ рдХреА рдорджрдж рдХрд░реЗрдВред

рдЬрд▓реНрджреА рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ред рдХрдЯ рдХреЗ рддрд╣рдд рд╡рд┐рд╡рд░рдгред

рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХрдИ рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рдореИрдиреБрдЕрд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореБрдХрд╛рдмрд▓рд╛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рд▓рд┐рдЦреЗрдВ редyml? рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЖрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рддреА рд╣реИрдВ, рд╡реЗ рд╕рднреА рдорд╛рдирдХ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╕реНрдЯреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ: nginx + php-fpm + mysqlред

рдЗрд╕рд▓рд┐рдП, рдЖрдЗрдП рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВ:

  1. рд╣рдо рдПрдХ рдХрдВрдкрдиреА рдореЗрдВ, рдПрдХ рдЯреАрдо рдореЗрдВ, рдХрдИ рдпреБрджреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╕рднреА Ubuntu + PhPStorm рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
  2. рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдп рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдорд╛рд╣реМрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рднреА рдХрд┐ рдЬрдм рдХреЛрдИ рдирдпрд╛ рдбреЗрд╡рд▓рдкрд░ рдЖрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ
  3. рд╣рдо рдЖрд░рд╛рдо рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рдо рд╕рдм рдХреБрдЫ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдХрдВрд╕реЛрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдФрд░ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдзред

рдПрдХ рдмрд╛рд░ рдлрд┐рд░: рд╣рдо рдХрдИ рдХрд╛рд░реНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдбреЙрдХрдЯрд░ рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд▓рдбрд╝рд╛рдХреВ рд╕рд░реНрд╡рд░ рдкрд░, рдорд╛рдирдХ рдирдЧрдиреЗрдХреНрд╕ + php-fpm + mysql рдмрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рд╣рдо рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рд╕рдЯреАрдХ рдПрдХ рд╣реА рд╡рд╛рддрд╛рд╡рд░рдг + Xdebug рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, PhpStorm рдореЗрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдбреАрдмрдЧ рдХреЗ рд▓рд┐рдП, PhpStorm рдореЗрдВ "рдЯреНрдпреВрдм" рдЪрд╛рд▓реВ рдХрд░реЗрдВ, рд╕рдм рдХреБрдЫ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред



рдпрд╣ рд╕рдм рд╕рдЪ рд╣реИ - рд╕рдм рдХреБрдЫ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдЖрдЗрдП рд╣рдо рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдХреЗ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред

Nginx + php-fpm рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ, xdebug рдкреЛрд░реНрдЯ 9000 рдкрд░ рд╕реБрдирддрд╛ рд╣реИ, PhpStorm рднреА, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ 9000 рдкрд░ рд╕реБрдирддрд╛ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ PhpStorm рдореЗрдВ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЦреБрд▓реЗ рд╣реИрдВ, рдФрд░ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рдпрд░рдЯреИрдкрд┐рдВрдЧ ("рдЯреНрдпреВрдм") рд╕рдХреНрд╖рдо рд╣реИ? PhpStorm рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛? рд╡рд╣ рд╢рдкрде рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ рдХрд┐ Xdebug рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдирд╣реАрдВ?

рдпрд╣реА рд╣реИ, PhpStorm рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмрд┐рдВрджреБ рдкрд░ рд╕рдордп рдореЗрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбреЗрдмреНрдпреВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрдиреНрдп рд╕рднреА рдЦреБрд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдбрд┐рдмрдЧ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓рд╛рдирдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдореИрдВ рдбрд┐рдмрдЧ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕реБрдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдЕрдЧрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдореЗрдВ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╣реИ, рддреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ PhpStorm рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрдВрдж рд╣реЛ рдЬрд╛рдП, рдЙрд╕ рдкрдВрдХреНрддрд┐ рдкрд░ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ? рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ Xdebug рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдиреЗ рдкреЛрд░реНрдЯ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ, рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдЬреИрд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдм рдХреБрдЫ рд╣реИ, рд╕рднреА рдПрдХ рд╣реА рдвреЗрд░ рдореЗрдВред

рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрднреБрдд рдбреЙрдХрдЯрд░ рд╣реИ! рд╣рдо рдЕрдкрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдореНрдмреИрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рдХреЙрдорди рдЗрдореЗрдЬ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЕрд▓рдЧ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, php: 7.1-fpmред рдбреЙрдХ рддрдХрдиреАрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдиреНрдпреВрдирддрдо рдУрд╡рд░рд╣реЗрдб рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдбреЙрдХрдЯрд░ рдХреЗ рддрд╣рдд рдЕрдкрдиреА рд▓рдбрд╝рд╛рдХреВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ PhpStorm рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдФрд░, рдЙрдлрд╝, рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛: рдбреЙрдХрдЯрд░ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╣рдо рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЖрдорддреМрд░ рдкрд░ рдпреВрдЖрдИрдбреА 1000, рдЧреАрдж 1000 рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рдбрд╝ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡реЗрджрди 777 рдХреЛ рд╕рдм рдХреБрдЫ рджреЗрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЧрд┐рдЯ рдХреЗ рдЕрдзреАрди рд╣реИрдВ, рдФрд░ рдпрджрд┐ рд╣рдо рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ 777 рдЕрдзрд┐рдХрд╛рд░ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЧрд┐рдЯ рдпрд╣ рд╕рдм рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдпреБрджреНрдз рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ред

рдмреИрд╕рд╛рдЦреА, рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг php рдЪрд┐рддреНрд░ рд╣реИ: 7.1-fpm рдЬреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрджреНрдпрддрди


рдЬреИрд╕рд╛ рдХрд┐ рд╕рдореБрджрд╛рдп рдиреЗ рдареАрдХ рд╣реА рдХрд╣рд╛ рд╣реИ, рд╡рд╣рд╛рдБ рд╕рдЦреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ 1ntrovert рд╣реИрдмреНрд░реЛрдЬрд╝рд░

рдкреНрд░рд╛рд░рдВрднрд┐рдХ php рдЫрд╡рд┐ рдЙрджрд╛рд╣рд░рдг: 7.1-fpm (рдпреВрдЖрдИрдбреА рдФрд░ рдЬреАрдЖрдИрдбреА тАЛтАЛрд╣рд╛рд░реНрдбрдХреЛрдб рд╣реИрдВ)
FROM php:7.1-fpm RUN apt-get update && apt-get install -y \ git \ curl \ wget \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng-dev zlib1g-dev libicu-dev g++ libmagickwand-dev libxml2-dev \ && docker-php-ext-configure intl \ && docker-php-ext-install intl \ && docker-php-ext-install mbstring zip xml gd mcrypt pdo_mysql \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd \ && pecl install imagick \ && docker-php-ext-enable imagick \ && pecl install xdebug \ && docker-php-ext-enable xdebug ADD ./php.ini /usr/local/etc/php/php.ini RUN wget https://getcomposer.org/installer -O - -q \ | php -- --install-dir=/bin --filename=composer --quiet RUN usermod -u 1000 www-data && groupmod -g 1000 www-data WORKDIR /var/www USER 1000:1000 CMD ["php-fpm"] 



Dockerfile рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рд╣реА рдХрд┐рдпрд╛

 FROM php:7.1-fpm ARG USER_ID ARG GROUP_ID RUN apt-get update && apt-get install -y \ git \ curl \ wget \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng-dev zlib1g-dev libicu-dev g++ libmagickwand-dev --no-install-recommends libxml2-dev \ && docker-php-ext-configure intl \ && docker-php-ext-install intl \ && docker-php-ext-install mbstring zip xml gd mcrypt pdo_mysql \ && pecl install imagick \ && docker-php-ext-enable imagick \ && pecl install xdebug-2.5.0 \ && docker-php-ext-enable xdebug ADD ./php.ini /usr/local/etc/php/php.ini RUN wget https://getcomposer.org/installer -O - -q \ | php -- --install-dir=/bin --filename=composer --quiet RUN usermod -u ${USER_ID} www-data && groupmod -g ${GROUP_ID} www-data WORKDIR /var/www USER "${USER_ID}:${GROUP_ID}" CMD ["php-fpm"] 


рдЗрд╕ рдЫрд╡рд┐ рд╕реЗ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, www-data рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ uid = 1000, gid = 1000 рдорд┐рд▓рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рд▓рд┐рдирдХреНрд╕ рдкрд░ рдмрдирд╛рдП рдЧрдП рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдпреЗ рдЕрдзрд┐рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕реЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ php-fpm рдХрдВрдЯреЗрдирд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдореИрдВ рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭреЗ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдХрд░ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдмреИрд╕рд╛рдЦреА рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред

рдЗрд╕ рдЫрд╡рд┐ рд╕реЗ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, www-data рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ uid рдФрд░ gid рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рд╣рд░ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рднреА рд╡рд┐рд╖рдп рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛ : www-рдбреЗрдЯрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреНрдпреЛрдВ, рдорд╛рдирдХ рдЕрдзрд┐рдХрд╛рд░ 33 рдХреЗ рдЕрдиреБрд░реВрдк рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ: рдЬрдм рд╣рдо рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓, рд╣рдо рдореЗрдЬрдмрд╛рди рдорд╢реАрди рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рд▓рд┐рдХ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдФрд░ рд╣рд░ рдмрд╛рд░ рдЬреИрд╕реЗ рдХреБрдЫ рдЪрд▓рд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛
  sudo chown -R user:user ./ 


рдФрд░ рджреВрд╕рд░реА рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛: Xdebug рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рд╕рд╣реА IP рдкрддрд╛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЯреАрдо рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рджрд╕реНрдп рдЕрд▓рдЧ рд╣реИред 127.0.0.1 рд░реЛрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдБ рдХрд░реНрддрд╛ рд╕реНрд╡рдпрдВ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - 192.168.220.0/28ред рдФрд░ рдлрд┐рд░ рд╣рдорд╛рд░реА рдорд╢реАрди рдХрд╛ рдкрддрд╛ рд╣рдореЗрд╢рд╛ 192.168.220.1 рд╣реЛрдЧрд╛ред рд╣рдо рдЗрд╕ рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ PhpStorm рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MySql рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордпред

Docker-compose.yml рд╣реА, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 version: '3' services: php71-first: build: context: ./images/php71 args: - USER_ID - GROUP_ID volumes: - ./www:/var/www - ./aliases/php71/bash.bashrc:/etc/bash.bashrc environment: XDEBUG_CONFIG: "remote_host=192.168.220.1 remote_enable=1 remote_autostart=off remote_port=9008" PHP_IDE_CONFIG: "serverName=first" networks: - test-network php71-two: build: context: ./images/php71 args: - USER_ID - GROUP_ID volumes: - ./www:/var/www - ./aliases/php71/bash.bashrc:/etc/bash.bashrc environment: XDEBUG_CONFIG: "remote_host=192.168.220.1 remote_enable=1 remote_autostart=off remote_port=9009" PHP_IDE_CONFIG: "serverName=two" networks: - test-network nginx-test: image: nginx volumes: - ./hosts:/etc/nginx/conf.d - ./www:/var/www - ./logs:/var/log/nginx ports: - "8080:80" depends_on: - php71-first - php71-two networks: test-network: aliases: #         . ,    api - first.loc - two.loc # mysql: # image: mysql:5.7 # ports: # - "3306:3306" # volumes: # - ./mysql/data:/var/lib/mysql # environment: # MYSQL_ROOT_PASSWORD: secret # networks: # - test-network networks: test-network: driver: bridge ipam: driver: default config: - subnet: 192.168.220.0/28 


рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рджреЛ рдХрдВрдЯреЗрдирд░ php71-first рдФрд░ php71-рджреЛ рдПрдХ php рдЫрд╡рд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ: 7.1-fpmред Xdebug рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдХреА рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧ рд╣реЛрддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрдВрдЯреЗрдирд░ рдбрд┐рдмрдЧрд┐рдВрдЧ, рдЙрд╕рдХреЗ рдкреЛрд░реНрдЯ рдФрд░ рдЙрд╕рдХреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕реБрдиреЗрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ
  args: - USER_ID - GROUP_ID 


рдЗрди рдЪрд░реЛрдВ рдХреЗ рдмрд┐рдирд╛, php-fpm рдЫрд╡рд┐ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧреАред рдкреНрд░рд╢реНрди: рдЙрдиреНрд╣реЗрдВ docker-compose.yml рдХреИрд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВ? рдЙрддреНрддрд░: рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЖрдк рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 USER_ID=$(id -u) GROUP_ID=$(id -g) docker-compose up -d 

рдЖрдк рдЗрди рдЪрд░ рдХреЛ .env рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ docker-compose.yml рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реИ
USER_ID=1000
GROUP_ID=1000

рдореБрдЭреЗ .env рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг рдЕрдзрд┐рдХ рдкрд╕рдВрдж рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдореЗрдХрдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рдЖрдкрдХреЛ рдЬреНрдпрд╛рджрд╛ рдкрд╕рдВрдж рд╣реИред

рдбреЗрдореЛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рдХреЛрдб рдЬреАрдердм рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдбреЗрдореЛ рдкрд░рд┐рдпреЛрдЬрдирд╛:



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реВрдЪреА рдкрд░ рдЬрд╛рдПрдВред

рдЙрдкрдирд╛рдо -> php71 -> bash.bashrc рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдХреНрд╖рдгред рдореИрдВ рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ php-fpm рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

рдпрд╣ рдлрд╝рд╛рдЗрд▓ docker-compose.yml рдкрд░ рднреЗрдЬ рджреА рдЧрдИ рд╣реИ: - ./aliases/php71/bash.bashrc:/etc/bash.bashrc
рд▓рд┐рдирдХреНрд╕ рдорд╛рдирдХ рдЙрдкрдХрд░рдгред

рд╣реЛрд╕реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ - Nginx рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЕрдкрдирд╛ php-fpm рдХрдВрдЯреЗрдирд░ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:

 server { listen 80; index index.php; server_name first.loc; error_log /var/log/nginx/first_error.log; root /var/www/first.loc; location / { try_files $uri /index.php?$args; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; #  php-fpm fastcgi_pass php71-first:9000; fastcgi_index index.php; fastcgi_read_timeout 1000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } } 

рдЪрд┐рддреНрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ - php-fpm рдЪрд┐рддреНрд░, mysql рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛрдбрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ - рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕, www рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ - рд╣рдорд╛рд░реА рд╕рднреА рд╡реЗрдм рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкрд╣рд▓реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдмреНрд▓реЙрдХ рдФрд░ рджреЛ.рд▓реЛрдХред

рдЖрдЗрдП рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ : рдбреЙрдХрдЯрд░ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕рднреА рдХрд╛рд░реНрдпрд╢реАрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯреЛрдВ рдХреЛ рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рд╣рдорд╛рд░реА рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рджреЗрдЦрддреА рд╣реИрдВ, Xdebug рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рд╣реИрдВред

рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП PhpStorm рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдбреАрдмрдЧ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдирд╛рдо рдХреЛ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

PhpStorm рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ







рд╣рдо рдореЗрдиреВ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ
- PHP (рдЖрдкрдХреЛ рд╕реАрдПрд▓рдЖрдИ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛),
- рдбреАрдмрдЧ (рдкреЛрд░реНрдЯ рдХреЛ 9008 рдореЗрдВ рдмрджрд▓реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ docker-compose.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ),
- DBGp рдкреНрд░реЙрдХреНрд╕реА (рдЖрдИрдбреАрдИ рдХреБрдВрдЬреА, рд╣реЛрд╕реНрдЯ, рдкреЛрд░реНрдЯ),
рдЕрджреНрдпрддрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП CrazyLazy рд╣рдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред DBGp рдкреНрд░реЙрдХреНрд╕реА рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╕рд░реНрд╡рд░ (рдЖрдкрдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рд░реНрд╡рд░ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ docker-compose.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ, рдФрд░ рдкрде рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)



рдореИрдВ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рддрд╣рдд рдЖрдЧреЗ рдХреЗ рд╕рднреА рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЫрд┐рдкрд╛рдКрдВрдЧрд╛ред

рдбреЙрдХ-рдХрдВрдкреЛрдЬрд╝.рдорд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕реАрдПрд▓рдЖрдИ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
рдХреБрдЫ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╡рд╛рдВрдЫрд┐рдд рдЫрд╡рд┐ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдФрд░ рд╕рд░реНрд╡рд░ рдирд╛рдо рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдбреЙрдХрд░ рд╕рд░реНрд╡рд░ рдХрд╛ рдирд╛рдо, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИред



















рдбрд┐рдмрдЧ рдореЗрдиреВ рдЕрдиреБрднрд╛рдЧ рд╕реЗрдЯ рдХрд░реЗрдВ
рдлрд┐рд░, рд╣рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП docker-compose.yml рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рд╕рдм рдХреБрдЫ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕реА рдЪрд░рдг рдореЗрдВ, рд╣рдо рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдбрд┐рдмрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред






рд╕рд░реНрд╡рд░ рдореЗрдиреВ рдЕрдиреБрднрд╛рдЧ рд╕реЗрдЯ рдХрд░реЗрдВ
рдкрде рдореИрдкрд┐рдВрдЧ рдХрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдлрд┐рд░ рд╕реЗ рд╣рдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдирд╛рдо рд▓реЗрддреЗ рд╣реИрдВ





рд╣рдо рдореЗрдиреВ рдЕрдиреБрднрд╛рдЧ рдлрд╝рд╛рдЗрд▓ -> рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдореЗрдиреВ рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ рднрд╛рдЧреЛ -> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдПрдХ Php рд╡реЗрдм рдкреЗрдЬ рдмрдирд╛рдПрдВ
рд╣рдо рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред







рдЦреИрд░, рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрддреНрд░ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдмрд╛рдд рдХреЛ рд╕рдордЭрдирд╛ рд╣реИред рдбреЙрдХ рдЯреЗрдХреНрдиреЙрд▓реЙрдЬреА рдХреА рдмрджреМрд▓рдд рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдРрдкреНрд╕ рдХреЛ рдПрдХ рд╣реА рдЬрдЧрд╣ рдкрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди Xdebug рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рдеред рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ PhpStorm рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рд╣рдореЗрдВ рдПрдХ рдЕрджреНрднреБрдд рддрд╕реНрд╡реАрд░ рдорд┐рд▓рддреА рд╣реИред

1. рд╣рдо рдПрдХ рдЧрд┐рддреБрдм рдкрд░ рдПрдХ рднрдВрдбрд╛рд░ рдХрд╛ рдХреНрд▓реЛрди рдмрдирд╛рддреЗ рд╣реИрдВ ред рдЪрд░ рдХреЗ рд╕рд╛рде .env рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ
USER_ID= uid
GROUP_ID= gid


2. рд╣рдо рдиреЛрдбреНрд╕ рдХреЛ рдкрд╣рд▓реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд╛рдЗрд▓ / etc / рдореЗрдЬрдмрд╛рди рдореЗрдВ рджреЛ.рд▓реЛрдХ

 127.0.0.1 first.loc 127.0.0.1 two.loc 

3. рдЧрд┐рдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, docker-compose up -d рдЪрд▓рд╛рдПрдВ

4. рд╣рдо рджреЛрдиреЛрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкрд╣рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред Phoc рдФрд░ Two.loc рдХреЛ PhStStorm рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдФрд░ PhStStorm рдореЗрдВ рджреЛрдиреЛрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдпрд╛рдиреА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ PhpStorm рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдЦреБрд▓реА рд╣реИрдВ, рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдирддрд╛ рд╣реИ (рд╣реИрдВрдбрд╕реЗрдЯ рдЪрд╛рд▓реВ рд╣реИ)ред

5. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рджреЛ.рд▓реЛрдХ рдореЗрдВ рд╣рдо рджреВрд╕рд░реЗ рдкрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрдиред рдкрд╣рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВред рдкрд╣рд▓реЗ, рд╣рдо http.http рдлрд╝рд╛рдЗрд▓ рд╕реЗ http рдЕрдиреБрд░реЛрдз рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ

рдФрд░ рд▓реЛ рдФрд░ рдирд┐рд╣рд╛рд░рдирд╛! рд╣рдореЗрдВ рджреВрд╕рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдкрд░ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрдВрд╕реЛрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╡рд╛рдпрд░рдЯреИрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд╛рдпрд░рдЯреИрдк рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╣реА рдХрдВрдЯреЗрдирд░ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд╕рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

 alex@alex-Aspire-ES1-572 ~ $ php71first www-data@a0e771cfac72:~$ cdf www-data@a0e771cfac72:~/first.loc$ php index.php I'am first host www-data@a0e771cfac72:~/first.loc$ 

рдЬрд╣рд╛рдБ php71first рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ рдЙрдкрдирд╛рдо рд╣реИ:

 alias php71first="cd ~/docker_git && docker-compose exec php71-first bash" 

cdf - рдПрдХ рдЙрдкрдирд╛рдо рдЬреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

рдпрд╣ рд╕рдм, рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рд╣реИ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

PS рдореИрдВ рдЕрдкрдиреЗ рд▓реЗрдЦ PhpStorm + Docker + Xdebug рдХреЗ рд▓рд┐рдП рдбреЗрдирд┐рд╕ рдмреЛрдВрдбрд░ рдХреЗ рдкреНрд░рддрд┐ рдЕрдкрдиреА рдЧрд╣рд░реА рдХреГрддрдЬреНрдЮрддрд╛ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬреЛ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдерд╛ред

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


All Articles