{"id":35818,"date":"2023-04-02T11:00:08","date_gmt":"2023-04-02T06:30:08","guid":{"rendered":"https:\/\/parspack.com\/blog\/?p=35818"},"modified":"2023-04-11T12:19:58","modified_gmt":"2023-04-11T07:49:58","slug":"how-to-install-wordpress-with-docker-compose","status":"publish","type":"post","link":"https:\/\/parspack.com\/blog\/cms\/how-to-install-wordpress-with-docker-compose","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0627 Docker Compose"},"content":{"rendered":"<p style=\"text-align: justify;\"><span >\u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0627\u0628\u0632\u0627\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062d\u062a\u0648\u0627 (CMS) \u0645\u062a\u0646\u200c\u0628\u0627\u0632 \u0648 \u0631\u0627\u06cc\u06af\u0627\u0646 \u0628\u0647 \u0627\u0641\u0631\u0627\u062f\u06cc \u06a9\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u0646\u062f \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u0646\u062f\u060c \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0648\u0628\u200c\u0633\u0627\u06cc\u062a\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0648 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062f\u0627\u0646\u0634 \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u0646\u062f. \u0627\u062c\u0631\u0627\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0634\u0627\u0645\u0644 \u0646\u0635\u0628 \u067e\u0634\u062a\u0647 LAMP (\u0645\u062e\u0641\u0641 Linux, Apache, MySQL, PHP) \u06cc\u0627 LEMP (\u0645\u062e\u0641\u0641 Linux, Nginx, MySQL, PHP) \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u06a9\u0627\u0631\u06cc \u0632\u0645\u0627\u0646\u200c\u0628\u0631 \u0628\u0627\u0634\u062f. \u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f Docker Compose \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628 \u0627\u0632 \u0628\u0644\u0627\u06af \u067e\u0627\u0631\u0633 \u067e\u06a9\u060c \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0646\u062d\u0648\u0647 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0686\u0646\u062f\u200c\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc\u060c \u0634\u0627\u0645\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc MySQL \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u0648\u0628 \u0633\u0631\u0648\u0631 Nginx \u0648 \u062e\u0648\u062f \u0648\u0631\u062f\u067e\u0631\u0633 \u0648 \u0646\u06cc\u0632 \u0646\u062d\u0648\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a \u06af\u0648\u0627\u0647\u06cc SSL\/TLS \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0632\u0637\u0631\u06cc\u0642 Let\u2019s Encrypt \u0648 \u0646\u0635\u0628 \u0622\u0646 \u0631\u0648\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0622\u0645\u0648\u0632\u0634 \u062f\u0647\u06cc\u0645.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><b>\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/b><\/span><\/h2>\n<p style=\"text-align: justify;\"><span >\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0648\u0646\u062f \u062a\u0648\u0636\u06cc\u062d\u200c\u062f\u0627\u062f\u0647\u200c\u0634\u062f\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628 \u0631\u0627 \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645 \u067e\u06cc\u0634 \u0628\u0628\u0631\u06cc\u062f\u060c \u0628\u0647 \u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0646\u06cc\u0627\u0632 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a:<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li  aria-level=\"1\"><span >\u0633\u0631\u0648\u0631 \u0628\u0627 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0648\u0631\u0698\u0646 20.04 \u0628\u0647\u200c\u0647\u0645\u0631\u0627\u0647 \u06a9\u0627\u0631\u0628\u0631 \u063a\u06cc\u0631 Root \u0628\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc Sudo \u0648 \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0641\u0639\u0627\u0644<\/span><\/li>\n<li  aria-level=\"1\"><span >Docker \u0646\u0635\u0628\u200c\u0634\u062f\u0647 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631<\/span><\/li>\n<li  aria-level=\"1\"><span >Docker Compose \u0646\u0635\u0628\u200c\u0634\u062f\u0647 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631<\/span><\/li>\n<li  aria-level=\"1\"><span >\u062f\u0627\u0645\u0646\u0647\u200c\u0627\u06cc \u06a9\u0647 \u0645\u0627\u0644\u06a9\u06cc\u062a \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u0646 \u062f\u0631\u200c\u0627\u062e\u062a\u06cc\u0627\u0631 \u062e\u0648\u062f\u062a\u0627\u0646 \u0628\u0627\u0634\u062f. \u062f\u0631 \u062a\u0645\u0627\u0645\u06cc \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0628\u0647\u200c\u062c\u0627\u06cc \u062f\u0627\u0645\u0646\u0647 \u0627\u0632 your_domain \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.\u00a0<\/span><\/li>\n<li  aria-level=\"1\"><span >\u062f\u0648 \u0631\u06a9\u0648\u0631\u062f \u062b\u0628\u062a\u200c\u0634\u062f\u0647 DNS \u0628\u0647\u200c\u0635\u0648\u0631\u062a your_domain \u0648 www.your_domain \u06a9\u0647 \u0647\u0631 \u062f\u0648 \u0628\u0647 \u0622\u062f\u0631\u0633 IP \u0639\u0645\u0648\u0645\u06cc \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0627\u0634\u0627\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span >\u0647\u0646\u06af\u0627\u0645\u06cc\u200c\u06a9\u0647 \u0627\u06cc\u0646 \u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627 \u0631\u0627 \u062a\u0623\u0645\u06cc\u0646 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0631\u0648\u0646\u062f \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0627 Docker Compose \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><b>\u06af\u0627\u0645 \u0627\u0648\u0644: \u062a\u0639\u0631\u06cc\u0641 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648\u0628 \u0633\u0631\u0648\u0631<\/b><\/span><\/h2>\n<p style=\"text-align: justify;\"><span >\u0642\u0628\u0644 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc\u060c \u0627\u0648\u0644\u06cc\u0646 \u0642\u062f\u0645 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648\u0628 \u0633\u0631\u0648\u0631 Nginx \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639\u060c \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0646\u0627\u0645 \u0627\u06cc\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628 WordPress \u0627\u0633\u062a. \u0628\u0627\u200c\u0627\u06cc\u0646\u200c\u200c\u062d\u0627\u0644\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0646\u0627\u0645 \u0631\u0627 \u0628\u0647\u200c\u062f\u0644\u062e\u0648\u0627\u0647 \u062e\u0648\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0627\u06cc\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u060c \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">mkdir wordpress<\/pre>\n<p style=\"text-align: justify;\"><span >\u0633\u067e\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 cd\u060c \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f\u200c\u0634\u062f\u0647 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">cd wordpress<\/pre>\n<p style=\"text-align: justify;\"><span >\u062d\u0627\u0644\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631\u060c \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">mkdir nginx-conf<\/pre>\n<p style=\"text-align: justify;\"><span >\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0627 \u0627\u0632 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 nano \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0646\u0638\u0648\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">nano nginx-conf\/nginx.conf<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u060c \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u0633\u0631\u0648\u0631 \u0628\u0631\u0627\u06cc Name Server \u0648 \u062f\u0627\u06a9\u06cc\u0648\u0645\u0646\u062a \u0631\u0648\u062a \u0648 \u0628\u0644\u0648\u06a9\u200c\u0647\u0627\u06cc \u0644\u0648\u06a9\u06cc\u0634\u0646 (Location Block) \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0627\u0645\u06a9\u0627\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 PHP \u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a \u06af\u0648\u0627\u0647\u06cc Certbot \u0648 Request\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Asset\u200c\u0647\u0627\u06cc \u062b\u0627\u0628\u062a \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0646\u0638\u0648\u0631 \u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0628\u0627\u0632\u200c\u0634\u062f\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0642\u0633\u0645\u062a your_domain \u0631\u0627 \u0628\u0627 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0647\u200c\u200c\u0627\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">server {\r\n        listen 80;\r\n        listen [::]:80;\r\n\r\n        server_name your_domain www.your_domain;\r\n\r\n        index index.php index.html index.htm;\r\n\r\n        root \/var\/www\/html;\r\n\r\n        location ~ \/.well-known\/acme-challenge {\r\n                allow all;\r\n                root \/var\/www\/html;\r\n        }\r\n\r\n        location \/ {\r\n                try_files $uri $uri\/ \/index.php$is_args$args;\r\n        }\r\n\r\n        location ~ \\.php$ {\r\n                try_files $uri =404;\r\n                fastcgi_split_path_info ^(.+\\.php)(\/.+)$;\r\n                fastcgi_pass wordpress:9000;\r\n                fastcgi_index index.php;\r\n                include fastcgi_params;\r\n                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\r\n                fastcgi_param PATH_INFO $fastcgi_path_info;\r\n        }\r\n\r\n        location ~ \/\\.ht {\r\n                deny all;\r\n        }\r\n        \r\n        location = \/favicon.ico { \r\n                log_not_found off; access_log off; \r\n        }\r\n        location = \/robots.txt { \r\n                log_not_found off; access_log off; allow all; \r\n        }\r\n        location ~* \\.(css|gif|ico|jpeg|jpg|js|png)$ {\r\n                expires max;\r\n                log_not_found off;\r\n        }\r\n}<\/pre>\n<p style=\"text-align: justify;\"><span >\u067e\u0633 \u0627\u0632 \u0622\u0646\u06a9\u0647 \u06a9\u062f\u0647\u0627\u06cc \u0639\u0646\u0648\u0627\u0646\u200c\u0634\u062f\u0647 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u06cc\u062f\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0633\u067e\u0633 \u0622\u0646 \u0631\u0627 \u0628\u0628\u0646\u062f\u06cc\u062f. \u062f\u0631\u0635\u0648\u0631\u062a\u06cc\u200c\u06a9\u0647 \u0627\u0632 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u0645\u062a\u0646 Nano \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u062a\u0631\u06a9\u06cc\u0628\u06cc Ctrl+X \u0648 \u06a9\u0644\u06cc\u062f Y \u0648 \u062f\u0631\u200c\u0646\u0647\u0627\u06cc\u062a \u0641\u0634\u0631\u062f\u0646 Enter \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><b>\u06af\u0627\u0645 \u062f\u0648\u0645: \u062a\u063a\u06cc\u06cc\u0631 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc (Environment Variables)<\/b><\/span><\/h2>\n<p style=\"text-align: justify;\"><span >\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0631\u062f\u067e\u0631\u0633 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0628\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f. \u0627\u06cc\u0646 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0628\u0647 \u062f\u0648 \u0646\u0648\u0639 \u062d\u0633\u0627\u0633 \u0648 \u063a\u06cc\u0631\u062d\u0633\u0627\u0633 \u062a\u0642\u0633\u06cc\u0645\u200c \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0646\u0645\u0648\u0646\u0647\u060c \u0645\u062a\u063a\u06cc\u0631\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0631\u0645\u0632\u0639\u0628\u0648\u0631 Root \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 MySQL \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u062c\u0632\u0648 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u062d\u0633\u0627\u0633 \u0627\u0633\u062a\u061b \u0627\u0645\u0627 \u062f\u0631\u0645\u0642\u0627\u0628\u0644\u060c \u062e\u0648\u062f \u0646\u0627\u0645 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062f\u0631 \u062f\u0633\u062a\u0647 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u063a\u06cc\u0631\u062d\u0633\u0627\u0633 \u0642\u0631\u0627\u0631 \u062e\u0648\u0627\u0647\u062f \u06af\u0631\u0641\u062a.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0628\u0647\u200c\u062c\u0627\u06cc \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0646 \u062a\u0645\u0627\u0645\u06cc \u0627\u06cc\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631 \u0641\u0627\u06cc\u0644 Docker Compose \u06a9\u0647 \u062f\u0631\u200c\u0648\u0627\u0642\u0639 \u0641\u0627\u06cc\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0645\u0627\u0645\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u06cc\u062a\u0646\u0631\u0647\u0627 \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u0647\u060c \u0645\u0642\u0627\u062f\u06cc\u0631 \u062d\u0633\u0627\u0633 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644\u06cc \u0628\u0627 \u067e\u0633\u0648\u0646\u062f .env \u062a\u0646\u0638\u06cc\u0645 \u0648 \u06af\u0631\u062f\u0634 \u0622\u0646 \u0631\u0627 \u0646\u06cc\u0632 \u0645\u062d\u062f\u0648\u062f \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0632 \u06a9\u067e\u06cc\u200c\u0634\u062f\u0646 \u0627\u06cc\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631 \u0631\u06cc\u067e\u0648\u0632\u06cc\u062a\u0648\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627 \u0648 \u0646\u0645\u0627\u06cc\u0634 \u0639\u0645\u0648\u0645\u06cc \u0622\u0646 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u0635\u0644\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u062a\u0627\u0646 (\u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u0645\u0633\u06cc\u0631\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 ~\/wordpress \u0628\u0627\u0634\u062f) \u0641\u0627\u06cc\u0644\u06cc \u0628\u0627 \u0646\u0627\u0645 .env \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">nano .env<\/pre>\n<p style=\"text-align: justify;\"><span >\u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u062d\u0631\u0645\u0627\u0646\u0647\u200c\u0627\u06cc \u06a9\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u0645\u060c \u06cc\u06a9 \u0631\u0645\u0632\u0639\u0628\u0648\u0631 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u06cc\u0634\u0647 MySQL \u0648 \u06cc\u06a9 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632\u0639\u0628\u0648\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0648\u0631\u062f\u067e\u0631\u0633 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0646\u0627\u0645 \u0627\u06cc\u0646 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0648 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0622\u0646\u200c\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f. \u0628\u0647\u200c\u06cc\u0627\u062f \u0628\u0633\u067e\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0645\u0642\u0627\u062f\u06cc\u0631 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">MYSQL_ROOT_PASSWORD=your_root_password\r\nMYSQL_USER=your_wordpress_database_user\r\nMYSQL_PASSWORD=your_wordpress_database_password<\/pre>\n<p style=\"text-align: justify;\"><span >\u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631\u200c\u06a9\u0647 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f\u060c \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0645\u0632\u0639\u0628\u0648\u0631 \u06a9\u0627\u0631\u0628\u0631 \u0631\u06cc\u0634\u0647 MySQL \u0648 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632\u0639\u0628\u0648\u0631 \u062f\u0644\u062e\u0648\u0627\u0647 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0641\u0627\u06cc\u0644 \u0628\u0647\u200c\u0627\u062a\u0645\u0627\u0645 \u0631\u0633\u06cc\u062f\u060c \u0622\u0646 \u0631\u0627 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0628\u0627\u200c\u062a\u0648\u062c\u0647\u200c\u0628\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u0641\u0627\u06cc\u0644 .env \u0634\u0645\u0627 \u062d\u0627\u0648\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0633\u06cc \u0627\u0633\u062a\u060c \u0628\u0627\u06cc\u062f \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u062f\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc gitignore \u0648 dockerignore \u067e\u0631\u0648\u0698\u0647\u200c\u062a\u0627\u0646 \u06af\u0646\u062c\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f. \u0627\u06cc\u0646 \u062f\u0648 \u0628\u0631\u0627\u06cc Git \u0648 Docker \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u06a9\u0647 \u0686\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062f\u0631 \u0631\u06cc\u067e\u0648\u0632\u06cc\u062a\u0648\u0631\u06cc\u200c\u0647\u0627\u06cc Git \u0648 \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627\u06cc \u062f\u0627\u06a9\u0631 \u06a9\u067e\u06cc \u0646\u06a9\u0646\u0646\u062f.<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0627\u06af\u0631 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u062f \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0646\u0633\u062e\u0647 \u0627\u0632 Git \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u062c\u0627\u0632\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0631\u06cc\u067e\u0648\u0632\u06cc\u062a\u0648\u0631\u06cc \u0628\u0627 git int \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">git init<\/pre>\n<p style=\"text-align: justify;\"><span >\u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648 \u0628\u0627\u0632\u200c\u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 .gitignore \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">nano .gitignore<\/pre>\n<p style=\"text-align: justify;\"><span >.env \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">.env<\/pre>\n<p style=\"text-align: justify;\"><span >\u0647\u0646\u06af\u0627\u0645\u06cc\u200c\u06a9\u0647 \u06a9\u0627\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0641\u0627\u06cc\u0644 \u0628\u0647\u200c\u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f\u060c \u0622\u0646 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f. \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631\u200c\u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u0646\u06cc\u0632 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u06cc\u0645\u060c \u0627\u0636\u0627\u0641\u0647\u200c\u06a9\u0631\u062f\u0646 .env \u0628\u0647 \u0641\u0627\u06cc\u0644 dockerignore \u0646\u06cc\u0632 \u0627\u0642\u062f\u0627\u0645 \u0627\u062d\u062a\u06cc\u0627\u0637\u06cc \u0645\u062b\u0628\u062a\u06cc \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0646\u0638\u0648\u0631 \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">nano .dockerignore<\/pre>\n<p style=\"text-align: justify;\"><span >\u062d\u0627\u0644\u0627 \u062c\u0632\u0621 .env \u0631\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0646\u06cc\u0632 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">.env<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u0632\u06cc\u0631 \u0627\u06cc\u0646 \u062e\u0637\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc\u200c\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0646\u06cc\u0632 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u061b \u0627\u0644\u0628\u062a\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0627\u0633\u062a:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">.env\r\n.git\r\ndocker-compose.yml\r\n.dockerignore<\/pre>\n<p style=\"text-align: justify;\"><span >\u067e\u0633 \u0627\u0632 \u067e\u0627\u06cc\u0627\u0646 \u06a9\u0627\u0631\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0628\u0646\u062f\u06cc\u062f. \u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0645\u062f\u0646\u0638\u0631\u062a\u0627\u0646 \u0631\u0627 \u062f\u0631 docker-compose.yml \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u062f\u0631 \u0642\u062f\u0645 \u0628\u0639\u062f\u06cc \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/span><\/p>\n<div class=\"cta-section\">\n<p class=\"cta-description\" style=\"text-align: justify;\">\u062f\u0627\u06a9\u0631 \u0686\u06cc\u0633\u062a \u0648 \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061f \u0686\u0647 \u0645\u0632\u06cc\u062a\u200c\u0647\u0627 \u0648 \u0645\u0639\u0627\u06cc\u0628\u06cc \u062f\u0627\u0631\u062f\u061f \u0686\u0631\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u062f\u0627\u06a9\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645\u061f \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0632\u06cc\u0631 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.<\/p>\n<p><a class=\"cta-button \" href=\"https:\/\/parspack.com\/blog\/hosting\/docker-tutorial\/what-is-docker\" target=\"_blank\" rel=\"noopener\">\u062f\u0627\u06a9\u0631 \u0686\u06cc\u0633\u062a\u061f<\/a><\/p>\n<\/div>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><b>\u06af\u0627\u0645 \u0633\u0648\u0645: \u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Compose<\/b><\/span><\/h2>\n<p style=\"text-align: justify;\"><span >\u0641\u0627\u06cc\u0644 docker-composer.yml \u062d\u0627\u0648\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0628\u0647 \u0622\u0646\u200c\u0647\u0627 \u0646\u06cc\u0627\u0632 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a. \u062f\u0631\u200c\u0648\u0627\u0642\u0639\u060c \u062a\u0639\u0631\u06cc\u0641 \u0647\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0631\u0627 \u062f\u0631\u062e\u0635\u0648\u0635 \u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u0634\u062e\u0635 \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Compose\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0686\u0646\u062f\u200c\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a\u061b \u0686\u0631\u0627\u200c\u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\u060c \u062e\u0648\u062f\u0650 \u0648\u0631\u062f\u067e\u0631\u0633\u060c \u0648\u0628 \u0633\u0631\u0648\u0631 \u0648 \u0627\u062c\u0631\u0627\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a Certbot \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0628\u0627\u0632\u200c\u06a9\u0631\u062f\u0646 docker-compose.yml\u060c \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">nano docker-compose.yml<\/pre>\n<p style=\"text-align: justify;\"><span >\u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0646\u0633\u062e\u0647 \u0641\u0627\u06cc\u0644 Compose \u0648 \u0633\u0631\u0648\u06cc\u0633 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">version: '3'\r\n\r\nservices:\r\n  db:\r\n    image: mysql:8.0\r\n    container_name: db\r\n    restart: unless-stopped\r\n    env_file: .env\r\n    environment:\r\n      - MYSQL_DATABASE=wordpress\r\n    volumes: \r\n      - dbdata:\/var\/lib\/mysql\r\n    command: '--default-authentication-plugin=mysql_native_password'\r\n    networks:\r\n      - app-network<\/pre>\n<p style=\"text-align: justify;\"><span >\u0633\u067e\u0633 \u062f\u0631 \u062e\u0637 \u0628\u0639\u062f\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633 db (\u062f\u06cc\u062a\u0627\u0628\u06cc\u0633)\u060c \u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0631\u062f\u067e\u0631\u0633 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062f\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">...\r\n  wordpress:\r\n    depends_on: \r\n      - db\r\n    image: wordpress:5.1.1-fpm-alpine\r\n    container_name: wordpress\r\n    restart: unless-stopped\r\n    env_file: .env\r\n    environment:\r\n      - WORDPRESS_DB_HOST=db:3306\r\n      - WORDPRESS_DB_USER=$MYSQL_USER\r\n      - WORDPRESS_DB_PASSWORD=$MYSQL_PASSWORD\r\n      - WORDPRESS_DB_NAME=wordpress\r\n    volumes:\r\n      - wordpress:\/var\/www\/html\r\n    networks:\r\n      - app-network<\/pre>\n<p style=\"text-align: justify;\"><span >\u0628\u0639\u062f \u0627\u0632 \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0646\u0648\u0628\u062a \u0628\u0647 \u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633 \u0648\u0628 \u0633\u0631\u0648\u0631 Nginx \u0645\u06cc\u200c\u200c\u0631\u0633\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062f\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0627\u0645\u06a9\u0627\u0646\u200c\u067e\u0630\u06cc\u0631 \u0627\u0633\u062a:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">...\r\n  webserver:\r\n    depends_on:\r\n      - wordpress\r\n    image: nginx:1.15.12-alpine\r\n    container_name: webserver\r\n    restart: unless-stopped\r\n    ports:\r\n      - \"80:80\"\r\n    volumes:\r\n      - wordpress:\/var\/www\/html\r\n      - .\/nginx-conf:\/etc\/nginx\/conf.d\r\n      - certbot-etc:\/etc\/letsencrypt\r\n    networks:\r\n      - app-network<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0646\u06cc\u0632\u060c \u0628\u0627\u06cc\u062f \u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633 Certbot \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f. \u062f\u0631\u200c\u0627\u062f\u0627\u0645\u0647 \u062a\u0639\u0631\u06cc\u0641 \u0648\u0628 \u0633\u0631\u0648\u06cc\u0633\u060c \u06a9\u062f\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0633\u0631\u0648\u06cc\u0633 Certbot \u0646\u06cc\u0632 \u062a\u0639\u0631\u06cc\u0641 \u0634\u0648\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">certbot:\r\n    depends_on:\r\n      - webserver\r\n    image: certbot\/certbot\r\n    container_name: certbot\r\n    volumes:\r\n      - certbot-etc:\/etc\/letsencrypt\r\n      - wordpress:\/var\/www\/html\r\n    command: certonly --webroot --webroot-path=\/var\/www\/html --email sammy@your_domain --agree-tos --no-eff-email --staging -d your_domain -d www.your_domain<\/pre>\n<p style=\"text-align: justify;\"><span >\u062a\u0627 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a\u060c \u062a\u0645\u0627\u0645\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u062e\u0648\u062f \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f. \u062f\u0631\u200c\u0627\u062f\u0627\u0645\u0647\u060c \u0628\u0627\u06cc\u062f \u0634\u0628\u06a9\u0647 \u0648 Volume \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062f\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">...\r\nvolumes:\r\n  certbot-etc:\r\n  wordpress:\r\n  dbdata:\r\n\r\nnetworks:\r\n  app-network:\r\n    driver: bridge<\/pre>\n<p style=\"text-align: justify;\"><span >\u0628\u0627\u200c\u062a\u0648\u062c\u0647\u200c\u0628\u0647 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a\u06cc \u06a9\u0647 \u062a\u0627 \u0627\u06cc\u0646\u200c\u062c\u0627\u06cc \u0645\u0637\u0644\u0628 \u062f\u0627\u062f\u06cc\u0645\u060c \u0641\u0627\u06cc\u0644 docker-compose.yml \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062f\u0631\u0622\u0645\u062f\u0647 \u0628\u0627\u0634\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">version: '3'\r\n\r\nservices:\r\n  db:\r\n    image: mysql:8.0\r\n    container_name: db\r\n    restart: unless-stopped\r\n    env_file: .env\r\n    environment:\r\n      - MYSQL_DATABASE=wordpress\r\n    volumes: \r\n      - dbdata:\/var\/lib\/mysql\r\n    command: '--default-authentication-plugin=mysql_native_password'\r\n    networks:\r\n      - app-network\r\n\r\n  wordpress:\r\n    depends_on: \r\n      - db\r\n    image: wordpress:5.1.1-fpm-alpine\r\n    container_name: wordpress\r\n    restart: unless-stopped\r\n    env_file: .env\r\n    environment:\r\n      - WORDPRESS_DB_HOST=db:3306\r\n      - WORDPRESS_DB_USER=$MYSQL_USER\r\n      - WORDPRESS_DB_PASSWORD=$MYSQL_PASSWORD\r\n      - WORDPRESS_DB_NAME=wordpress\r\n    volumes:\r\n      - wordpress:\/var\/www\/html\r\n    networks:\r\n      - app-network\r\n\r\n  webserver:\r\n    depends_on:\r\n      - wordpress\r\n    image: nginx:1.15.12-alpine\r\n    container_name: webserver\r\n    restart: unless-stopped\r\n    ports:\r\n      - \"80:80\"\r\n    volumes:\r\n      - wordpress:\/var\/www\/html\r\n      - .\/nginx-conf:\/etc\/nginx\/conf.d\r\n      - certbot-etc:\/etc\/letsencrypt\r\n    networks:\r\n      - app-network\r\n\r\n  certbot:\r\n    depends_on:\r\n      - webserver\r\n    image: certbot\/certbot\r\n    container_name: certbot\r\n    volumes:\r\n      - certbot-etc:\/etc\/letsencrypt\r\n      - wordpress:\/var\/www\/html\r\n    command: certonly --webroot --webroot-path=\/var\/www\/html --email sammy@your_domain --agree-tos --no-eff-email --staging -d your_domain -d www.your_domain\r\n\r\nvolumes:\r\n  certbot-etc:\r\n  wordpress:\r\n  dbdata:\r\n\r\nnetworks:\r\n  app-network:\r\n    driver: bridge<\/pre>\n<p style=\"text-align: justify;\"><span >\u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u06a9\u0627\u0631\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0633\u067e\u0633 \u0628\u0628\u0646\u062f\u06cc\u062f. \u062d\u0627\u0644\u0627 \u0647\u0645\u0647\u200c\u0686\u06cc\u0632 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0648 \u062a\u0633\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06af\u0648\u0627\u0647\u06cc\u0646\u0627\u0645\u0647 \u062d\u0627\u0636\u0631 \u0627\u0633\u062a.<\/span><\/p>\n<div class=\"cta-section\">\n<p class=\"cta-description\" style=\"text-align: justify;\">\u0622\u0645\u0648\u0632\u0634 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u06cc\u062a\u0627 \u0628\u06cc\u0646 \u062f\u0627\u06a9\u0631 \u0648 \u0647\u0627\u0633\u062a \u0631\u0627 \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0632\u06cc\u0631 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.<\/p>\n<p><a class=\"cta-button \" href=\"https:\/\/parspack.com\/blog\/hosting\/share-data-between-the-docker-container-and-the-host\" target=\"_blank\" rel=\"noopener\"> \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u06cc\u062a\u0627 \u0628\u06cc\u0646 \u062f\u0627\u06a9\u0631 \u0648 \u0647\u0627\u0633\u062a<\/a><\/p>\n<\/div>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><b>\u06af\u0627\u0645 \u0686\u0647\u0627\u0631\u0645: \u062f\u0631\u06cc\u0627\u0641\u062a \u06af\u0648\u0627\u0647\u06cc\u0646\u0627\u0645\u0647 SSL<\/b><\/span><\/h2>\n<p style=\"text-align: justify;\"><span >\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 docker-compose up\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0628\u0627 \u0647\u0645\u0627\u0646 \u062a\u0631\u062a\u06cc\u0628\u06cc \u06a9\u0647 \u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u062c\u0631\u0627 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f. \u0628\u0627 \u0627\u0636\u0627\u0641\u0647\u200c\u06a9\u0631\u062f\u0646 \u0641\u0644\u06af -d\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 db \u0648 wordpress \u0648 webserver \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0627\u062c\u0631\u0627 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">docker-compose up -d<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631\u200c\u0635\u0648\u0631\u062a\u06cc\u200c\u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0628\u0647\u200c\u062f\u0631\u0633\u062a\u06cc \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0628\u0627\u0634\u0646\u062f\u060c \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Output\r\nCreating db ... done\r\nCreating wordpress ... done\r\nCreating webserver ... done\r\nCreating certbot   ... done<\/pre>\n<p style=\"text-align: justify;\"><span >\u0633\u067e\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 docker-compose ps\u060c \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">docker-compose ps<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u060c \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc wordpress \u0648 db \u0648 webserver \u062f\u0631 \u0648\u0636\u0639\u06cc\u062a UP \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f \u06a9\u0647 \u06cc\u0639\u0646\u06cc \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0628\u0627\u0644\u0627 \u0647\u0633\u062a\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0631 \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 certbot\u060c \u0639\u0628\u0627\u0631\u062a EXIT 0 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Output\r\n  Name                 Command               State           Ports       \r\n-------------------------------------------------------------------------\r\ncertbot     certbot certonly --webroot ...   Exit 0                      \r\ndb          docker-entrypoint.sh --def ...   Up       3306\/tcp, 33060\/tcp\r\nwebserver   nginx -g daemon off;             Up       0.0.0.0:80-&gt;80\/tcp \r\nwordpress   docker-entrypoint.sh php-fpm     Up       9000\/tcp<\/pre>\n<p style=\"text-align: justify;\"><span >\u0627\u06af\u0631 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc db \u0648 webserver \u0648 wordpress\u060c \u0686\u06cc\u0632\u06cc \u0628\u0647\u200c\u063a\u06cc\u0631 \u0627\u0632 Up \u0648 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc certbot\u060c \u0686\u06cc\u0632\u06cc \u0628\u0647\u200c\u063a\u06cc\u0631 \u0627\u0632 Exit 0 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f\u060c \u06cc\u0639\u0646\u06cc \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u0628\u0627\u06cc\u062f \u06af\u0632\u0627\u0631\u0634\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 docker-compose logs \u0645\u062c\u062f\u062f\u0627\u064b \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">docker-compose logs service_name<\/pre>\n<p style=\"text-align: justify;\"><span >\u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 docker-compose exec \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 webserver \u0646\u0635\u0628 \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u06cc\u0627 \u062e\u06cc\u0631:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">docker-compose exec webserver ls -la \/etc\/letsencrypt\/live<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631\u200c\u0635\u0648\u0631\u062a\u06cc\u200c\u06a9\u0647 \u0647\u0645\u0647\u200c\u0686\u06cc\u0632 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0628\u0627\u0634\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Output\r\ntotal 16\r\ndrwx------    3 root     root          4096 May 10 15:45 .\r\ndrwxr-xr-x    9 root     root          4096 May 10 15:45 ..\r\n-rw-r--r--    1 root     root           740 May 10 15:45 README\r\ndrwxr-xr-x    2 root     root          4096 May 10 15:45 your_domain<\/pre>\n<p style=\"text-align: justify;\"><span >\u062d\u0627\u0644\u0627 \u06a9\u0647 \u0627\u0632 \u0645\u0648\u0641\u0642\u06cc\u062a\u200c\u0622\u0645\u06cc\u0632\u200c\u0628\u0648\u062f\u0646 \u0641\u0631\u0627\u06cc\u0646\u062f \u062a\u0627 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0645\u0637\u0645\u0626\u0646\u200c \u0634\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u062c\u062f\u062f\u0627\u064b \u0633\u0631\u0648\u06cc\u0633 certbot \u0631\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0641\u0644\u06af &#8211;staging \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0646\u0638\u0648\u0631\u060c docker-compose.yml \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">nano docker-compose.yml<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u060c \u0642\u0633\u0645\u062a\u06cc \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 certbot \u062f\u0631 \u0622\u0646 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647\u060c \u067e\u06cc\u062f\u0627 \u0648 \u0641\u0644\u06af &#8211;staging \u0631\u0627 \u0628\u0627 &#8211;force-renewal \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0641\u0644\u06af \u0628\u0647 certbot \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u06a9\u0647 \u0634\u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc \u062c\u062f\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc \u0647\u0645\u0627\u0646 \u062f\u0627\u0645\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u062f\u0647\u06cc\u062f. \u0646\u0645\u0648\u0646\u0647 \u0632\u06cc\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">...\r\n  certbot:\r\n    depends_on:\r\n      - webserver\r\n    image: certbot\/certbot\r\n    container_name: certbot\r\n    volumes:\r\n      - certbot-etc:\/etc\/letsencrypt\r\n      - certbot-var:\/var\/lib\/letsencrypt\r\n      - wordpress:\/var\/www\/html\r\n    command: certonly --webroot --webroot-path=\/var\/www\/html --email sammy@your_domain --agree-tos --no-eff-email --force-renewal -d your_domain -d www.your_domain\r\n...<\/pre>\n<p style=\"text-align: justify;\"><span >\u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f docker-compose \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u062c\u062f\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 certbot \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0628\u0627\u200c\u062a\u0648\u062c\u0647\u200c\u0628\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 webserver \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627\u0633\u062a\u060c \u0628\u0627 \u0627\u0636\u0627\u0641\u0647\u200c\u06a9\u0631\u062f\u0646 &#8211;no-deps \u0628\u0647 \u062f\u0633\u062a\u0648\u0631\u060c \u0628\u0647 compose \u0628\u06af\u0648\u06cc\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0635\u0631\u0641\u200c\u0646\u0638\u0631 \u06a9\u0646\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">docker-compose up --force-recreate --no-deps certbot<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631\u200c\u0635\u0648\u0631\u062a\u06cc\u200c\u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u0634\u0645\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0628\u0627\u0634\u062f\u060c \u0628\u062f\u06cc\u0646\u200c\u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u062a\u0627\u0646 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Output\r\nRecreating certbot ... done\r\nAttaching to certbot\r\ncertbot      | Saving debug log to \/var\/log\/letsencrypt\/letsencrypt.log\r\ncertbot      | Plugins selected: Authenticator webroot, Installer None\r\ncertbot      | Renewing an existing certificate\r\ncertbot      | Performing the following challenges:\r\ncertbot      | http-01 challenge for your_domain\r\ncertbot      | http-01 challenge for www.your_domain\r\ncertbot      | Using the webroot path \/var\/www\/html for all unmatched domains.\r\ncertbot      | Waiting for verification...\r\ncertbot      | Cleaning up challenges\r\ncertbot      | IMPORTANT NOTES:\r\ncertbot      |  - Congratulations! Your certificate and chain have been saved at:\r\ncertbot      |    \/etc\/letsencrypt\/live\/your_domain\/fullchain.pem\r\ncertbot      |    Your key file has been saved at:\r\ncertbot      |    \/etc\/letsencrypt\/live\/your_domain\/privkey.pem\r\ncertbot      |    Your cert will expire on 2019-08-08. To obtain a new or tweaked\r\ncertbot      |    version of this certificate in the future, simply run certbot\r\ncertbot      |    again. To non-interactively renew *all* of your certificates, run\r\ncertbot      |    \"certbot renew\"\r\ncertbot      |  - Your account credentials have been saved in your Certbot\r\ncertbot      |    configuration directory at \/etc\/letsencrypt. You should make a\r\ncertbot      |    secure backup of this folder now. This configuration directory will\r\ncertbot      |    also contain certificates and private keys obtained by Certbot so\r\ncertbot      |    making regular backups of this folder is ideal.\r\ncertbot      |  - If you like Certbot, please consider supporting our work by:\r\ncertbot      | \r\ncertbot      |    Donating to ISRG \/ Let's Encrypt:   https:\/\/letsencrypt.org\/donate\r\ncertbot      |    Donating to EFF:                    https:\/\/eff.org\/donate-le\r\ncertbot      | \r\ncertbot exited with code 0<\/pre>\n<p style=\"text-align: justify;\"><span >\u0628\u0627 \u062f\u0631\u200c\u0627\u062e\u062a\u06cc\u0627\u0631\u200c\u062f\u0627\u0634\u062a\u0646 \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u060c \u0634\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06af\u0648\u0627\u0647\u06cc SSL \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u062f\u0631 \u06af\u0627\u0645 \u0628\u0639\u062f\u06cc \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/span><\/p>\n<div class=\"cta-section\">\n<p class=\"cta-description\" style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0622\u0645\u0648\u0632\u0634 \u06a9\u0627\u0645\u0644 \u0646\u0635\u0628 SSL \u062f\u0631 \u0648\u0631\u062f\u067e\u0631\u0633 \u0648 \u062b\u0628\u062a \u0633\u0627\u06cc\u062a https \u062f\u0631 \u0633\u0631\u0686 \u06a9\u0646\u0633\u0648\u0644 \u0645\u0642\u0627\u0644\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.<\/p>\n<p><a class=\"cta-button \" href=\"https:\/\/parspack.com\/blog\/security\/ssl\/ssl-setup-wordpress\" target=\"_blank\" rel=\"noopener\">\u0646\u0635\u0628 SSL \u062f\u0631 \u0648\u0631\u062f\u067e\u0631\u0633<\/a><\/p>\n<\/div>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><b>\u06af\u0627\u0645 \u067e\u0646\u062c\u0645: \u062a\u063a\u06cc\u06cc\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648\u0628 \u0633\u0631\u0648\u0631 \u0648 \u062a\u0639\u0631\u06cc\u0641 \u0633\u0631\u0648\u06cc\u0633<\/b><\/span><\/h2>\n<p style=\"text-align: justify;\"><span >\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644\u200c\u06a9\u0631\u062f\u0646 \u06af\u0648\u0627\u0647\u06cc SSL \u062f\u0631 \u0648\u0628 \u0633\u0631\u0648\u0631 Nginx\u060c \u0628\u0627\u06cc\u062f \u0631\u06cc\u200c\u062f\u0627\u06cc\u0631\u06a9\u062a\u06cc \u0627\u0632 \u067e\u0631\u0648\u062a\u06a9\u0644 HTTP \u0628\u0647 HTTPS \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f. \u0639\u0644\u0627\u0648\u0647\u200c\u0628\u0631\u200c\u0627\u06cc\u0646\u060c \u0628\u0627\u06cc\u062f \u0645\u062d\u0644 \u06af\u0648\u0627\u0647\u06cc SSL \u0648 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u06af\u0648\u0627\u0647\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u0648 \u062f\u0631\u0646\u0647\u0627\u06cc\u062a \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0631\u0627 \u0646\u06cc\u0632 \u062f\u0631 \u0647\u0650\u062f\u0650\u0631\u0647\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0628\u0627\u200c\u062a\u0648\u062c\u0647\u200c\u0628\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 webserver \u0631\u0627 \u0645\u062c\u062f\u062f\u0627\u064b \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0628\u06cc\u0641\u0632\u0627\u06cc\u06cc\u062f\u060c \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">docker-compose stop webserver<\/pre>\n<p style=\"text-align: justify;\"><span >\u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f\u060c \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u062a\u0648\u0635\u06cc\u0647\u200c\u0634\u062f\u0647 Nginx \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Curl \u0627\u0632 Certbot \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">curl -sSLo nginx-conf\/options-ssl-nginx.conf https:\/\/raw.githubusercontent.com\/certbot\/certbot\/master\/certbot-nginx\/certbot_nginx\/_internal\/tls_configs\/options-ssl-nginx.conf<\/pre>\n<p style=\"text-align: justify;\"><span >\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644\u06cc \u0628\u0627 \u0646\u0627\u0645 options-ssl-nginx.conf \u0648 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc nginx-conf \u0630\u062e\u06cc\u0631\u0647 \u0634\u0648\u0646\u062f. \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0631\u0627 \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">rm nginx-conf\/nginx.conf<\/pre>\n<p style=\"text-align: justify;\"><span >\u062d\u0627\u0644\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0633\u067e\u0633 \u0622\u0646 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">nano nginx-conf\/nginx.conf<\/pre>\n<p style=\"text-align: justify;\"><span >\u06a9\u062f\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0639\u0645\u0644\u06cc\u0627\u062a \u0631\u06cc\u200c\u062f\u0627\u06cc\u0631\u06a9\u062a \u0627\u0632 \u067e\u0631\u0648\u062a\u06a9\u0644 HTTP \u0628\u0647 HTTPS \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06af\u0648\u0627\u0647\u06cc SSL \u0646\u06cc\u0632 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f. \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647\u200c\u062c\u0627\u06cc your_domain \u0628\u0627\u06cc\u062f \u0627\u0632 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f\u062a\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">server {\r\n        listen 80;\r\n        listen [::]:80;\r\n\r\n        server_name your_domain www.your_domain;\r\n\r\n        location ~ \/.well-known\/acme-challenge {\r\n                allow all;\r\n                root \/var\/www\/html;\r\n        }\r\n\r\n        location \/ {\r\n                rewrite ^ https:\/\/$host$request_uri? permanent;\r\n        }\r\n}\r\n\r\nserver {\r\n        listen 443 ssl http2;\r\n        listen [::]:443 ssl http2;\r\n        server_name your_domain www.your_domain;\r\n\r\n        index index.php index.html index.htm;\r\n\r\n        root \/var\/www\/html;\r\n\r\n        server_tokens off;\r\n\r\n        ssl_certificate \/etc\/letsencrypt\/live\/your_domain\/fullchain.pem;\r\n        ssl_certificate_key \/etc\/letsencrypt\/live\/your_domain\/privkey.pem;\r\n\r\n        include \/etc\/nginx\/conf.d\/options-ssl-nginx.conf;\r\n\r\n        add_header X-Frame-Options \"SAMEORIGIN\" always;\r\n        add_header X-XSS-Protection \"1; mode=block\" always;\r\n        add_header X-Content-Type-Options \"nosniff\" always;\r\n        add_header Referrer-Policy \"no-referrer-when-downgrade\" always;\r\n        add_header Content-Security-Policy \"default-src * data: 'unsafe-eval' 'unsafe-inline'\" always;\r\n        # add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains; preload\" always;\r\n        # enable strict transport security only if you understand the implications\r\n\r\n        location \/ {\r\n                try_files $uri $uri\/ \/index.php$is_args$args;\r\n        }\r\n\r\n        location ~ \\.php$ {\r\n                try_files $uri =404;\r\n                fastcgi_split_path_info ^(.+\\.php)(\/.+)$;\r\n                fastcgi_pass wordpress:9000;\r\n                fastcgi_index index.php;\r\n                include fastcgi_params;\r\n                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\r\n                fastcgi_param PATH_INFO $fastcgi_path_info;\r\n        }\r\n\r\n        location ~ \/\\.ht {\r\n                deny all;\r\n        }\r\n        \r\n        location = \/favicon.ico { \r\n                log_not_found off; access_log off; \r\n        }\r\n        location = \/robots.txt { \r\n                log_not_found off; access_log off; allow all; \r\n        }\r\n        location ~* \\.(css|gif|ico|jpeg|jpg|js|png)$ {\r\n                expires max;\r\n                log_not_found off;\r\n        }\r\n}<\/pre>\n<p style=\"text-align: justify;\"><span >\u062d\u0627\u0644\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631\u060c \u0641\u0627\u06cc\u0644 docker-compose.yml \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">nano docker-compose.yml<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u0642\u0633\u0645\u062a\u06cc \u0627\u0632 \u0641\u0627\u06cc\u0644 \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 \u0648\u0628 \u0633\u0631\u0648\u0631 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c port mapping \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">...\r\n  webserver:\r\n    depends_on:\r\n      - wordpress\r\n    image: nginx:1.15.12-alpine\r\n    container_name: webserver\r\n    restart: unless-stopped\r\n    ports:\r\n      - \"80:80\"\r\n      - \"443:443\"\r\n    volumes:\r\n      - wordpress:\/var\/www\/html\r\n      - .\/nginx-conf:\/etc\/nginx\/conf.d\r\n      - certbot-etc:\/etc\/letsencrypt\r\n    networks:\r\n      - app-network<\/pre>\n<p style=\"text-align: justify;\"><span >\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646\u060c \u0646\u0633\u062e\u0647 \u06a9\u0627\u0645\u0644 \u0641\u0627\u06cc\u0644 docker-compose.yml \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0628\u0627\u0634\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">version: '3'\r\n\r\nservices:\r\n  db:\r\n    image: mysql:8.0\r\n    container_name: db\r\n    restart: unless-stopped\r\n    env_file: .env\r\n    environment:\r\n      - MYSQL_DATABASE=wordpress\r\n    volumes: \r\n      - dbdata:\/var\/lib\/mysql\r\n    command: '--default-authentication-plugin=mysql_native_password'\r\n    networks:\r\n      - app-network\r\n\r\n  wordpress:\r\n    depends_on: \r\n      - db\r\n    image: wordpress:5.1.1-fpm-alpine\r\n    container_name: wordpress\r\n    restart: unless-stopped\r\n    env_file: .env\r\n    environment:\r\n      - WORDPRESS_DB_HOST=db:3306\r\n      - WORDPRESS_DB_USER=$MYSQL_USER\r\n      - WORDPRESS_DB_PASSWORD=$MYSQL_PASSWORD\r\n      - WORDPRESS_DB_NAME=wordpress\r\n    volumes:\r\n      - wordpress:\/var\/www\/html\r\n    networks:\r\n      - app-network\r\n\r\n  webserver:\r\n    depends_on:\r\n      - wordpress\r\n    image: nginx:1.15.12-alpine\r\n    container_name: webserver\r\n    restart: unless-stopped\r\n    ports:\r\n      - \"80:80\"\r\n      - \"443:443\"\r\n    volumes:\r\n      - wordpress:\/var\/www\/html\r\n      - .\/nginx-conf:\/etc\/nginx\/conf.d\r\n      - certbot-etc:\/etc\/letsencrypt\r\n    networks:\r\n      - app-network\r\n\r\n  certbot:\r\n    depends_on:\r\n      - webserver\r\n    image: certbot\/certbot\r\n    container_name: certbot\r\n    volumes:\r\n      - certbot-etc:\/etc\/letsencrypt\r\n      - wordpress:\/var\/www\/html\r\n    command: certonly --webroot --webroot-path=\/var\/www\/html --email sammy@your_domain --agree-tos --no-eff-email --force-renewal -d your_domain -d www.your_domain\r\n\r\nvolumes:\r\n  certbot-etc:\r\n  wordpress:\r\n  dbdata:\r\n\r\nnetworks:\r\n  app-network:\r\n    driver: bridge<\/pre>\n<p style=\"text-align: justify;\"><span >\u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0641\u0627\u06cc\u0644 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0628\u0647\u200c\u0627\u062a\u0645\u0627\u0645 \u0631\u0633\u06cc\u062f\u060c \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0628\u0646\u062f\u06cc\u062f. \u0633\u067e\u0633\u060c \u0633\u0631\u0648\u06cc\u0633 webserver \u0631\u0627 \u0645\u062c\u062f\u062f\u0627\u064b \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">docker-compose up -d --force-recreate --no-deps webserver<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631\u0627\u062f\u0627\u0645\u0647\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 docker-compose ps\u060c \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0645\u062c\u062f\u062f\u0627\u064b \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">docker-compose ps<\/pre>\n<p style=\"text-align: justify;\"><span >\u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0627\u06cc\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u062f \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc wordpress \u0648 db \u0648 webserver \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0647\u0633\u062a\u0646\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Output\r\n  Name                 Command               State                     Ports                  \r\n----------------------------------------------------------------------------------------------\r\ncertbot     certbot certonly --webroot ...   Exit 0                                           \r\ndb          docker-entrypoint.sh --def ...   Up       3306\/tcp, 33060\/tcp                     \r\nwebserver   nginx -g daemon off;             Up       0.0.0.0:443-&gt;443\/tcp, 0.0.0.0:80-&gt;80\/tcp\r\nwordpress   docker-entrypoint.sh php-fpm     Up       9000\/tcp<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631\u200c\u0635\u0648\u0631\u062a\u06cc\u200c\u06a9\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0628\u0627\u0634\u0646\u062f\u060c \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0627\u0628\u0637 \u0648\u0628 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f. \u0646\u062d\u0648\u0647 \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u062f\u0631 \u06af\u0627\u0645 \u0628\u0639\u062f\u06cc \u0628\u0647\u200c\u0637\u0648\u0631\u06a9\u0627\u0645\u0644 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/span><\/p>\n<div class=\"cta-section\">\n<p class=\"cta-description\" style=\"text-align: justify;\">\u0647\u0631 \u0622\u0646\u0686\u0647 \u0628\u0627\u06cc\u062f \u062f\u0631\u0628\u0627\u0631\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062d\u062a\u0648\u0627\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u062f\u0627\u0646\u06cc\u062f \u0631\u0627 \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0632\u06cc\u0631 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.<\/p>\n<p><a class=\"cta-button \" href=\"https:\/\/parspack.com\/blog\/cms\/wordpress\/what-is-wordpress\" target=\"_blank\" rel=\"noopener\">\u0648\u0631\u062f\u067e\u0631\u0633 \u0686\u06cc\u0633\u062a\u061f<\/a><\/p>\n<\/div>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><b>\u06af\u0627\u0645 \u0634\u0634\u0645: \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0627\u0628\u0637 \u0648\u0628<\/b><\/span><\/h2>\n<p style=\"text-align: justify;\"><span >\u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631\u200c\u06a9\u0647 \u062f\u0631 \u0627\u0646\u062a\u0647\u0627\u06cc \u0628\u062e\u0634 \u0642\u0628\u0644\u06cc \u0646\u06cc\u0632 \u06af\u0641\u062a\u06cc\u0645\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0627\u0628\u0637 \u0648\u0628 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0641\u0642\u0637 \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u06a9\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0628\u0627\u0634\u0646\u062f. \u0628\u0639\u062f \u0627\u0632 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639\u060c \u062f\u0627\u0645\u0646\u0647 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a\u062a\u0627\u0646 \u0631\u0627 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">https:\/\/your_domain\r\n<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u06af\u0627\u0645 \u0628\u0639\u062f\u06cc\u060c \u0632\u0628\u0627\u0646\u06cc \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0631\u200c\u0627\u0633\u0627\u0633 \u0622\u0646 \u0646\u0635\u0628 \u0634\u0648\u062f\u060c \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<p style=\"text-align: justify;\"><figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2023\/03\/install-wordpress-with-docker-compose1.jpg\" class=\"wp-image-34723 size-full aligncenter\" alt=\" \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0648\u06cc \u062f\u0627\u06a9\u0631\"      width=\"750\" height=\"519\"  ><\/figure><\/p>\n<p style=\"text-align: center;\"><span style=\"font-size: 8px; color: #999999;\">\u0632\u0628\u0627\u0646 \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0628\u0639\u062f \u0627\u0632 \u0627\u0646\u062a\u062e\u0627\u0628 \u0632\u0628\u0627\u0646 \u0648 \u06a9\u0644\u06cc\u06a9 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 Continue\u060c \u0628\u0647 \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0647\u062f\u0627\u06cc\u062a \u062e\u0648\u0627\u0647\u06cc\u062f \u0634\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0635\u0641\u062d\u0647\u060c \u0628\u0627\u06cc\u062f \u0646\u0627\u0645\u06cc \u0628\u0631\u0627\u06cc \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0648 \u0646\u06cc\u0632 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632\u0639\u0628\u0648\u0631\u06cc \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u067e\u06cc\u0634\u062e\u0648\u0627\u0646 \u0648\u0631\u062f\u067e\u0631\u0633 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f. \u0627\u0632\u0646\u0638\u0631 \u0627\u0645\u0646\u06cc\u062a\u06cc\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647\u200c\u063a\u06cc\u0631 \u0627\u0632 admin \u062f\u0631 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0631\u0645\u0632\u0639\u0628\u0648\u0631 \u0647\u0645 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062e\u0648\u062f\u062a\u0627\u0646 \u0631\u0645\u0632\u0639\u0628\u0648\u0631 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0628\u0647 \u0648\u0631\u062f\u067e\u0631\u0633 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u062a\u0627 \u0631\u0645\u0632\u0639\u0628\u0648\u0631\u06cc \u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc\u062a\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u062f.<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u062f\u0631\u200c\u0627\u062f\u0627\u0645\u0647\u060c \u0628\u0627\u06cc\u062f \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u0648 \u062a\u0635\u0645\u06cc\u0645 \u0628\u06af\u06cc\u0631\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u0648\u062a\u0648\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u200c\u0648\u062c\u0648 \u0635\u0641\u062d\u0627\u062a \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0634\u0645\u0627 \u0631\u0627 index \u06a9\u0646\u0646\u062f \u06cc\u0627 \u062e\u06cc\u0631\u061b \u0627\u0644\u0628\u062a\u0647 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0647\u0645\u0647 \u0645\u0627 \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0631\u0627 Crawler\u0647\u0627\u06cc \u06af\u0648\u06af\u0644 \u06cc\u0627 \u0633\u0627\u06cc\u0631 \u0645\u0648\u062a\u0648\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u200c\u0648\u062c\u0648 \u0628\u0628\u06cc\u0646\u0646\u062f:<\/span><\/p>\n<p style=\"text-align: justify;\"><figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2023\/03\/install-wordpress-with-docker-compose2.jpg\" class=\"size-full wp-image-34724 aligncenter\" alt=\"\u0622\u0645\u0648\u0632\u0634 \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0648\u06cc \u062f\u0627\u06a9\u0631\"      width=\"750\" height=\"519\"  ><\/figure><\/p>\n<p style=\"text-align: center;\"><span style=\"font-size: 8px; color: #999999;\">\u0645\u0634\u062e\u0635\u0627\u062a \u0645\u062b\u0644 \u0646\u0627\u0645 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a\u060c \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc\u060c \u0631\u0645\u0632\u0639\u0628\u0648\u0631 \u0648 \u0645\u0648\u0627\u0631\u062f \u0645\u0634\u0627\u0628\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0645\u0648\u0627\u0631\u062f \u062e\u0648\u0627\u0633\u062a\u0647\u200c\u0634\u062f\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u06cc\u062f\u060c \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 Install WordPress \u062f\u0631 \u067e\u0627\u06cc\u06cc\u0646 \u0635\u0641\u062d\u0647 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646\u200c \u0635\u0648\u0631\u062a\u060c \u0635\u0641\u062d\u0647\u200c\u0627\u06cc \u0628\u0631\u0627\u06cc\u062a\u0627\u0646 \u0628\u0627\u0632 \u062e\u0648\u0627\u0647\u062f \u0634\u062f \u06a9\u0647 \u0646\u062a\u06cc\u062c\u0647 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0627 \u0628\u0647 \u0634\u0645\u0627 \u06af\u0632\u0627\u0631\u0634 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u062f:<\/span><\/p>\n<p style=\"text-align: justify;\"><figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2023\/03\/install-wordpress-with-docker-compose3.jpg\" class=\"size-full wp-image-34725 aligncenter\" alt=\"\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u062f\u0631 docker compose\"      width=\"750\" height=\"459\"  ><\/figure><\/p>\n<p style=\"text-align: center;\"><span style=\"font-size: 8px; color: #999999;\">\u0631\u0648\u06cc \u06af\u0632\u06cc\u0646\u0647 Log In \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632\u0639\u0628\u0648\u0631\u06cc \u06a9\u0647 \u062f\u0631 \u0642\u0633\u0645\u062a \u0642\u0628\u0644\u06cc \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f\u060c \u0628\u0647 \u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u0648 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u062e\u0648\u062f \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<p style=\"text-align: justify;\"><figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2023\/03\/install-wordpress-with-docker-compose4.jpg\" class=\"size-full wp-image-34726 aligncenter\" alt=\"\u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0648\u06cc docker\"      width=\"750\" height=\"393\"  ><\/figure><\/p>\n<p style=\"text-align: center;\"><span style=\"font-size: 8px; color: #999999;\">\u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0648\u0627\u0631\u062f <span >\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0634\u062f\u06cc\u062f<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0646\u0635\u0628 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0627\u0642\u062f\u0627\u0645\u0627\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u062a\u0627 \u0627\u0632 \u062a\u0645\u062f\u06cc\u062f \u062e\u0648\u062f\u06a9\u0627\u0631 \u06af\u0648\u0627\u0647\u06cc SSL \u062e\u0648\u062f \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><b>\u06af\u0627\u0645 \u0647\u0641\u062a\u0645: \u062a\u0645\u062f\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc SSL<\/b><\/span><\/h2>\n<p style=\"text-align: justify;\"><span >\u06af\u0648\u0627\u0647\u06cc\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc SSL \u0635\u0627\u062f\u0631\u200c\u0634\u062f\u0647 Let\u2019s Encrypt \u0646\u0648\u062f \u0631\u0648\u0632 \u0627\u0639\u062a\u0628\u0627\u0631 \u062f\u0627\u0631\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0645\u0637\u0645\u0626\u0646 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0642\u0628\u0644 \u0627\u0632 \u0627\u0646\u0642\u0636\u0627\u06cc \u062a\u0627\u0631\u06cc\u062e \u0627\u06cc\u0646 \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627 \u0645\u062c\u062f\u062f\u0627\u064b \u062a\u0645\u062f\u06cc\u062f \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0641\u0631\u0627\u06cc\u0646\u062f \u062a\u0645\u062f\u06cc\u062f \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0631\u0622\u0648\u0631\u06cc\u062f. \u06cc\u06a9\u06cc \u0627\u0632 \u0631\u0627\u0647\u200c\u0647\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0632\u0645\u0627\u0646\u200c\u0628\u0646\u062f\u06cc \u0628\u0627 Cron \u0627\u0633\u062a.<\/span><\/p>\n<p style=\"text-align: justify;\"><span >\u062f\u0631\u200c\u0627\u062f\u0627\u0645\u0647\u060c \u0646\u062d\u0648\u0647 \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0622\u0645\u0648\u0632\u0634 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0641\u0631\u0627\u06cc\u0646\u062f \u062a\u0645\u062f\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0646\u06cc\u0632 \u0645\u062c\u062f\u062f\u0627\u064b \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639\u060c \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u06cc \u0628\u0627 \u0646\u0627\u0645 ssl_renew.sh \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">nano ssl_renew.sh<\/pre>\n<p style=\"text-align: justify;\"><span >\u0628\u0627 \u0627\u0636\u0627\u0641\u0647\u200c\u06a9\u0631\u062f\u0646 \u06a9\u062f \u0632\u06cc\u0631 \u0628\u0647 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u060c \u0641\u0631\u0627\u06cc\u0646\u062f \u062a\u0645\u062f\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc \u0631\u0627 \u0628\u0647\u200c\u0637\u0648\u0631\u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0631\u0622\u0648\u0631\u06cc\u062f \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648\u0628 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0646\u06cc\u0632 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f. \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062f\u0631\u062c\u200c\u0634\u062f\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u0631\u0627 \u0628\u0627\u06cc\u062f \u0628\u0627 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631 \u063a\u06cc\u0631\u0631\u06cc\u0634\u0647 \u062e\u0648\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#!\/bin\/bash\r\n\r\nCOMPOSE=\"\/usr\/local\/bin\/docker-compose --no-ansi\"\r\nDOCKER=\"\/usr\/bin\/docker\"\r\n\r\ncd \/home\/sammy\/wordpress\/\r\n$COMPOSE run certbot renew --dry-run &amp;&amp; $COMPOSE kill -s SIGHUP webserver\r\n$DOCKER system prune -af<\/pre>\n<p style=\"text-align: justify;\"><span >\u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u0648\u06cc\u0631\u0627\u06cc\u0634\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0628\u0646\u062f\u06cc\u062f \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0622\u0646 \u0631\u0627 \u0627\u062c\u0631\u0627\u06cc\u06cc \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">chmod +x ssl_renew.sh<\/pre>\n<p style=\"text-align: justify;\"><span >\u0633\u067e\u0633\u060c \u0641\u0627\u06cc\u0644 corntab \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 sudo \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">sudo crontab -e<\/pre>\n<p style=\"text-align: justify;\"><span >\u0627\u06af\u0631 \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646\u200c\u0628\u0627\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627\u0632 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0627\u0632 \u0634\u0645\u0627 \u062e\u0648\u0627\u0633\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0646\u0638\u0648\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Output\r\nno crontab for root - using an empty one\r\n\r\nSelect an editor.  To change later, run 'select-editor'.\r\n  1. \/bin\/nano        &lt;---- easiest\r\n  2. \/usr\/bin\/vim.basic\r\n  3. \/usr\/bin\/vim.tiny\r\n  4. \/bin\/ed\r\n\r\nChoose 1-4 [1]:\r\n...<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u0627\u0646\u062a\u0647\u0627\u06cc \u0641\u0627\u06cc\u0644\u060c \u062e\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">...\r\n*\/5 * * * * \/home\/sammy\/wordpress\/ssl_renew.sh &gt;&gt; \/var\/log\/cron.log 2&gt;&amp;1<\/pre>\n<p style=\"text-align: justify;\"><span >\u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u062f\u0633\u062a\u0648\u0631 \u0647\u0631 \u06f5 \u062f\u0642\u06cc\u0642\u0647 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u0628\u0639\u062f \u0627\u0632 \u06f5 \u062f\u0642\u06cc\u0642\u0647\u060c \u0641\u0627\u06cc\u0644 cron.log \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0645\u062f\u06cc\u062f \u0645\u0648\u0641\u0642\u06cc\u062a\u200c\u0622\u0645\u06cc\u0632 \u0628\u0648\u062f\u0647 \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">tail -f \/var\/log\/cron.log<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631\u200c\u0635\u0648\u0631\u062a\u06cc\u200c\u06a9\u0647 \u0628\u0627 \u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0645\u0648\u0627\u062c\u0647 \u0634\u062f\u06cc\u062f\u060c \u06cc\u0639\u0646\u06cc \u0645\u0631\u0627\u062d\u0644 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Output\r\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n** DRY RUN: simulating 'certbot renew' close to cert expiry\r\n**          (The test certificates below have not been saved.)\r\n\r\nCongratulations, all renewals succeeded. The following certs have been renewed:\r\n  \/etc\/letsencrypt\/live\/your_domain\/fullchain.pem (success)\r\n** DRY RUN: simulating 'certbot renew' close to cert expiry\r\n**          (The test certificates above have not been saved.)\r\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<\/pre>\n<p style=\"text-align: justify;\"><span >\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u062a\u0631\u06a9\u06cc\u0628\u06cc Ctrl+C\u060c \u0627\u0632 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f. \u062f\u0631\u200c\u0635\u0648\u0631\u062a\u06cc\u200c\u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0647\u0631\u0631\u0648\u0632 \u062a\u06a9\u0631\u0627\u0631 \u0634\u0648\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u062e\u0631\u06cc\u0646 \u062e\u0637 \u06a9\u062f \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">...\r\n0 12 * * * \/home\/sammy\/wordpress\/ssl_renew.sh &gt;&gt; \/var\/log\/cron.log 2&gt;&amp;1<\/pre>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u0627\u06cc\u0646\u200c \u0635\u0648\u0631\u062a\u060c \u0641\u0631\u0627\u06cc\u0646\u062f \u062a\u0645\u062f\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc \u0647\u0631\u0631\u0648\u0632 \u062f\u0631 \u0633\u0627\u0639\u062a \u06f1\u06f2 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06af\u0632\u06cc\u0646\u0647 &#8211;dry-run \u0631\u0627 \u0627\u0632 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#!\/bin\/bash\r\n\r\nCOMPOSE=\"\/usr\/local\/bin\/docker-compose --no-ansi\"\r\nDOCKER=\"\/usr\/bin\/docker\"\r\n\r\ncd \/home\/sammy\/wordpress\/\r\n$COMPOSE run certbot renew &amp;&amp; $COMPOSE kill -s SIGHUP webserver\r\n$DOCKER system prune -af<\/pre>\n<h2 style=\"text-align: justify;\"><a href=\"https:\/\/parspack.com\/host\/wordpress\" target=\"_blank\" rel=\"noopener\"><figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" data-loaded=\"true\" src=\"https:\/\/parspack.com\/blog\/wp-content\/uploads\/2022\/08\/Host-Wordpress-700X90.gif\" class=\"size-full wp-image-28185 aligncenter\" alt=\"\u062e\u0631\u06cc\u062f \u0647\u0627\u0633\u062a \u0648\u0631\u062f\u067e\u0631\u0633\"      width=\"700\" height=\"90\"  ><\/figure><\/a><\/h2>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><b>\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/b><\/span><\/h2>\n<p style=\"text-align: justify;\"><span >\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628 \u0622\u0645\u0648\u0632\u0634\u06cc \u0627\u0632 \u0628\u0644\u0627\u06af \u067e\u0627\u0631\u0633 \u067e\u06a9\u060c \u0646\u062d\u0648\u0647 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0631\u0627\u06cc \u0648\u0628 \u0633\u0631\u0648\u0631 Nginx \u0628\u0627 Docker Compose \u0631\u0627 \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u06cc\u0645. \u062a\u0645\u0627\u0645\u06cc \u0645\u0631\u0627\u062d\u0644 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645 \u0648 \u0628\u0627 \u062f\u0631\u062c \u062a\u0645\u0627\u0645\u06cc \u06a9\u062f\u0647\u0627 \u0648 \u062f\u0633\u062a\u0648\u0631\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a \u062a\u0627 \u062f\u063a\u062f\u063a\u0647\u200c\u0627\u06cc \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0646\u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u062f\u0631 \u0627\u0646\u062a\u0647\u0627 \u0646\u06cc\u0632\u060c \u0646\u062d\u0648\u0647 \u062e\u0648\u062f\u06a9\u0627\u0631\u0633\u0627\u0632\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u06af\u0648\u0627\u0647\u06cc SSL \u0627\u0632 Let\u2019s Encrypt \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Cron \u0631\u0627 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u06cc\u0645.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><b>\u0633\u0624\u0627\u0644\u0627\u062a \u0645\u062a\u062f\u0627\u0648\u0644<\/b><\/span><\/h2>\n<h3 style=\"text-align: justify;\"><span style=\"color: #0000ff;\"><b>\u06f1. Docker Compose \u0686\u06cc\u0633\u062a\u061f<\/b><\/span><\/h3>\n<p style=\"text-align: justify;\"><span >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 \u0628\u0647\u200c\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 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a.\u00a0<\/span><\/p>\n<h3 style=\"text-align: justify;\"><span style=\"color: #0000ff;\"><b>\u06f2. \u0622\u06cc\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Compose \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0633\u062a\u061f<\/b><\/span><\/h3>\n<p style=\"text-align: justify;\"><span >\u0628\u0644\u0647\u060c \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0647\u0646\u06af\u0627\u0645 \u0646\u0635\u0628 Docker \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0646\u06cc\u0632 \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0633\u062a.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><span style=\"color: #0000ff;\"><b>\u06f3. \u0622\u06cc\u0627 \u062a\u0645\u062f\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc SSL \u0627\u0632 Let\u2019s Encrypt \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0633\u062a\u061f<\/b><\/span><\/h3>\n<p style=\"text-align: justify;\"><span >\u0628\u0644\u0647\u060c \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631\u200c\u06a9\u0647 \u0635\u062f\u0648\u0631 \u06af\u0648\u0627\u0647\u06cc SSL \u0627\u0632 Let\u2019s Encrypt \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0633\u062a\u060c \u062a\u0645\u062f\u06cc\u062f \u0627\u06cc\u0646 \u06af\u0648\u0627\u0647\u06cc \u0647\u0645 \u0628\u0647\u200c\u200c\u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/span><br \/>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"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 \u0628\u0647\u200c\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 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0633\u062a.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"\u0622\u06cc\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Compose \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0633\u062a\u061f\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"\u0628\u0644\u0647\u060c \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0647\u0646\u06af\u0627\u0645 \u0646\u0635\u0628 Docker \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0646\u06cc\u0632 \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0633\u062a.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"\u0622\u06cc\u0627 \u062a\u0645\u062f\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc SSL \u0627\u0632 Let\u2019s Encrypt \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0633\u062a\u061f\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"\u0628\u0644\u0647\u060c \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631\u200c\u06a9\u0647 \u0635\u062f\u0648\u0631 \u06af\u0648\u0627\u0647\u06cc SSL \u0627\u0632 Let\u2019s Encrypt \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0633\u062a\u060c \u062a\u0645\u062f\u06cc\u062f \u0627\u06cc\u0646 \u06af\u0648\u0627\u0647\u06cc \u0647\u0645 \u0628\u0647\u200c\u200c\u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u06af\u0631 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0648\u06cc \u0648\u0628 \u0633\u0631\u0648\u0631 Nginx \u0628\u0627 Docker Compose \u0647\u0633\u062a\u06cc\u062f \u0648 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0631\u0648\u0634 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0648\u06cc \u062f\u0627\u06a9\u0631 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u06af\u0627\u0645 \u0628\u0647\u200c\u06af\u0627\u0645 \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u06cc\u062f\u060c \u0628\u0627 \u0645\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627\u0634\u06cc\u062f.<\/p>\n","protected":false},"author":71,"featured_media":35823,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[199],"tags":[1256],"class_list":["post-35818","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cms","tag-1256"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts\/35818","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\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/comments?post=35818"}],"version-history":[{"count":2,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts\/35818\/revisions"}],"predecessor-version":[{"id":35826,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts\/35818\/revisions\/35826"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/media\/35823"}],"wp:attachment":[{"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/media?parent=35818"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/categories?post=35818"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/tags?post=35818"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}