{"id":22871,"date":"2022-04-12T17:00:56","date_gmt":"2022-04-12T12:30:56","guid":{"rendered":"https:\/\/parspack.com\/?p=22871"},"modified":"2024-08-23T23:48:57","modified_gmt":"2024-08-23T19:18:57","slug":"set-up-laravel-on-ubuntu","status":"publish","type":"post","link":"https:\/\/parspack.com\/blog\/os\/linux\/ubuntu\/set-up-laravel-on-ubuntu","title":{"rendered":"\u0646\u062d\u0648\u0647 \u0646\u0635\u0628 \u0644\u0627\u0631\u0627\u0648\u0644\u060c Nginx \u0648 MySQL \u0628\u0647 \u06a9\u0645\u06a9 Docker Compose \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u06f2\u06f0.\u06f0\u06f4"},"content":{"rendered":"<p style=\"text-align: justify;\">\u062f\u0631 \u0686\u0646\u062f \u0633\u0627\u0644 \u0627\u062e\u06cc\u0631\u060c \u062f\u0627\u06a9\u0631 \u0628\u0647 \u06cc\u06a9 \u0631\u0627\u0647\u200c\u062d\u0644 \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648 \u0645\u0641\u06cc\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a\u061b \u0632\u06cc\u0631\u0627 \u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0645\u0648\u0642\u062a \u0633\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc LEMP \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u061b Docker \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644\u200c\u062a\u0648\u062c\u0647\u06cc \u0641\u0631\u0627\u06cc\u0646\u062f \u0646\u0635\u0628 \u0648 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0631\u0627 \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u06a9\u0646\u062f. LEMP \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0634\u0627\u0645\u0644 \u0644\u06cc\u0646\u0648\u06a9\u0633\u060c \u0627\u0646\u062c\u06cc\u0646\u06cc\u06a9\u0633\u060c MySQL \u0648 PHP \u0645\u06cc\u200c\u0628\u0627\u0634\u062f.<\/p>\n<p style=\"text-align: justify;\">Docker Compose \u0628\u0627 \u0627\u062c\u0627\u0632\u0647\u200c\u062f\u0627\u062f\u0646 \u0628\u0647 \u062f\u0648\u0644\u0648\u067e\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f: \u062e\u062f\u0645\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u0634\u0628\u06a9\u0647\u200c\u0647\u0627 \u0648 volume \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644\u060c \u0641\u0631\u0627\u06cc\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0631\u0627 \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u062f\u0631 \u062d\u0642\u06cc\u0642\u062a Docker Compose\u060c \u06cc\u06a9 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u062e\u0648\u0628 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a docker container create \u0686\u0646\u062f\u06af\u0627\u0646\u0647 \u0648 docker container run \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0627\u0632 <a href=\"https:\/\/parspack.com\/blog\/os\/linux\/ubuntu\">\u0622\u0645\u0648\u0632\u0634 \u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/a> \u0628\u0647 \u0622\u0645\u0648\u0632\u0634 \u0646\u062d\u0648\u0647 \u0646\u0635\u0628 \u0644\u0627\u0631\u0627\u0648\u0644\u060c Nginx \u0648 MySQL \u0628\u0647 \u0648\u0633\u06cc\u0644\u0647 Docker compose \u062f\u0631 <a href=\"https:\/\/parspack.com\/blog\/os\/linux\/ubuntu\/what-is-the-ubuntu\">\u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/a> 20.04 \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u06cc\u0645 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 Docker-Compose \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0631\u0627\u06cc \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0644\u0627\u0631\u0627\u0648\u0644\u060c MySQL \u0648 Nginx \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0628\u0627 \u0645\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627\u0634\u06cc\u062f.<\/p>\n<div class=\"info-box-section\">\n<h2 class=\"title\">\u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u0628\u0627 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0627\u06a9\u0631 (Docker) \u0627\u0632 \u067e\u0627\u0631\u0633 \u067e\u06a9<\/h2>\n<p class=\"description\">\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u06af\u0631 \u0642\u0635\u062f \u062e\u0631\u06cc\u062f \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u067e\u0627\u0631\u0633 \u067e\u06a9 \u0631\u0627 \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u06a9\u0627\u0631\u0634\u0646\u0627\u0633\u0627\u0646 \u0641\u0631\u0648\u0634 \u0645\u0627 \u062f\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627\u0634\u06cc\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0634\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639 \u0627\u0632 \u062a\u0639\u0631\u0641\u0647\u200c\u0647\u0627 \u0648 \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627 \u0628\u0647 \u0644\u06cc\u0646\u06a9\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><a title=\"\u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0645\u062c\u0627\u0632\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\" href=\"\/vps\/linux\" target=\"_blank\" rel=\"noopener\">\u0633\u0631\u0648\u0631 \u0645\u062c\u0627\u0632\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633<\/a><\/li>\n<li><a title=\"\u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \" href=\"\/servers\/linux\" target=\"_blank\" rel=\"noopener\">\u0633\u0631\u0648\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633<\/a><\/li>\n<li><a title=\"\u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\" href=\"\/dedicated-servers\/linux\" target=\"_blank\" rel=\"noopener\">\u0633\u0631\u0648\u0631 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633<\/a><\/li>\n<li><a title=\"\u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0627\u0628\u0631\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\" href=\"\/cloud-server\/linux\" target=\"_blank\" rel=\"noopener\"> \u0633\u0631\u0648\u0631 \u0627\u0628\u0631\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 <\/a><\/li>\n<li><a title=\"\u062e\u0631\u06cc\u062f \u0647\u0627\u0633\u062a \u0644\u06cc\u0646\u0648\u06a9\u0633\" href=\"\/host\/linux\" target=\"_blank\" rel=\"noopener\">\u0647\u0627\u0633\u062a \u0644\u06cc\u0646\u0648\u06a9\u0633<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u0627\u062d\u0644 \u0646\u0635\u0628 \u0644\u0627\u0631\u0627\u0648\u0644\u060c Nginx \u0648 MySQL \u0628\u0647\u200c\u0648\u0633\u06cc\u0644\u0647 Docker Compose<\/span><\/h2>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644: \u062f\u0627\u0646\u0644\u0648\u062f \u0644\u0627\u0631\u0627\u0648\u0644 \u0648 \u0646\u0635\u0628 Dependencies<\/span><\/h2>\n<p style=\"text-align: justify;\">\u0627\u0648\u0644\u06cc\u0646 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0645\u062a\u0639\u0644\u0642\u0627\u062a(dependencies) \u067e\u0631\u0648\u0698\u0647 \u0627\u0632 \u062c\u0645\u0644\u0647: Composer \u0648 \u067e\u06a9\u06cc\u062c\u200c\u0645\u0646\u06cc\u062c\u0631 \u0631\u0627 \u062f\u0631 \u0644\u0627\u06cc\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0650 \u0634\u0628\u06a9\u0647 \u0628\u0631\u0627\u06cc PHP \u0646\u0635\u0628 \u0646\u0645\u0627\u06cc\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u062a\u0639\u0644\u0642\u0627\u062a \u0631\u0627 \u0628\u0627 \u062f\u0627\u06a9\u0631 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0646\u0635\u0628 Composer \u0628\u0647 \u0635\u0648\u0631\u062a \u06af\u0644\u0648\u0628\u0627\u0644 \u0646\u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-2.jpg\" class=\"wp-image-22884 size-full\" alt=\"\u0646\u0635\u0628 \u0644\u0627\u0631\u0627\u0648\u0644 \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\" title=\" \u0646\u0635\u0628 Dependencies\"       width=\"650\" height=\"400\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-2.jpg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-2-300x185.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u062f\u0627\u0646\u0644\u0648\u062f \u0644\u0627\u0631\u0627\u0648\u0644 \u0648 \u0646\u0635\u0628 Dependencies<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">\u0627\u0628\u062a\u062f\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0647\u0648\u0645 \u062e\u0648\u062f \u0647\u0633\u062a\u06cc\u062f \u0648 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u0650 laravel-app \u06a9\u0644\u0648\u0646(\u062f\u0627\u067e\u0644\u06cc\u06a9\u06cc\u062a) \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ cd ~\r\n$ git clone https:\/\/github.com\/laravel\/laravel.git laravel-app<\/pre>\n<p style=\"text-align: justify;\">\u0633\u067e\u0633 \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc laravel-app \u0628\u0631\u0648\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ cd ~\/laravel-app<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0627\u0632 \u0627\u06cc\u0645\u06cc\u062c\u0650 \u062f\u0627\u06a9\u0631 composer \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u062e\u0648\u062f \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f\u061b \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u0632 \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0628\u0627\u0644\u0627 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Composer \u06af\u0644\u0648\u0628\u0627\u0644 \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u0646\u0645\u0627\u06cc\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ docker run --rm -v $(pwd):\/app composer install<\/pre>\n<p style=\"text-align: justify;\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u0644\u06af\u200c\u0647\u0627\u06cc v- \u0648 rm\u2013 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 docker run\u060c \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 Ephemeral \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0642\u0628\u0644 \u0627\u0632 \u062d\u0630\u0641\u060c \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0641\u0639\u0644\u06cc \u0634\u0645\u0627 \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0645\u062d\u062a\u0648\u06cc\u0627\u062a \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">~\/laravel-app<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u06a9\u067e\u06cc \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u0632 \u06a9\u067e\u06cc \u0634\u062f\u0646 vendor \u0641\u0648\u0644\u062f\u0631\u0650 Composer (\u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631) \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0641\u0639\u0644\u06cc \u0634\u0645\u0627 \u0645\u0637\u0645\u0626\u0646 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0622\u062e\u0631 Permission \u06cc\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u0631\u0627 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc project \u06a9\u0647 \u0645\u062a\u0639\u0644\u0642 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 non-root \u0634\u0645\u0627\u0633\u062a\u061b \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ sudo chown -R sammy:sammy ~\/laravel-app<\/pre>\n<p style=\"text-align: justify;\">\u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0632\u0645\u0627\u0646\u06cc \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 Dockerfile \u0631\u0627 \u0628\u0631\u0627\u06cc image \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 4 \u0645\u06cc\u200c\u0646\u0648\u06cc\u0633\u06cc\u062f. \u0632\u06cc\u0631\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0628\u0627 \u06a9\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u06a9\u0627\u0631 \u06a9\u0646\u06cc\u062f \u0648 \u0641\u0631\u0627\u06cc\u0646\u062f\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062e\u0648\u062f \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 non-root \u0627\u062c\u0631\u0627 \u0646\u0645\u0627\u06cc\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0627 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u06a9\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 Docker Compose \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u062f\u0648\u0645: \u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 Docker Compose<\/span><\/h2>\n<p style=\"text-align: justify;\">\u0627\u06cc\u062c\u0627\u062f application \u0628\u0627 Docker Compose\u060c \u0641\u0631\u0627\u06cc\u0646\u062f \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u0646\u0633\u062e\u0647\u200c\u0633\u0627\u0632\u06cc \u06cc\u0627 \u0647\u0645\u0627\u0646 versioning \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u062e\u0648\u062f\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 docker-compose \u0645\u06cc\u200c\u0646\u0648\u06cc\u0633\u06cc\u062f \u06a9\u0647 \u0648\u0628 \u0633\u0631\u0648\u0631\u060c \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-3.jpg\" class=\"wp-image-22883 size-full\" alt=\" \u0646\u0635\u0628 \u062f\u0627\u06a9\u0631 \u06a9\u0627\u0645\u067e\u0648\u0632\" title=\"\u0627\u06cc\u062c\u0627\u062f \u062f\u0627\u06a9\u0631 \u06a9\u0627\u0645\u067e\u0648\u0632\"       width=\"650\" height=\"400\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-3.jpg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-3-300x185.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u0622\u0645\u0648\u0632\u0634 \u0627\u06cc\u062c\u0627\u062f \u062f\u0627\u06a9\u0631 \u06a9\u0627\u0645\u067e\u0648\u0632<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">\u0627\u0628\u062a\u062f\u0627 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ nano ~\/laravel-app\/docker-compose.yml<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose \u0633\u0647 \u0633\u0631\u0648\u06cc\u0633 app\u060c webserver \u0648 db \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f. \u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0633\u067e\u0633 MYSQL_ROOT_PASSWORD \u0631\u0627 \u0628\u0627 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0642\u0648\u06cc \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u062e\u0648\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u062a\u063a\u06cc\u0631 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 enviroment variable \u062a\u062d\u062a \u0633\u0631\u0648\u06cc\u0633 db \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">version: '3'\r\nservices:\r\n\r\n#PHP Service\r\napp:\r\nbuild:\r\ncontext: .\r\ndockerfile: Dockerfile\r\nimage: digitalocean.com\/php\r\ncontainer_name: app\r\nrestart: unless-stopped\r\ntty: true\r\nenvironment:\r\nSERVICE_NAME: app\r\nSERVICE_TAGS: dev\r\nworking_dir: \/var\/www\r\nnetworks:\r\n- app-network\r\n\r\n#Nginx Service\r\nwebserver:\r\nimage: nginx:alpine\r\ncontainer_name: webserver\r\nrestart: unless-stopped\r\ntty: true\r\nports:\r\n- \"80:80\"\r\n- \"443:443\"\r\nnetworks:\r\n- app-network\r\n\r\n#MySQL Service\r\ndb:\r\nimage: mysql:5.7.22\r\ncontainer_name: db\r\nrestart: unless-stopped\r\ntty: true\r\nports:\r\n- \"3306:3306\"\r\nenvironment:\r\nMYSQL_DATABASE: laravel\r\nMYSQL_ROOT_PASSWORD: MYSQL_ROOT_PASSWORD\r\nSERVICE_TAGS: dev\r\nSERVICE_NAME: mysql\r\nnetworks:\r\n- app-network\r\n\r\n#Docker Networks\r\nnetworks:\r\napp-network:\r\ndriver: bridge<\/pre>\n<h3 style=\"text-align: justify;\"><span style=\"color: #0000ff;\">\u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641\u200c\u0634\u062f\u0647 \u0634\u0627\u0645\u0644:<\/span><\/h3>\n<ul style=\"text-align: justify;\">\n<li style=\"text-align: justify;\">App : \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0634\u0627\u0645\u0644 \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u0633\u062a \u0648 \u06cc\u06a9 custom Docker image \u0628\u0647 \u0646\u0627\u0645 digitalocean.com\/php \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 4 \u0622\u0646 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 working_dir \u0631\u0627 \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0631 \u0631\u0648\u06cc \/var\/www \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li style=\"text-align: justify;\">Webserver : \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0627\u06cc\u0645\u06cc\u062c\u0650 nginx:alpine \u0631\u0627 \u0627\u0632 \u062f\u0627\u06a9\u0631 pull\u060c \u0648 \u0633\u067e\u0633 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc 80 \u0648 443 \u0631\u0627 expose \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li style=\"text-align: justify;\">Db : \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0627\u06cc\u0645\u06cc\u062c mysql:5.7.22 \u0631\u0627 \u0627\u0632 \u062f\u0627\u06a9\u0631 pull \u06af\u0631\u0641\u062a\u0647 \u0648 \u0686\u0646\u062f \u0645\u062a\u063a\u06cc\u0631 \u0645\u062d\u06cc\u0637\u06cc \u0645\u0627\u0646\u0646\u062f \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u06cc \u0628\u0647 \u0646\u0627\u0645 laravel \u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0631\u0648\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u0622\u0646 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0634\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0647\u0631 \u0646\u0627\u0645\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u062e\u0648\u062f \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627\u06cc\u062f your_mysql_root_password \u0631\u0627 \u0628\u0627 \u067e\u0633\u0648\u0631\u062f \u0642\u0648\u06cc \u062e\u0648\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0646\u0645\u0627\u06cc\u06cc\u062f. \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0645\u0686\u0646\u06cc\u0646 \u067e\u0648\u0631\u062a 3306 \u0628\u0631 \u0647\u0627\u0633\u062a \u0631\u0627 \u0628\u0647 \u067e\u0648\u0631\u062a 3306 \u0628\u0631 \u0631\u0648\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u06cc\u200c\u0646\u06af\u0627\u0631\u062f.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u0647\u0631 \u0648\u06cc\u0698\u06af\u06cc container_name \u06cc\u06a9 \u0646\u0627\u0645 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0627 \u0646\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633 \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0631\u062f. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0646\u06a9\u0646\u06cc\u062f\u061b \u062f\u0627\u06a9\u0631 \u0628\u0627 \u062a\u0631\u06a9\u06cc\u0628 \u0646\u0627\u0645 \u06cc\u06a9 \u0641\u0631\u062f \u0645\u0634\u0647\u0648\u0631 \u062a\u0627\u0631\u06cc\u062e\u06cc \u0648 \u06cc\u06a9 \u06a9\u0644\u0645\u0647 \u062a\u0635\u0627\u062f\u0641\u06cc \u0647\u0645\u0631\u0627\u0647 \u06cc\u06a9 \u062e\u0637 \u062c\u062f\u0627 \u06a9\u0646\u0646\u062f\u0647\u061b \u0646\u0627\u0645\u06cc \u0628\u0647 \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u062e\u062a\u0635\u0627\u0635 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u062a\u0633\u0647\u06cc\u0644 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u060c \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0628\u0647 \u06cc\u06a9 \u067e\u0644 \u0634\u0628\u06a9\u0647 \u06cc\u0627 \u0628\u0631\u06cc\u062c \u0628\u0647 \u0646\u0627\u0645 app-network \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u062f\u0631 \u062d\u0642\u06cc\u0642\u062a \u06cc\u06a9 \u0628\u0631\u06cc\u062c \u0627\u0632 \u06cc\u06a9 software bridge \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0645\u062a\u0635\u0644 \u0628\u0647 \u0622\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0628\u0627 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631\u0627\u06cc\u0648\u0631 Bridge \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0642\u0648\u0627\u0646\u06cc\u0646\u06cc \u0631\u0627 \u062f\u0631 \u0645\u0627\u0634\u06cc\u0646\u200c \u0647\u0627\u0633\u062a \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u062f\u0631 bridge \u0634\u0628\u06a9\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0646\u062a\u0648\u0627\u0646\u0646\u062f \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0627 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627\u0639\u062b \u0627\u06cc\u062c\u0627\u062f \u0633\u0637\u062d \u0627\u0645\u0646\u06cc\u062a\u06cc \u0628\u0627\u0644\u0627\u062a\u0631\u06cc \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0641\u0642\u0637 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0627\u0632 \u0637\u0631\u0641\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0634\u0628\u06a9\u0647\u200c\u0647\u0627 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0645\u062a\u0639\u062f\u062f\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0641\u0627\u0646\u06a9\u0634\u0646\u200c\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u060c \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0627\u0632 \u06cc\u06a9 \u0634\u0628\u06a9\u0647 frontend \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0628\u06a9\u200c\u0627\u0646\u062f \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0627\u0632 \u06cc\u06a9 \u0634\u0628\u06a9\u0647 backend \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0628\u0647 \u0622\u0645\u0648\u0632\u0634 \u0646\u062d\u0648\u0647 \u0627\u0636\u0627\u0641\u0647\u200c\u06a9\u0631\u062f\u0646 volume\u200c \u0648 Bind Mount\u0647\u0627 \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u062f\u06cc\u062a\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u06cc\u0645.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0633\u0648\u0645: Persisting Data<\/span><\/h2>\n<p style=\"text-align: justify;\">Docker \u062f\u0627\u0631\u0627\u06cc \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0648 \u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 (Persisting Data) \u0627\u0633\u062a. \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f\u060c \u0627\u0632 \u0648\u0644\u0648\u0645\u200c\u0647\u0627 \u0648 Bind Mount \u0628\u0631\u0627\u06cc \u062a\u062f\u0627\u0648\u0645 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u200c\u0647\u0627\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. volume\u200c\u0647\u0627 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u06a9\u200c\u0622\u067e \u0648 \u0645\u0627\u0646\u062f\u06af\u0627\u0631\u06cc \u0628\u0627\u0644\u0627\u062a\u0631\u06cc \u0627\u0632 \u0686\u0631\u062e\u0647 \u062d\u06cc\u0627\u062a \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f. \u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 Bind Mount\u0647\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u062f \u0631\u0627 \u062f\u0631 \u0637\u0648\u0644 \u062a\u0648\u0633\u0639\u0647 \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0647\u0627\u0633\u062a\u200c\u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u06cc\u0627 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0641\u0648\u0631\u0627 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-4.jpg\" class=\"wp-image-22882 size-full\" alt=\"\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Compose \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\" title=\"\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0627\u06a9\u0631 \u06a9\u0627\u0645\u067e\u0648\u0632 \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\"       width=\"650\" height=\"400\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-4.jpg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-4-300x185.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u0622\u0645\u0648\u0632\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0627\u06a9\u0631 \u06a9\u0627\u0645\u067e\u0648\u0632 \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><strong>\u0646\u06a9\u062a\u0647:<\/strong><\/p>\n<p style=\"text-align: justify;\">\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Bind Mount\u060c \u0627\u0645\u06a9\u0627\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0650 \u0647\u0627\u0633\u062a \u0641\u0627\u06cc\u0644 \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0645\u0645\u06a9\u0646 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f. \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0641\u0631\u0627\u06cc\u0646\u062f\u0647\u0627\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u0627\u0646\u0646\u062f: \u0627\u06cc\u062c\u0627\u062f \u062a\u063a\u06cc\u06cc\u0631\u060c \u062d\u0630\u0641 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u06cc\u0627 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u200c\u0647\u0627\u06cc \u0645\u0647\u0645 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0647\u06cc\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f. \u062f\u0631 \u062d\u0642\u06cc\u0642\u062a Bind Mount \u06cc\u06a9 \u0642\u0627\u0628\u0644\u06cc\u062a \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0627 \u067e\u06cc\u0627\u0645\u062f\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0627\u0633\u062a \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0631 \u0641\u0631\u0627\u06cc\u0646\u062f\u0647\u0627\u06cc non-Docker \u0631\u0648\u06cc\u200c\u0647\u0627\u0633\u062a \u062a\u0623\u062b\u06cc\u0631 \u0628\u06af\u0630\u0627\u0631\u062f. \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0628\u0627 \u0627\u062d\u062a\u06cc\u0627\u0637 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose\u060c \u0648\u0644\u0648\u0645\u06cc \u0628\u0647 \u0646\u0627\u0645 dbdata \u0631\u0627 \u062f\u0631 \u0632\u06cc\u0631 \u0633\u0631\u0648\u06cc\u0633 db \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 MySQL \u062d\u0641\u0638 \u0634\u0648\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">...\r\n#MySQL Service\r\ndb:\r\n...\r\nvolumes:\r\n- dbdata: \/var\/lib\/mysql\r\nnetworks:\r\n- app-network\r\n...\r\nVolume\u200c \u0646\u0627\u0645\u200c\u06af\u0630\u0627\u0631\u06cc \u0634\u062f\u0647 dbdata \u0645\u062d\u062a\u0648\u06cc\u0627\u062a \u0641\u0648\u0644\u062f\u0631\r\n\/var\/lib\/mysql<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u062d\u0641\u0638 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0628\u062f\u0648\u0646 \u0627\u0632\u062f\u0633\u062a\u200c\u062f\u0627\u062f\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u060c \u0633\u0631\u0648\u06cc\u0633 db \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u0648 \u0631\u06cc\u0633\u062a\u0627\u0631\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u067e\u0627\u06cc\u06cc\u0646 \u0641\u0627\u06cc\u0644\u060c \u062a\u0639\u0631\u06cc\u0641 \u0648\u0644\u0648\u0645 dbdata \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">~\/laravel-app\/docker-compose.yml\r\n\r\n...\r\n#Volumes\r\nvolumes:\r\ndbdata:\r\ndriver: local<\/pre>\n<p style=\"text-align: justify;\">\u0628\u0627 \u0627\u06cc\u0646 \u062a\u0639\u0631\u06cc\u0641\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 volume\u200c \u062f\u0631 \u062a\u0645\u0627\u0645\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0633\u067e\u0633 \u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc MySQL \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 7 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u061b \u06cc\u06a9 Bind Mount \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 db \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">...\r\n#MySQL Service\r\ndb:\r\n...\r\nvolumes:\r\n- dbdata:\/var\/lib\/mysql\r\n- .\/mysql\/my.cnf:\/etc\/mysql\/my.cnf\r\n\u2026<\/pre>\n<p style=\"text-align: justify;\">\u0627\u06cc\u0646 bind mount\u060c ~\/laravel-app\/mysql\/my.cnf \u0631\u0627 \u0628\u0647 \/etc\/mysql\/my.cnf \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u062a\u0635\u0644 (bind) \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c Bind Mount \u0631\u0627 \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 webserver \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u062f\u0648 \u06a9\u0627\u0631\u0628\u0631\u062f \u062f\u0627\u0631\u062f\u061b \u06cc\u06a9\u06cc \u0628\u0631\u0627\u06cc \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 6 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#Nginx Service\r\nwebserver:\r\n...\r\nvolumes:\r\n- .\/:\/var\/www\r\n- .\/nginx\/conf.d\/:\/etc\/nginx\/conf.d\/\r\nnetworks:\r\n- app-network<\/pre>\n<p style=\"text-align: justify;\">\u0627\u0648\u0644\u06cc\u0646 Bind Mount \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc ~\/laravel-app \u0631\u0627 \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \/var\/www \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0647 \u0628\u0647 ~\/laravel-app\/nginx\/conf.d\/ \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0646\u06cc\u0632 \u062f\u0631 \/etc\/nginx\/conf.d\/ \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0627\u06cc\u0646 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0645\u062d\u062a\u0648\u06cc\u0627\u062a \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c Bind Mount \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#PHP Service\r\napp:\r\n...\r\nvolumes:\r\n- .\/:\/var\/www\r\n- .\/php\/local.ini:\/usr\/local\/etc\/php\/conf.d\/local.ini\r\nnetworks:\r\n- app-network<\/pre>\n<p style=\"text-align: justify;\">app \u0633\u0631\u0648\u06cc\u0633 \u0628\u0631\u0646\u0627\u0645\u0647 bind-mounting \u062f\u0631 \u0641\u0648\u0644\u062f\u0631 ~\/laravel-app \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f. \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0645 \u062f\u0631 \u0641\u0648\u0644\u062f\u0631 \/var\/www \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0648\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0631\u0627 \u0633\u0631\u0639\u062a \u0645\u06cc\u200c\u0628\u062e\u0634\u062f\u061b \u0632\u06cc\u0631\u0627 \u0647\u0631 \u062a\u063a\u06cc\u06cc\u0631\u06cc \u06a9\u0647 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u0648\u06a9\u0627\u0644 \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f\u061b \u0641\u0648\u0631\u0627\u064b \u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u0646\u0639\u06a9\u0633 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627 \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc PHP \u062e\u0648\u062f\u060c ~\/laravel-app\/php\/local.ini \u0631\u0627 \u0628\u0647 \/usr\/local\/etc\/php\/conf.d\/local.ini \u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0644\u0648\u06a9\u0627\u0644 PHP \u0631\u0627 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 5 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0627\u06a9\u0646\u0648\u0646 \u0641\u0627\u06cc\u0644 docker-compose \u0634\u0645\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">version: '3'\r\nservices:\r\n\r\n#PHP Service\r\napp:\r\nbuild:\r\ncontext: .\r\ndockerfile: Dockerfile\r\nimage: digitalocean.com\/php\r\ncontainer_name: app\r\nrestart: unless-stopped\r\ntty: true\r\nenvironment:\r\nSERVICE_NAME: app\r\nSERVICE_TAGS: dev\r\nworking_dir: \/var\/www\r\nvolumes:\r\n- .\/:\/var\/www\r\n- .\/php\/local.ini:\/usr\/local\/etc\/php\/conf.d\/local.ini\r\nnetworks:\r\n- app-network\r\n\r\n#Nginx Service\r\nwebserver:\r\nimage: nginx:alpine\r\ncontainer_name: webserver\r\nrestart: unless-stopped\r\ntty: true\r\nports:\r\n- \"80:80\"\r\n- \"443:443\"\r\nvolumes:\r\n- .\/:\/var\/www\r\n- .\/nginx\/conf.d\/:\/etc\/nginx\/conf.d\/\r\nnetworks:\r\n- app-network\r\n\r\n#MySQL Service\r\ndb:\r\nimage: mysql:5.7.22\r\ncontainer_name: db\r\nrestart: unless-stopped\r\ntty: true\r\nports:\r\n- \"3306:3306\"\r\nenvironment:\r\nMYSQL_DATABASE: laravel\r\nMYSQL_ROOT_PASSWORD: your_mysql_root_password\r\nSERVICE_TAGS: dev\r\nSERVICE_NAME: mysql\r\nvolumes:\r\n- dbdata:\/var\/lib\/mysql\/\r\n- .\/mysql\/my.cnf:\/etc\/mysql\/my.cnf\r\nnetworks:\r\n- app-network\r\n\r\n#Docker Networks\r\nnetworks:\r\napp-network:\r\ndriver: bridge\r\n#Volumes\r\nvolumes:\r\ndbdata:\r\ndriver: local<\/pre>\n<p style=\"text-align: justify;\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u0632 \u0627\u062f\u06cc\u062a\u0648\u0631 \u062e\u0648\u062f \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0627\u06a9\u0646\u0648\u0646 \u0628\u0627 \u0646\u0648\u0634\u062a\u0646 \u0641\u0627\u06cc\u0644 docker-compose\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 image \u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647(customized) \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0686\u0647\u0627\u0631\u0645: \u0627\u06cc\u062c\u0627\u062f Dockerfile<\/span><\/h2>\n<p style=\"text-align: justify;\">\u062f\u0627\u06a9\u0631 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0645\u062d\u06cc\u0637 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0631\u0627 \u0628\u0627 \u06cc\u06a9 Dockerfile \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f. \u06cc\u06a9 Dockerfile \u0634\u0645\u0627 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u062a\u0627 image\u0647\u0627\u06cc \u0634\u062e\u0635\u06cc\u200c\u0633\u0627\u0632\u06cc\u200c\u0634\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u0634\u062f\u0647 \u0631\u0627 \u062f\u0631 Docker Hub \u06cc\u0627 \u0647\u0631 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u062e\u0635\u0648\u0635\u06cc push\u200c \u06a9\u0646\u06cc\u062f.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-5.jpg\" class=\"wp-image-22876 size-full\" alt=\"\u0627\u06cc\u062c\u0627\u062f dockerfile \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\" title=\"\u0627\u06cc\u062c\u0627\u062f dockerfile \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\"       width=\"650\" height=\"400\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-5.jpg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-5-300x185.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u0622\u0645\u0648\u0632\u0634 \u0627\u06cc\u062c\u0627\u062f dockerfile \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">Dockerfile \u0634\u0645\u0627 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc ~\/laravel-app \u0634\u0645\u0627 \u0642\u0631\u0627\u0631 \u062e\u0648\u0627\u0647\u062f \u06af\u0631\u0641\u062a. \u0627\u06a9\u0646\u0648\u0646 \u0641\u0627\u06cc\u0644 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ nano ~\/laravel-app\/Dockerfile<\/pre>\n<p style=\"text-align: justify;\">\u0627\u06cc\u0646 Dockerfile \u0627\u06cc\u0645\u06cc\u062c \u067e\u0627\u06cc\u0647 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645\u060c command \u0648 instruction \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0627\u06cc\u0645\u06cc\u062c\u0650 \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06a9\u0646\u0648\u0646 \u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">FROM php:7.4-fpm\r\n# Copy composer.lock and composer.json\r\nCOPY composer.lock composer.json \/var\/www\/\r\n\r\n# Set working directory\r\nWORKDIR \/var\/www\r\n\r\n# Install dependencies\r\nRUN apt-get update &amp;&amp; apt-get install -y \\\r\nbuild-essential \\\r\nlibpng-dev \\\r\nlibjpeg62-turbo-dev \\\r\nlibfreetype6-dev \\\r\nlocales \\\r\nzip \\\r\njpegoptim optipng pngquant gifsicle \\\r\nvim \\\r\nunzip \\\r\ngit \\\r\ncurl \\\r\nlibzip-dev\r\n\r\n# Clear cache\r\nRUN apt-get clean &amp;&amp; rm -rf \/var\/lib\/apt\/lists\/*\r\n\r\n# Install extensions\r\nRUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl\r\nRUN docker-php-ext-configure gd --with-gd --with-freetype-dir=\/usr\/include\/ --with-jpeg-dir=\/usr\/include\/ --with-png-dir=\/usr\/include\/\r\nRUN docker-php-ext-install gd\r\n\r\n# Install composer\r\nRUN curl -sS https:\/\/getcomposer.org\/installer | php -- --install-dir=\/usr\/local\/bin --filename=composer\r\n\r\n# Add user for laravel application\r\nRUN groupadd -g 1000 www\r\nRUN useradd -u 1000 -ms \/bin\/bash -g www www\r\n\r\n# Copy existing application directory contents\r\nCOPY . \/var\/www\r\n\r\n# Copy existing application directory permissions\r\nCOPY --chown=www:www . \/var\/www\r\n\r\n# Change current user to www\r\nUSER www\r\n\r\n# Expose port 9000 and start php-fpm server\r\nEXPOSE 9000\r\nCMD [\"php-fpm\"]<\/pre>\n<p style=\"text-align: justify;\">\u0627\u0628\u062a\u062f\u0627 Dockerfile\u060c \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u062f\u0627\u06a9\u0631 \u0627\u06cc\u0645\u06cc\u062c php:7.4-fpm \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u062f\u0628\u06cc\u0627\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0627\u0631\u0627\u06cc PHP FastCGI \u0628\u0648\u062f\u0647 \u0648 \u0628\u0631 \u0631\u0648\u06cc PHP-FPM \u0646\u0635\u0628 \u0648 \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p style=\"text-align: justify;\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632 \u0644\u0627\u0631\u0627\u0648\u0644 \u0645\u0627\u0646\u0646\u062f mcrypt\u060c pdo_mysql\u060c mbstring \u0648 imagick \u0631\u0627 \u0628\u0627 composer \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 RUN \u062f\u0633\u062a\u0648\u0631\u0627\u062a\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0622\u067e\u062f\u06cc\u062a\u060c \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u0627\u0646\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0647 \u0646\u0627\u0645 www\u060c \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 WORKDIR \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \/var\/www \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 working directory \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u062d\u062f\u0648\u062f\u060c \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc \u0630\u0627\u062a\u06cc \u0631\u0627 \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc Docker \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0631\u0648\u062a \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0647\u200c\u062c\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 root\u060c \u06cc\u0648\u0632\u0631 www \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u06a9\u0645\u06a9 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 COPY \u06a9\u0647 \u0628\u0627 \u0641\u0644\u06af chown&#8211; \u0628\u0631\u0627\u06cc \u06a9\u067e\u06cc\u200c\u06a9\u0631\u062f\u0646 \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u067e\u0648\u0634\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0628\u0647 \u0641\u0648\u0644\u062f\u0631 \/var\/www \u062f\u0633\u062a\u0631\u0633\u06cc read\/write \u062f\u0627\u0631\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u062f\u0633\u062a\u0648\u0631 EXPOSE \u06cc\u06a9 \u067e\u0648\u0631\u062a \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 9000\u060c \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u0631 php-fpm \u0622\u0634\u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. CMD \u062f\u0633\u062a\u0648\u0631\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0627\u06cc\u062f \u0627\u062c\u0631\u0627 \u0634\u0648\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c CMD \u0645\u0634\u062e\u0635 \u06a9\u0646\u0646\u062f\u0647 &#8220;php-fpm&#8221; \u0627\u0633\u062a \u06a9\u0647 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u0632 \u0627\u062f\u06cc\u062a\u0648\u0631 \u062e\u0648\u062f \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f. \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u062a\u0639\u0631\u06cc\u0641 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc PHP \u062e\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u067e\u0646\u062c\u0645: \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc PHP<\/span><\/h2>\n<p style=\"text-align: justify;\">\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 Docker-Compose \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 PHP \u0631\u0627 \u0637\u0648\u0631\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u062f\u0627\u0632\u0646\u062f\u0647 PHP \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 Nginx \u0639\u0645\u0644 \u06a9\u0646\u062f.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-6.jpg\" class=\"wp-image-22877 size-full\" alt=\"\u0622\u0645\u0648\u0632\u0634 php \u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633\" title=\"\u0627\u06cc\u062c\u0627\u062f php \u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\"       width=\"650\" height=\"400\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-6.jpg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-6-300x185.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u0622\u0645\u0648\u0632\u0634 php \u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc PHP\u060c \u0641\u0627\u06cc\u0644 local.ini \u0631\u0627 \u062f\u0631 \u062f\u0627\u062e\u0644 \u067e\u0648\u0634\u0647 php \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 2 \u0628\u0647 \/usr\/local\/etc\/php\/conf.d\/local.ini \u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 bin-mount \u06a9\u0631\u062f\u06cc\u062f. \u0627\u06cc\u062c\u0627\u062f \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 php.ini \u0631\u0627 \u0644\u063a\u0648 \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0627\u0628\u062a\u062f\u0627 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc php \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ mkdir ~\/laravel-app\/php<\/pre>\n<p style=\"text-align: justify;\">\u0633\u067e\u0633 \u0641\u0627\u06cc\u0644 local.ini \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ nano ~\/laravel-app\/php\/local.ini<\/pre>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u0646\u0634\u0627\u0646\u200c\u062f\u0627\u062f\u0646 \u0646\u062d\u0648\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc PHP\u060c \u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a\u200c\u0647\u0627\u06cc \u0627\u0646\u062f\u0627\u0632\u0647 \u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0622\u067e\u0644\u0648\u062f \u0634\u062f\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">upload_max_filesize=40M\r\npost_max_size=40M<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644\u200c\u0647\u0627\u06cc upload_max_filesize \u0648 post_max_size \u062d\u062f\u0627\u06a9\u062b\u0631 \u0627\u0646\u062f\u0627\u0632\u0647 \u0645\u062c\u0627\u0632 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0622\u067e\u0644\u0648\u062f\u0634\u062f\u0647 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0646\u0638\u06cc\u0645\u0627\u062a php.ini \u0631\u0627 \u0627\u0632 \u0641\u0627\u06cc\u0644 local.ini \u062e\u0648\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f. \u0647\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0627\u0635 PHP \u0631\u0627 \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0644\u063a\u0648 \u06a9\u0646\u06cc\u062f \u062f\u0631 \u0641\u0627\u06cc\u0644 local.ini \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0627\u062f\u06cc\u062a\u0648\u0631 \u062e\u0648\u062f \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f. \u0628\u0627 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0646 \u0641\u0627\u06cc\u0644 PHP local.ini\u060c \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0634\u0634\u0645: \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx<\/span><\/h2>\n<p style=\"text-align: justify;\">\u0628\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0631\u0648\u06cc\u0633 PHP\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 Nginx \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u062a\u0627 \u0627\u0632 PHP-FPM \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0633\u0631\u0648\u0631 FastCGI \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u062f\u0627\u06cc\u0646\u0627\u0645\u06cc\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f. \u0633\u0631\u0648\u0631 FastCGI \u0628\u0631 \u0627\u0633\u0627\u0633 \u06cc\u06a9 \u067e\u0631\u0648\u062a\u06a9\u0644 \u0628\u0627\u06cc\u0646\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u062a\u0639\u0627\u0645\u0644\u06cc \u0628\u0627 \u06cc\u06a9 \u0648\u0628 \u0633\u0631\u0648\u0631 \u0627\u0633\u062a.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-7.jpg\" class=\"wp-image-22878 size-full\" alt=\"\u0646\u0635\u0628 nginx \u0631\u0648\u06cc ubuntu\" title=\" \u0646\u0635\u0628 \u0648 \u06a9\u0627\u0646\u0641\u06cc\u06af nginx \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648\"       width=\"650\" height=\"400\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-7.jpg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-7-300x185.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u0648 \u06a9\u0627\u0646\u0641\u06cc\u06af nginx \u0631\u0648\u06cc ubuntu<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx\u060c \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 app.conf \u0628\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0631\u0648\u06cc\u0633 \u062f\u0631 \u0641\u0648\u0644\u062f\u0631 ~\/laravel-app\/nginx\/conf.d\/ \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0628\u062a\u062f\u0627 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc nginx\/conf.d\/ \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ mkdir -p ~\/laravel-app\/nginx\/conf.d<\/pre>\n<p style=\"text-align: justify;\">\u0633\u067e\u0633 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc app.conf \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">nano ~\/laravel-app\/nginx\/conf.d\/app.conf<\/pre>\n<p style=\"text-align: justify;\">\u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">server {\r\nlisten 80;\r\nindex index.php index.html;\r\nerror_log \/var\/log\/nginx\/error.log;\r\naccess_log \/var\/log\/nginx\/access.log;\r\nroot \/var\/www\/public;\r\nlocation ~ \\.php$ {\r\ntry_files $uri =404;\r\nfastcgi_split_path_info ^(.+\\.php)(\/.+)$;\r\nfastcgi_pass app:9000;\r\nfastcgi_index index.php;\r\ninclude fastcgi_params;\r\nfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\r\nfastcgi_param PATH_INFO $fastcgi_path_info;\r\n}\r\nlocation \/ {\r\ntry_files $uri $uri\/ \/index.php?$query_string;\r\ngzip_static on;\r\n}\r\n}<\/pre>\n<p style=\"text-align: justify;\">\u0628\u0644\u0648\u06a9 \u0633\u0631\u0648\u0631\u060c \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648\u0628 \u0633\u0631\u0648\u0631 Nginx \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"text-align: justify;\">Listen: \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u067e\u0648\u0631\u062a\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0633\u0631\u0648\u0631 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0622\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0631\u0627 listening \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li style=\"text-align: justify;\">error_log \u0648 access_log: \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644\u200c\u0647\u0627 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0646\u0648\u0634\u062a\u0646 \u0644\u0627\u06af\u200c\u0647\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/li>\n<li style=\"text-align: justify;\">Root: \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u0645\u0633\u06cc\u0631 \u0641\u0648\u0644\u062f\u0631 \u0631\u0648\u062a \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0645\u0633\u06cc\u0631 \u06a9\u0627\u0645\u0644\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0641\u0627\u06cc\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0641\u0627\u06cc\u0644 \u0644\u0648\u06a9\u0627\u0644 \u062a\u0634\u06a9\u06cc\u0644 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0628\u0644\u0648\u06a9 \u0645\u0648\u0642\u0639\u06cc\u062a php\u060c \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 fastcgi_pass \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 app \u062f\u0631 \u062d\u0627\u0644 listen \u06a9\u0631\u062f\u0646 \u0628\u0647 \u0633\u0648\u06a9\u062a TCP \u062f\u0631 \u067e\u0648\u0631\u062a 9000 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0633\u0631\u0648\u0631 PHP-FPM \u0628\u0647\u200c\u062c\u0627\u06cc \u0633\u0648\u06a9\u062a Unix\u060c \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0634\u0628\u06a9\u0647 listen \u06a9\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0627\u06af\u0631\u0686\u0647 \u06cc\u06a9 \u0633\u0648\u06a9\u062a Unix \u0646\u0633\u0628\u062a \u0628\u0647 \u0633\u0648\u06a9\u062a TCP \u0627\u0632 \u0646\u0638\u0631 \u0633\u0631\u0639\u062a \u0628\u0631\u062a\u0631\u06cc \u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 \u067e\u0631\u0648\u062a\u06a9\u0644 \u0634\u0628\u06a9\u0647 \u0646\u062f\u0627\u0631\u062f\u061b \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u0632 stack \u0634\u0628\u06a9\u0647 \u0645\u06cc\u200c\u06af\u0630\u0631\u062f. \u0628\u0631\u0627\u06cc \u0645\u0648\u0627\u0631\u062f\u06cc \u06a9\u0647 \u0647\u0627\u0633\u062a\u200c\u0647\u0627 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u0648\u06a9\u062a \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u0646\u0637\u0642\u06cc \u0628\u0627\u0634\u062f. \u0627\u0645\u0627 \u062f\u0631 \u0645\u0648\u0627\u0631\u062f\u06cc \u06a9\u0647 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062f\u0631 \u0647\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0633\u0648\u06a9\u062a TCP \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u062a\u0648\u0632\u06cc\u0639 \u0634\u062f\u0647 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0627\u0632\u0622\u0646\u062c\u0627\u06cc\u06cc\u200c\u06a9\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 app \u0628\u0631 \u0631\u0648\u06cc \u0647\u0627\u0633\u062a\u06cc \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u0632 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 webserver \u0634\u0645\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0633\u0648\u06a9\u062a TCP \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0645\u0627 \u0645\u0646\u0627\u0633\u0628\u200c\u062a\u0631 \u0627\u0633\u062a. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u0632 \u0627\u062f\u06cc\u062a\u0648\u0631 \u062e\u0648\u062f \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0647 \u0644\u0637\u0641 Bind Mount \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 2 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u062f\u060c \u0647\u0631 \u062a\u063a\u06cc\u06cc\u0631\u06cc \u06a9\u0647 \u062f\u0631 \u067e\u0648\u0634\u0647 nginx\/conf.d\/ \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u061b \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0648\u0628 \u0633\u0631\u0648\u0631 \u0645\u0646\u0639\u06a9\u0633 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a MySQL \u0648 \u0646\u062d\u0648\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0622\u0646 \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u06cc\u0645.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0647\u0641\u062a\u0645: \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc MySQL<\/span><\/h2>\n<p style=\"text-align: justify;\">\u0628\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc PHP \u0648 Nginx\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f MySQL \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0639\u0645\u0644 \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc MySQL\u060c \u0641\u0627\u06cc\u0644 my.cnf \u0631\u0627 \u062f\u0631 \u067e\u0648\u0634\u0647 mysql \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 2 \u0628\u0647 \/etc\/mysql\/my.cnf \u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 bind mount \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f. \u0627\u06cc\u0646 Bind Mount \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u062f\u0631 \u0635\u0648\u0631\u062a \u0644\u0632\u0648\u0645 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a my.cnf \u0631\u0627 \u0644\u063a\u0648 (override) \u06a9\u0646\u06cc\u062f.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-8.jpg\" class=\"wp-image-22879 size-full\" alt=\"\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc MySQL \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\" title=\"\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc MySQL \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\"       width=\"650\" height=\"400\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-8.jpg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-8-300x185.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u0622\u0645\u0648\u0632\u0634 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc MySQL \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u0646\u0634\u0627\u0646\u200c\u062f\u0627\u062f\u0646 \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0622\u0646\u060c \u062a\u0646\u0638\u06cc\u0645\u0627\u062a\u06cc \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 my.cnf \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u06af\u0632\u0627\u0631\u0634 \u0644\u0627\u06af \u06a9\u0648\u0626\u0631\u06cc \u0631\u0627 \u0641\u0639\u0627\u0644 \u0648 \u0641\u0627\u06cc\u0644 \u0644\u0627\u06af \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0627\u0628\u062a\u062f\u0627 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc mysql \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ mkdir ~\/laravel-app\/mysql<\/pre>\n<p style=\"text-align: justify;\">\u0633\u067e\u0633 \u0641\u0627\u06cc\u0644 my.cnf \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ nano ~\/laravel-app\/mysql\/my.cnf<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0641\u0627\u06cc\u0644\u060c \u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 Log Query \u0641\u0639\u0627\u0644 \u0634\u0648\u062f \u0648 \u0645\u062d\u0644 \u0641\u0627\u06cc\u0644 log \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">[mysqld]\r\ngeneral_log = 1\r\ngeneral_log_file = \/var\/lib\/mysql\/general.log<\/pre>\n<p style=\"text-align: justify;\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 my.cnf \u0644\u0627\u06af\u200c\u0647\u0627 \u0631\u0627 \u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a general_log \u0631\u0627 1 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u062c\u0646\u0631\u0627\u0644 \u0644\u0627\u06af\u200c\u0647\u0627 \u0645\u062c\u0627\u0632 \u0628\u0627\u0634\u0646\u062f. \u062a\u0646\u0638\u06cc\u0645\u0627\u062a general_log_file \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0644\u0627\u06af\u200c\u0647\u0627 \u062f\u0631 \u06a9\u062c\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0634\u0648\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0627\u062f\u06cc\u062a\u0648\u0631 \u062e\u0648\u062f \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0647\u0634\u062a\u0645: \u0627\u0635\u0644\u0627\u062d \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u06cc\u0646\u0648\u0631\u062a\u0631 \u0648 \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627<\/span><\/h2>\n<p style=\"text-align: justify;\">\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose \u062a\u0639\u0631\u06cc\u0641 \u0648 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f. \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0622\u062e\u0631\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u06a9\u067e\u06cc \u0627\u0632 \u0641\u0627\u06cc\u0644 env.example. (\u06a9\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0634\u0627\u0645\u0644 \u0622\u0646 \u0627\u0633\u062a) \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0646\u0627\u0645 \u0622\u0646 \u0631\u0627 env. \u0628\u06af\u0630\u0627\u0631\u06cc\u062f.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-9.jpg\" class=\"wp-image-22880 size-full\" alt=\"\u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\" title=\"\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0641\u0627\u06cc\u0644 docker-compose\"       width=\"650\" height=\"400\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-9.jpg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-9-300x185.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0641\u0627\u06cc\u0644 docker-compose \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u0646\u062a\u0638\u0627\u0631 \u0645\u06cc\u200c\u0631\u0648\u062f\u061b \u0644\u0627\u0631\u0627\u0648\u0644 \u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0622\u0646 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ cp .env.example .env<\/pre>\n<p style=\"text-align: justify;\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0627\u06cc\u0644 env. \u0631\u0627 \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 app \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u062a\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a \u062e\u0627\u0635\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062f\u0631 \u0622\u0646 \u0644\u062d\u0627\u0638 \u0634\u0648\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 nano \u06cc\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u0645\u062a\u0646 (Text Editor) \u062f\u0644\u062e\u0648\u0627\u0647 \u062e\u0648\u062f \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ nano .env<\/pre>\n<p style=\"text-align: justify;\">\u0627\u06a9\u0646\u0648\u0646 \u0628\u0644\u0648\u06a9\u06cc \u06a9\u0647 DB_CONNECTION \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f. \u0622\u0646 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0646\u0645\u0627\u06cc\u06cc\u062f \u062a\u0627 \u0645\u0634\u062e\u0635\u0627\u062a \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u0645\u0627 \u0631\u0627 \u0645\u0646\u0639\u06a9\u0633 \u06a9\u0646\u062f. \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u06a9\u0646\u06cc\u062f:<\/p>\n<ul>\n<li style=\"text-align: justify;\">DB_HOST \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 db \u0634\u0645\u0627 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/li>\n<li style=\"text-align: justify;\">DB_DATABASE \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 Laravel \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/li>\n<li style=\"text-align: justify;\">DB_USERNAME \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0627\u0632 laraveluser \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/li>\n<li style=\"text-align: justify;\">DB_PASSWORD \u067e\u0633\u0648\u0631\u062f \u0627\u0645\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \/var\/www\/.env:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">DB_CONNECTION=mysql\r\nDB_HOST=db\r\nDB_PORT=3306\r\nDB_DATABASE=laravel\r\nDB_USERNAME=laraveluser\r\nDB_PASSWORD=your_laravel_db_password<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062e\u0648\u062f \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0627\u062f\u06cc\u062a\u0648\u0631 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 \u0647\u0645\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647\u200c\u0627\u0646\u062f\u060c \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0648\u0627\u062d\u062f \u0632\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0647\u0645\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u060c \u0648\u0644\u0648\u0645\u200c\u0647\u0627\u060c \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u0627\u062a\u0635\u0627\u0644 \u0634\u0628\u06a9\u0647\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ docker-compose up -d<\/pre>\n<p style=\"text-align: justify;\">\u0648\u0642\u062a\u06cc \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646\u200c\u0628\u0627\u0631 docker-compose up \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u060c \u0647\u0645\u0647 \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627\u06cc Docker \u062f\u0627\u0646\u0644\u0648\u062f \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0634\u0627\u06cc\u062f \u06a9\u0645\u06cc \u0637\u0648\u0644 \u0628\u06a9\u0634\u062f. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 image\u0647\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0648 \u062f\u0631 \u0645\u0627\u0634\u06cc\u0646 \u0644\u0648\u06a9\u0627\u0644 \u0634\u0645\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u060c Compose \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0633\u067e\u0633 \u0641\u0644\u06af d- \u0641\u0631\u0627\u06cc\u0646\u062f \u0631\u0627 \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u067e\u0633 \u0627\u0632 \u062a\u06a9\u0645\u06cc\u0644 \u0641\u0631\u0627\u06cc\u0646\u062f\u060c \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0644\u06cc\u0633\u062a \u06a9\u0631\u062f\u0646 \u062a\u0645\u0627\u0645 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ docker ps<\/pre>\n<p style=\"text-align: justify;\">\u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc app\u060c \u0648\u0628 \u0633\u0631\u0648\u0631 webserver \u0648 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 db \u062e\u0648\u062f \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">CONTAINER ID NAMES IMAGE STATUS PORTS\r\nc31b7b3251e0 db mysql:5.7.22 Up 2 seconds 0.0.0.0:3306-&gt;3306\/tcp\r\ned5a69704580 app digitalocean.com\/php Up 2 seconds 9000\/tcp\r\n5ce4ee31d7c0 webserver nginx:alpine Up 2 seconds 0.0.0.0:80-&gt;80\/tcp, 0.0.0.0:443-&gt;443\/tcp<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646 \u062e\u0631\u0648\u062c\u06cc CONTAINER ID \u06cc\u06a9 \u0634\u0646\u0627\u0633\u0647 \u0645\u0646\u062d\u0635\u0631\u0628\u0647\u200c\u0641\u0631\u062f \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u0633\u062a. \u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 NAMES \u0646\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633 \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0647\u0631 \u06cc\u06a9 \u0631\u0627 \u0644\u06cc\u0633\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0647\u0631 \u062f\u0648\u06cc \u0627\u06cc\u0646 \u0634\u0646\u0627\u0633\u0647\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. IMAGE \u0646\u0627\u0645 \u0627\u06cc\u0645\u06cc\u062c \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631\u062d\u0627\u0644\u06cc\u200c\u06a9\u0647 STATUS \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<ul>\n<li style=\"text-align: justify;\">\u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 (running)<\/li>\n<li style=\"text-align: justify;\">\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062c\u062f\u062f (restarting)<\/li>\n<li style=\"text-align: justify;\">\u062a\u0648\u0642\u0641 (stopped)<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u0627\u06a9\u0646\u0648\u0646 \u0627\u0632 docker-compose exec \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 application key \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u062f\u0633\u062a\u0648\u0631 docker-compose exec \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u062e\u0627\u0635\u06cc \u0631\u0627 \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u06cc\u06a9 \u06a9\u0644\u06cc\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 env. \u0634\u0645\u0627 \u06a9\u067e\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0645\u0637\u0645\u0626\u0646 \u0645\u06cc\u200c\u0634\u0648\u06cc\u062f \u06a9\u0647 \u0633\u0634\u0646\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0634\u062f\u0647 \u0634\u0645\u0627 \u0627\u0645\u0646 \u0645\u06cc\u200c\u0645\u0627\u0646\u0646\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ docker-compose exec app php artisan key:generate<\/pre>\n<p style=\"text-align: justify;\">\u0627\u06a9\u0646\u0648\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a enviroment\u200c \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u062f\u0627\u0631\u06cc\u062f. \u0628\u0631\u0627\u06cc cache \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 (\u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0633\u0631\u0639\u062a \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627)\u060c \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ docker-compose exec app php artisan config:cache<\/pre>\n<p style=\"text-align: justify;\">\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0645\u0627 \u062f\u0631 \/var\/www\/bootstrap\/cache\/config.php \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0644\u0648\u062f \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0622\u062e\u0631\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0622\u062f\u0631\u0633 http:\/\/your_server_ip \u0631\u0627 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f. \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u062e\u0648\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f:<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/WhatsApp-Image-2022-04-10-at-11.27.35-AM-1.jpeg\" class=\"wp-image-22875 size-full\" alt=\"\u0646\u0635\u0628 \u0644\u0627\u0631\u0627\u0648\u0644 \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\" title=\"\u0646\u062d\u0648\u0647 \u0646\u0635\u0628 \u0644\u0627\u0631\u0627\u0648\u0644 \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648\"       width=\"650\" height=\"347\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/WhatsApp-Image-2022-04-10-at-11.27.35-AM-1.jpeg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/WhatsApp-Image-2022-04-10-at-11.27.35-AM-1-300x160.jpeg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">\u0628\u0627 \u0627\u062c\u0631\u0627 \u0634\u062f\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0648 \u062a\u0646\u0638\u06cc\u0645 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 laravel \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 db \u0628\u0631\u0648\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0646\u0647\u0645: \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u0627\u06cc MySQL<\/span><\/h2>\n<p style=\"text-align: justify;\">\u0646\u0635\u0628 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 MySQL \u0641\u0642\u0637 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc root \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u062f\u0627\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0646\u0627\u0645\u062d\u062f\u0648\u062f \u062f\u0631 \u0633\u0631\u0648\u0631 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0627\u0633\u062a. \u0628\u0647\u200c\u0637\u0648\u0631\u06a9\u0644\u06cc\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0647\u0646\u06af\u0627\u0645 \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u062f\u0627\u062f\u0647 \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc root Administrative \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f. \u0628\u0647\u200c\u062c\u0627\u06cc \u0622\u0646 \u06cc\u06a9 \u06cc\u0648\u0632\u0631 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0631\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0644\u0627\u0631\u0627\u0648\u0644 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-10.jpg\" class=\"wp-image-22886 size-full\" alt=\"\u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u0627\u06cc MySQL\" title=\"\u0633\u0627\u062e\u062a \u06cc\u0648\u0632\u0631 \u0628\u0631\u0627\u06cc\u00a0MySQL\"       width=\"650\" height=\"400\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-10.jpg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-10-300x185.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u0622\u0645\u0648\u0632\u0634 \u0633\u0627\u062e\u062a \u06cc\u0648\u0632\u0631 \u0628\u0631\u0627\u06cc\u00a0MySQL<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u062c\u062f\u06cc\u062f\u060c \u06cc\u06a9 bash shell \u062a\u0639\u0627\u0645\u0644\u06cc \u0631\u0627 \u0631\u0648\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 db \u0628\u0627 docker-compose exec \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ docker-compose exec db bash<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u060c \u0648\u0627\u0631\u062f \u062d\u0633\u0627\u0628 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0631\u0648\u062a MySQL \u0634\u0648\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">mysql -u root -p<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u062d\u06cc\u0646 \u0646\u0635\u0628 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose\u060c \u0631\u0645\u0632 \u0639\u0628\u0648\u0631\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062d\u0633\u0627\u0628 MySQL root \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f \u0627\u0632 \u0634\u0645\u0627 \u062e\u0648\u0627\u0633\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0627 \u0628\u0631\u0631\u0633\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 laravel (\u06a9\u0647 \u062f\u0631 \u0641\u0627\u06cc\u0644 docker-compose \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f)\u060c \u06a9\u0627\u0631 \u062e\u0648\u062f \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f. \u062f\u0633\u062a\u0648\u0631 show databases \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">mysql&gt; show databases;<\/pre>\n<p style=\"text-align: justify;\">\u0633\u067e\u0633 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 Laravel \u0631\u0627 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">+--------------------+\r\n| Database |\r\n+--------------------+\r\n| information_schema |\r\n| laravel |\r\n| mysql |\r\n| performance_schema |\r\n| sys |\r\n+--------------------+\r\n5 rows in set (0.00 sec)<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u062f\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0634\u0645\u0627 laraveluser \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f\u060c \u0627\u06af\u0631\u0686\u0647 \u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u0645\u0627\u06cc\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0646\u0627\u0645 \u062f\u06cc\u06af\u0631\u06cc \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f. \u0641\u0642\u0637 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0634\u0645\u0627 \u0628\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u0641\u0627\u06cc\u0644 env. \u062e\u0648\u062f \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0642\u0628\u0644 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">mysql&gt; GRANT ALL ON laravel.* TO 'laraveluser'@'%' IDENTIFIED BY 'your_laravel_db_password';<\/pre>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u200c\u0631\u0633\u0627\u0646\u06cc \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0647 MySQL server\u060c \u0627\u0632 \u06a9\u062f FLUSH PRIVILEGES \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">mysql&gt; FLUSH PRIVILEGES;<\/pre>\n<p style=\"text-align: justify;\">\u0627\u0632 MySQL \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">EXIT;<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0627\u0632 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">exit<\/pre>\n<p style=\"text-align: justify;\">\u062a\u0627 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u0627\u0631\u0627\u0648\u0644\u06cc \u062e\u0648\u062f \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u06cc \u0646\u0635\u0628 \u06a9\u0631\u062f\u06cc\u062f. \u0633\u067e\u0633 \u0628\u0631\u0627\u06cc \u0622\u0646 \u06cc\u06a9 \u06cc\u0648\u0632\u0631 \u0627\u06a9\u0627\u0646\u062a(\u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc) \u0633\u062a \u0634\u062f \u0648 \u0627\u0644\u0627\u0646 \u0622\u0645\u0627\u062f\u0647 \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u06cc\u062a\u0627 \u0648 \u06a9\u0627\u0631\u0647\u0627\u06cc\u062a\u0627\u0646 \u0628\u0627 \u062a\u06cc\u0646\u06a9\u0631 \u06a9\u0646\u0633\u0648\u0644(Tinker console) \u0645\u06cc\u200c\u0628\u0627\u0634\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u062f\u0647\u0645: \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648 \u06a9\u0627\u0631 \u0628\u0627 \u06a9\u0646\u0633\u0648\u0644 Tinker<\/span><\/h2>\n<p style=\"text-align: justify;\">\u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0647\u06cc\u062f \u0648 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 tinker \u0622\u0646 \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646\u06a9\u0627\u0631 \u062a\u0648\u0633\u0637 \u06a9\u0646\u0633\u0648\u0644 PsySH \u0628\u0627 \u067e\u0631\u06cc\u0644\u0648\u062f\u200c\u0634\u062f\u0647 Laravel \u0634\u0631\u0648\u0639 \u0645\u06cc\u200c\u0634\u0648\u062f. PsySH \u06cc\u06a9 \u06a9\u0646\u0633\u0648\u0644 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0631\u0627\u0646-\u062a\u0627\u06cc\u0645 \u0648 \u0627\u06cc\u0646\u062a\u0631\u06a9\u062a\u06cc\u0648-Debugger \u0628\u0631\u0627\u06cc PHP \u0627\u0633\u062a.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-1.jpg\" class=\"wp-image-22885 size-full\" alt=\"\u062f\u0633\u062a\u0648\u0631 tinker \u062f\u0631 \u0644\u0627\u0631\u0627\u0648\u0644\" title=\"\u062f\u0633\u062a\u0648\u0631 Tinker \u062f\u0631 \u0644\u0627\u0631\u0627\u0648\u0644\"       width=\"650\" height=\"400\" srcset=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-1.jpg 650w, https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/04\/How-To-Set-Up-Laravel-Nginx-and-MySQL-With-Docker-Compose-on-Ubuntu-20-1-300x185.jpg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><figcaption class=\"text-subtitle-5 text-gray-9 text-center mt-2\" >\u0622\u0645\u0648\u0632\u0634 \u062f\u0633\u062a\u0648\u0631 Tinker \u062f\u0631 \u0644\u0627\u0631\u0627\u0648\u0644<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">Tinker \u06cc\u06a9 REPL \u0645\u062e\u0635\u0648\u0635 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u0633\u062a. \u062f\u0633\u062a\u0648\u0631 tinker \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u062e\u0648\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Command line \u062f\u0631 Interactive shell \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0627\u0628\u062a\u062f\u0627\u060c \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 MySQL \u0631\u0627 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631 \u0644\u0627\u0631\u0627\u0648\u0644 artisan migrate \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u06cc\u06a9 \u062c\u062f\u0648\u0644 migrations \u062f\u0631 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ docker-compose exec app php artisan migrate<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Migration table created successfully.\r\nMigrating: 2014_10_12_000000_create_users_table\r\nMigrated: 2014_10_12_000000_create_users_table\r\nMigrating: 2014_10_12_100000_create_password_resets_table\r\nMigrated: 2014_10_12_100000_create_password_resets_table<\/pre>\n<p style=\"text-align: justify;\">\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 Migration \u06a9\u0627\u0645\u0644 \u0634\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u06a9\u0648\u0626\u0631\u06cc \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 tinker \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0628\u0647\u200c\u062f\u0631\u0633\u062a\u06cc \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u062f\u0627\u062f\u0647 \u0645\u062a\u0635\u0644 \u0634\u062f\u0647\u200c\u0627\u06cc\u062f \u06cc\u0627 \u062e\u06cc\u0631:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ docker-compose exec app php artisan tinker<\/pre>\n<p style=\"text-align: justify;\">\u0627\u062a\u0635\u0627\u0644 MySQL \u0631\u0627 \u0628\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647\u200c\u062a\u0627\u0632\u06af\u06cc \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\\DB::table('migrations')-&gt;get();<\/pre>\n<p style=\"text-align: justify;\">\u0633\u067e\u0633 \u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">=&gt; Illuminate\\Support\\Collection {#2856\r\nall: [\r\n{#2862\r\n+\"id\": 1,\r\n+\"migration\": \"2014_10_12_000000_create_users_table\",\r\n+\"batch\": 1,\r\n},\r\n{#2865\r\n+\"id\": 2,\r\n+\"migration\": \"2014_10_12_100000_create_password_resets_table\",\r\n+\"batch\": 1,\r\n},\r\n],\r\n}<\/pre>\n<p style=\"text-align: justify;\">\u0634\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 tinker \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u200c\u0647\u0627\u060c \u062a\u0633\u062a \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0648 \u0645\u062f\u0644\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0628\u0627 \u0646\u0635\u0628 \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u062e\u0648\u062f\u060c \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0648 \u06a9\u0633\u0628 \u062a\u062c\u0631\u0628\u0647 \u0628\u06cc\u0634\u062a\u0631 \u0622\u0645\u0627\u062f\u0647 \u0647\u0633\u062a\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0646\u062a\u06cc\u062c\u0647\u200c\u06af\u06cc\u0631\u06cc<\/span><\/h2>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0627\u0632 <a href=\"https:\/\/parspack.com\/blog\/os\/linux\">\u0622\u0645\u0648\u0632\u0634 \u0644\u06cc\u0646\u0648\u06a9\u0633<\/a> \u0628\u0647 \u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u0644\u0627\u0631\u0627\u0648\u0644\u060c Nginx \u0648 MySQL \u0628\u0647 \u0648\u0633\u06cc\u0644\u0647 Docker Compose \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u06f2\u06f0.\u06f0\u06f4 \u067e\u0631\u062f\u0627\u062e\u062a\u06cc\u0645 \u0648 \u0633\u0639\u06cc \u06a9\u0631\u062f\u06cc\u0645 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0648 \u0645\u0631\u062d\u0644\u0647\u200c\u0628\u0647\u200c\u0645\u0631\u062d\u0644\u0647 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0622\u0645\u0648\u0632\u0634 \u062f\u0647\u06cc\u0645. \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0631\u062f\u06cc\u062f \u06a9\u0644\u06cc\u062f \u0627\u0635\u0644\u06cc \u0627\u06cc\u0646 \u0646\u0635\u0628 Docker Compose \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0628\u0627 \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631\u060c \u06af\u0631\u0648\u0647\u06cc \u0627\u0632 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc Docker \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\">\u0633\u0648\u0627\u0644\u0627\u062a \u0645\u062a\u062f\u0627\u0648\u0644<\/span><\/h2>\n<h3 style=\"text-align: justify;\"><span style=\"color: #0000ff;\">1. \u062f\u0633\u062a\u0648\u0631 docker-compose up \u0686\u06cc\u0633\u062a\u061f<\/span><\/h3>\n<p style=\"text-align: justify;\">\u062f\u0633\u062a\u0648\u0631 docker compose up \u062e\u0631\u0648\u062c\u06cc \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f (\u0645\u0637\u0627\u0628\u0642 \u0628\u0627 docker compose logs &#8211;follow does). \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 command \u0627\u06af\u0632\u06cc\u062a \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u062a\u0645\u0627\u0645 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0645\u062a\u0648\u0642\u0641 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f. \u0627\u062c\u0631\u0627\u06cc docker compose up &#8211;detach \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0628\u06a9\u200c\u06af\u0631\u0627\u0646\u062f \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u062f.<\/p>\n<h3 style=\"text-align: justify;\"><span style=\"color: #0000ff;\">2. \u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 yml. \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u0645\u061f<\/span><\/h3>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627 \u0648 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc yml. \u0628\u0627\u06cc\u062f Docker Compose \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u0646\u0635\u0628\u060c \u0628\u0647 yml. \u062f\u0631 docker-compose \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f. \u0633\u067e\u0633 docker-compose up \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0634\u0631\u0648\u0639 \u062e\u062f\u0645\u0627\u062a \u062f\u0631 docker-compose \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<h3 style=\"text-align: justify;\"><span style=\"color: #0000ff;\">3. \u062f\u0627\u06a9\u0631 \u06a9\u0627\u0645\u067e\u0648\u0632 (Docker Compose) \u0686\u06cc\u0633\u062a\u061f<\/span><\/h3>\n<p style=\"text-align: justify;\">Docker Compose \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u06a9\u0645\u06a9 \u0628\u0647 \u062a\u0639\u0631\u06cc\u0641 \u0648 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0686\u0646\u062f-\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a. \u0628\u0627 Compose\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 YAML \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0627 \u06cc\u06a9 \u0641\u0631\u0645\u0627\u0646\u060c \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u0645.<\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"\u062f\u0633\u062a\u0648\u0631 docker-compose up \u0686\u06cc\u0633\u062a\u061f\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"\u062f\u0633\u062a\u0648\u0631 docker compose up \u062e\u0631\u0648\u062c\u06cc \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f (\u0645\u0637\u0627\u0628\u0642 \u0628\u0627 docker compose logs --follow does). \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 command \u0627\u06af\u0632\u06cc\u062a \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u062a\u0645\u0627\u0645 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0645\u062a\u0648\u0642\u0641 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f. \u0627\u062c\u0631\u0627\u06cc docker compose up --detach \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0628\u06a9\u200c\u06af\u0631\u0627\u0646\u062f \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u062f.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"\u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 yml. \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u0645\u061f\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"\u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627 \u0648 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc yml. \u0628\u0627\u06cc\u062f Docker Compose \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u0646\u0635\u0628\u060c \u0628\u0647 yml. \u062f\u0631 docker-compose \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f. \u0633\u067e\u0633 docker-compose up \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0634\u0631\u0648\u0639 \u062e\u062f\u0645\u0627\u062a \u062f\u0631 docker-compose \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"\u062f\u0627\u06a9\u0631 \u06a9\u0627\u0645\u067e\u0648\u0632 (Docker Compose) \u0686\u06cc\u0633\u062a\u061f\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Docker Compose \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u06a9\u0645\u06a9 \u0628\u0647 \u062a\u0639\u0631\u06cc\u0641 \u0648 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0686\u0646\u062f-\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a. \u0628\u0627 Compose\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 YAML \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0627 \u06cc\u06a9 \u0641\u0631\u0645\u0627\u0646\u060c \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u0645.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0622\u0645\u0648\u0632\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Compose \u0648 \u0646\u0635\u0628 \u0644\u0627\u0631\u0627\u0648\u0644\u060c Nginx \u0648 MySQL \u0628\u0647 \u0648\u0633\u06cc\u0644\u0647 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 20.04 \u0627\u0631\u0627\u0626\u0647 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645.<\/p>\n","protected":false},"author":68,"featured_media":35297,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[294],"tags":[],"class_list":["post-22871","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ubuntu"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts\/22871","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/users\/68"}],"replies":[{"embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/comments?post=22871"}],"version-history":[{"count":4,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts\/22871\/revisions"}],"predecessor-version":[{"id":50269,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts\/22871\/revisions\/50269"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/media\/35297"}],"wp:attachment":[{"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/media?parent=22871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/categories?post=22871"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/tags?post=22871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}