{"id":70702,"date":"2024-07-25T04:28:01","date_gmt":"2024-07-25T00:58:01","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/configure-https-for-wordpress-on-docker-using-nginx-as-a-reverse-proxy-1a6c\/"},"modified":"2024-07-25T04:28:01","modified_gmt":"2024-07-25T00:58:01","slug":"configure-https-for-wordpress-on-docker-using-nginx-as-a-reverse-proxy-1a6c","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/configure-https-for-wordpress-on-docker-using-nginx-as-a-reverse-proxy-1a6c\/","title":{"rendered":"\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc HTTPS \u0628\u0631\u0627\u06cc WordPress \u062f\u0631 Docker \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 NGINX \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 &#8211; \u0627\u0646\u062c\u0645\u0646 DEV"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0638\u0631\u0641 Docker \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u0627\u0645\u0627 \u062f\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc HTTPS \u0645\u0634\u06a9\u0644 \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u0631\u0627\u062d\u0644 \u0632\u06cc\u0631 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u062f!<\/p>\n<p>  \u0622\u0647\u0646\u06af\u0633\u0627\u0632\u06cc docker-compose.yml \u0641\u0627\u06cc\u0644<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 docker-compose.yml \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u062e\u062f\u0645\u0627\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645.<\/p>\n<p>  \u0627\u0628\u062a\u062f\u0627\u060c \u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 db \u0628\u0647 \u062e\u062f\u0645\u0627\u062a<\/p>\n<p>db:<br \/>\n    image: mysql:5.7<br \/>\n    container_name: db<br \/>\n    ports:<br \/>\n      &#8211; &#8220;3306:3306&#8221;<br \/>\n    environment:<br \/>\n      MYSQL_DATABASE: wordpress<br \/>\n      MYSQL_USER: notanotheruser<br \/>\n      MYSQL_PASSWORD: 1234<br \/>\n      MYSQL_ROOT_PASSWORD: root1234<br \/>\n    volumes:<br \/>\n      &#8211; db_data:\/var\/lib\/mysql<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0641\u0634\u0627\u06cc \u0622\u0646 \u0647\u0633\u062a\u06cc\u0645 port 3306 \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0627 MySQL Workbench \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u0645 \u062a\u0627 \u0646\u06af\u0627\u0647 \u0628\u0647\u062a\u0631\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645.<br \/>\n\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0639\u0628\u0648\u0631 \u0627\u0632 environment variables \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u0631 MySQL \u0637\u0628\u0642 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a<\/p>\n<p>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 volume \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u0631 MySQL \u062d\u062a\u06cc \u067e\u0633 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062e\u0627\u0645\u0648\u0634 \u06a9\u0631\u062f\u06cc\u0645.<\/p>\n<p>  \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 db \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u06cc\u0645\u060c \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 wordpress \u0628\u0647 \u062e\u062f\u0645\u0627\u062a<\/p>\n<p>wordpress:<br \/>\n    depends_on:<br \/>\n      &#8211; db<br \/>\n    image: wordpress:latest<br \/>\n    container_name: wordpress<br \/>\n    environment:<br \/>\n      WORDPRESS_DB_HOST: db<br \/>\n      WORDPRESS_DB_USER: notanotheruser<br \/>\n      WORDPRESS_DB_PASSWORD: 1234<br \/>\n      WORDPRESS_DB_NAME: wordpress<br \/>\n    volumes:<br \/>\n      &#8211; .\/wordpress\/wp-config.php:\/var\/www\/html\/wp-config.php<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0647\u0633\u062a\u06cc\u0645 depends_on: db \u0632\u06cc\u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0633\u0631\u0648\u06cc\u0633 db \u0642\u0628\u0644 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 wordpress \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u0648\u062f.<br \/>\n\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0639\u0628\u0648\u0631 \u0627\u0632 environment variables \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0637\u0628\u0642 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a<\/p>\n<p>\u0628\u0627\u06cc\u062f \u0631\u0648\u0646\u0648\u06cc\u0633\u06cc \u06a9\u0646\u06cc\u0645 wp-config.php \u0641\u0627\u06cc\u0644 \u062f\u0631 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0627 \u062e\u0648\u062f\u0645\u0627\u0646 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u062e\u0637 \u06a9\u0647 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 https \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0622\u0646 \u0627\u06cc\u0646 \u0627\u0633\u062a: $_SERVER[&#8216;HTTPS&#8217;] = &#8216;on&#8217;;<\/p>\n<p>\u0622 wp-config.php \u0641\u0627\u06cc\u0644 \u0645\u062d\u0644\u06cc \u0628\u0627\u06cc\u062f \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0628\u0627\u0634\u062f:<\/p>\n<p>\/**<br \/>\n * The base configuration for WordPress<br \/>\n *<br \/>\n * The wp-config.php creation script uses this file during the installation.<br \/>\n * You don&#8217;t have to use the website, you can copy this file to &#8220;wp-config.php&#8221;<br \/>\n * and fill in the values.<br \/>\n *<br \/>\n * This file contains the following configurations:<br \/>\n *<br \/>\n * * Database settings<br \/>\n * * Secret keys<br \/>\n * * Database table prefix<br \/>\n * * ABSPATH<br \/>\n *<br \/>\n * This has been slightly modified (to read environment variables) for use in Docker.<br \/>\n *<br \/>\n * @link https:\/\/developer.wordpress.org\/advanced-administration\/wordpress\/wp-config\/<br \/>\n *<br \/>\n * @package WordPress<br \/>\n *\/<\/p>\n<p>\/\/ IMPORTANT: this file needs to stay in-sync with https:\/\/github.com\/WordPress\/WordPress\/blob\/master\/wp-config-sample.php<br \/>\n\/\/ (it gets parsed by the upstream wizard in https:\/\/github.com\/WordPress\/WordPress\/blob\/f27cb65e1ef25d11b535695a660e7282b98eb742\/wp-admin\/setup-config.php#L356-L392)<\/p>\n<p>\/\/ a helper function to lookup &#8220;env_FILE&#8221;, &#8220;env&#8221;, then fallback<br \/>\nif (!function_exists(&#8216;getenv_docker&#8217;)) {<br \/>\n    \/\/ https:\/\/github.com\/docker-library\/wordpress\/issues\/588 (WP-CLI will load this file 2x)<br \/>\n    function getenv_docker($env, $default) {<br \/>\n        if ($fileEnv = getenv($env . &#8216;_FILE&#8217;)) {<br \/>\n            return rtrim(file_get_contents($fileEnv), &#8220;\\r\\n&#8221;);<br \/>\n        }<br \/>\n        else if (($val = getenv($env)) !== false) {<br \/>\n            return $val;<br \/>\n        }<br \/>\n        else {<br \/>\n            return $default;<br \/>\n        }<br \/>\n    }<br \/>\n}<\/p>\n<p>\/\/ ** Database settings &#8211; You can get this info from your web host ** \/\/<br \/>\n\/** The name of the database for WordPress *\/<br \/>\ndefine( &#8216;DB_NAME&#8217;, getenv_docker(&#8216;WORDPRESS_DB_NAME&#8217;, &#8216;wordpress&#8217;) );<\/p>\n<p>\/** Database username *\/<br \/>\ndefine( &#8216;DB_USER&#8217;, getenv_docker(&#8216;WORDPRESS_DB_USER&#8217;, &#8216;example username&#8217;) );<\/p>\n<p>\/** Database password *\/<br \/>\ndefine( &#8216;DB_PASSWORD&#8217;, getenv_docker(&#8216;WORDPRESS_DB_PASSWORD&#8217;, &#8216;example password&#8217;) );<\/p>\n<p>\/**<br \/>\n * Docker image fallback values above are sourced from the official WordPress installation wizard:<br \/>\n * https:\/\/github.com\/WordPress\/WordPress\/blob\/1356f6537220ffdc32b9dad2a6cdbe2d010b7a88\/wp-admin\/setup-config.php#L224-L238<br \/>\n * (However, using &#8220;example username&#8221; and &#8220;example password&#8221; in your database is strongly discouraged.  Please use strong, random credentials!)<br \/>\n *\/<\/p>\n<p>\/** Database hostname *\/<br \/>\ndefine( &#8216;DB_HOST&#8217;, getenv_docker(&#8216;WORDPRESS_DB_HOST&#8217;, &#8216;mysql&#8217;) );<\/p>\n<p>\/** Database charset to use in creating database tables. *\/<br \/>\ndefine( &#8216;DB_CHARSET&#8217;, getenv_docker(&#8216;WORDPRESS_DB_CHARSET&#8217;, &#8216;utf8&#8217;) );<\/p>\n<p>\/** The database collate type. Don&#8217;t change this if in doubt. *\/<br \/>\ndefine( &#8216;DB_COLLATE&#8217;, getenv_docker(&#8216;WORDPRESS_DB_COLLATE&#8217;, &#8221;) );<\/p>\n<p>\/**#@+<br \/>\n * Authentication unique keys and salts.<br \/>\n *<br \/>\n * Change these to different unique phrases! You can generate these using<br \/>\n * the {@link https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/ WordPress.org secret-key service}.<br \/>\n *<br \/>\n * You can change these at any point in time to invalidate all existing cookies.<br \/>\n * This will force all users to have to log in again.<br \/>\n *<br \/>\n * @since 2.6.0<br \/>\n *\/<br \/>\ndefine( &#8216;AUTH_KEY&#8217;,         getenv_docker(&#8216;WORDPRESS_AUTH_KEY&#8217;,         &#8216;a04e06eaef05d9dc187680cdccb8aae37d90bfcd&#8217;) );<br \/>\ndefine( &#8216;SECURE_AUTH_KEY&#8217;,  getenv_docker(&#8216;WORDPRESS_SECURE_AUTH_KEY&#8217;,  &#8216;f1d35321ba3ff820430674efc877f53b64bdb50e&#8217;) );<br \/>\ndefine( &#8216;LOGGED_IN_KEY&#8217;,    getenv_docker(&#8216;WORDPRESS_LOGGED_IN_KEY&#8217;,    &#8216;5d880df893cba59fed67def1acac2c61e46c4671&#8217;) );<br \/>\ndefine( &#8216;NONCE_KEY&#8217;,        getenv_docker(&#8216;WORDPRESS_NONCE_KEY&#8217;,        &#8216;2fe4fdf4ff93153db924369eb7bbd823f446577c&#8217;) );<br \/>\ndefine( &#8216;AUTH_SALT&#8217;,        getenv_docker(&#8216;WORDPRESS_AUTH_SALT&#8217;,        &#8216;326143348bb31e5451cf0e838048043ea39e5351&#8217;) );<br \/>\ndefine( &#8216;SECURE_AUTH_SALT&#8217;, getenv_docker(&#8216;WORDPRESS_SECURE_AUTH_SALT&#8217;, &#8217;33aa7ae0aa39497d0d13e84413061e0168eadea3&#8242;) );<br \/>\ndefine( &#8216;LOGGED_IN_SALT&#8217;,   getenv_docker(&#8216;WORDPRESS_LOGGED_IN_SALT&#8217;,   &#8216;f032c820677ec84f4ef05a6d2e4c2547be1e7b1b&#8217;) );<br \/>\ndefine( &#8216;NONCE_SALT&#8217;,       getenv_docker(&#8216;WORDPRESS_NONCE_SALT&#8217;,       &#8216;506e5adc0340e19f13b1018ecb7b7776e92b0a73&#8217;) );<br \/>\n\/\/ (See also https:\/\/wordpress.stackexchange.com\/a\/152905\/199287)<\/p>\n<p>\/**#@-*\/<\/p>\n<p>\/**<br \/>\n * WordPress database table prefix.<br \/>\n *<br \/>\n * You can have multiple installations in one database if you give each<br \/>\n * a unique prefix. Only numbers, letters, and underscores please!<br \/>\n *\/<br \/>\n$table_prefix = getenv_docker(&#8216;WORDPRESS_TABLE_PREFIX&#8217;, &#8216;wp_&#8217;);<\/p>\n<p>\/**<br \/>\n * For developers: WordPress debugging mode.<br \/>\n *<br \/>\n * Change this to true to enable the display of notices during development.<br \/>\n * It is strongly recommended that plugin and theme developers use WP_DEBUG<br \/>\n * in their development environments.<br \/>\n *<br \/>\n * For information on other constants that can be used for debugging,<br \/>\n * visit the documentation.<br \/>\n *<br \/>\n * @link https:\/\/developer.wordpress.org\/advanced-administration\/debug\/debug-wordpress\/<br \/>\n *\/<br \/>\ndefine( &#8216;WP_DEBUG&#8217;, !!getenv_docker(&#8216;WORDPRESS_DEBUG&#8217;, &#8221;) );<\/p>\n<p>\/* Add any custom values between this line and the &#8220;stop editing&#8221; line. *\/<\/p>\n<p>\/\/ If we&#8217;re behind a proxy server and using HTTPS, we need to alert WordPress of that fact<br \/>\n\/\/ see also https:\/\/wordpress.org\/support\/article\/administration-over-ssl\/#using-a-reverse-proxy<br \/>\nif (isset($_SERVER[&#8216;HTTP_X_FORWARDED_PROTO&#8217;]) &amp;&amp; strpos($_SERVER[&#8216;HTTP_X_FORWARDED_PROTO&#8217;], &#8216;https&#8217;) !== false) {<br \/>\n    $_SERVER[&#8216;HTTPS&#8217;] = &#8216;on&#8217;;<br \/>\n}<br \/>\n\/\/ (we include this by default because reverse proxying is extremely common in container environments)<\/p>\n<p>if ($configExtra = getenv_docker(&#8216;WORDPRESS_CONFIG_EXTRA&#8217;, &#8221;)) {<br \/>\n    eval($configExtra);<br \/>\n}<\/p>\n<p>\/* That&#8217;s all, stop editing! Happy publishing. *\/<\/p>\n<p>\/** Absolute path to the WordPress directory. *\/<br \/>\nif ( ! defined( &#8216;ABSPATH&#8217; ) ) {<br \/>\n    define( &#8216;ABSPATH&#8217;, __DIR__ . &#8220;https:\/\/dev.to\/&#8221; );<br \/>\n}<\/p>\n<p>\/** Sets up WordPress vars and included files. *\/<br \/>\nrequire_once ABSPATH . &#8216;wp-settings.php&#8217;;<\/p>\n<p>$_SERVER[&#8216;HTTPS&#8217;] = &#8216;on&#8217;;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0647 \u062e\u0627\u0637\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u062a\u0635\u0648\u06cc\u0631 \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0647 \u062e\u0648\u062f\u06cc \u062e\u0648\u062f \u0627\u0632 HTTPS \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633. <\/p>\n<p>  \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0627\u06cc\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 webserver \u0628\u0647 \u062e\u062f\u0645\u0627\u062a<\/p>\n<p>webserver:<br \/>\n    depends_on:<br \/>\n      &#8211; wordpress<br \/>\n    image: nginx:latest<br \/>\n    container_name: webserver<br \/>\n    ports:<br \/>\n      &#8211; &#8220;80:80&#8221;<br \/>\n      &#8211; &#8220;443:443&#8221;<br \/>\n    volumes:<br \/>\n      &#8211; .\/nginx\/nginx.conf:\/etc\/nginx\/conf.d\/default.conf<br \/>\n      &#8211; .\/nginx\/certs:\/etc\/nginx\/certs<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0647\u0633\u062a\u06cc\u0645 depends_on: wordpress \u0632\u06cc\u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0633\u0631\u0648\u06cc\u0633 wordpress \u0642\u0628\u0644 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 \u0648\u0628 \u0633\u0631\u0648\u0631 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u0648\u062f.<br \/>\n\u0645\u0627 \u0647\u0631 \u062f\u0648 \u0631\u0627 \u0627\u0641\u0634\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u0645 port 80 \u0648 443.<br \/>\n\u0628\u0627\u06cc\u062f a \u0631\u0627 \u067e\u0627\u0633 \u06a9\u0646\u06cc\u0645 nginx.conf \u0641\u0627\u06cc\u0644\u06cc \u06a9\u0647 \u0627\u0645\u06a9\u0627\u0646 \u067e\u0631\u0627\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 \u0631\u0627 \u0646\u06cc\u0632 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f .crt \u0648 .key \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc SSL<\/p>\n<p>\u0622 nginx.conf \u0641\u0627\u06cc\u0644 \u0645\u062d\u0644\u06cc \u0628\u0627\u06cc\u062f \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0628\u0627\u0634\u062f:<\/p>\n<p>server {<br \/>\n    listen 80;<br \/>\n    location \/ {<br \/>\n        proxy_pass http:\/\/wordpress;<br \/>\n        proxy_set_header Host $host;<br \/>\n        proxy_set_header X-Real-IP $remote_addr;<br \/>\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br \/>\n        proxy_set_header X-Forwarded-Proto $scheme;<br \/>\n    }<br \/>\n}<\/p>\n<p>server {<br \/>\n    listen 443 ssl;<\/p>\n<p>    ssl_certificate \/etc\/nginx\/certs\/nginx.crt;<br \/>\n    ssl_certificate_key \/etc\/nginx\/certs\/nginx.key;<\/p>\n<p>    location \/ {<br \/>\n        proxy_pass http:\/\/wordpress;<br \/>\n        proxy_set_header Host $host;<br \/>\n        proxy_set_header X-Real-IP $remote_addr;<br \/>\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br \/>\n        proxy_set_header X-Forwarded-Proto $scheme;<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc HTTPS\u060c \u06af\u0648\u0627\u0647\u06cc SSL \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 \u062a\u0648\u0633\u0639\u0647\u060c \u0645\u0646 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0622\u0646\u0644\u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc \u0627\u0645\u0636\u0627 \u0634\u062f\u0647 \u062e\u0648\u062f\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0645 (.crt \u0648 .key \u0641\u0627\u06cc\u0644 \u0647\u0627).  \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0627\u0632 certbot \u06cc\u0627 openssl \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/p>\n<p>  \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0628\u0627 \u0627\u0646\u06af\u0634\u062a \u0631\u0648\u06cc \u062f\u0633\u062a\u060c \u0622\u0645\u0627\u062f\u0647 \u062f\u0648\u06cc\u062f\u0646 \u0647\u0633\u062a\u06cc\u0645 docker-compose up!<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0645\u0631\u0627\u062d\u0644 \u0646\u0635\u0628\u060c \u0627\u06af\u0631 \u0628\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0628\u0631\u0648\u06cc\u062f\u060c \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f \u06a9\u0647 https\u0628\u0647 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a WordPress Address \u0648 Site Address<\/p>\n<p>  \u062e\u0648\u062f\u0634\u0647!<\/p>\n<p>\u0645\u0646 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc https \u0628\u0631\u0627\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0645\u0634\u06a9\u0644 \u062f\u0627\u0634\u062a\u0645\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0641\u06a9\u0631 \u06a9\u0631\u062f\u0645 \u0648\u0642\u062a\u06cc \u0641\u0647\u0645\u06cc\u062f\u0645 \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u0645.  \u0647\u0631 \u06af\u0648\u0646\u0647 \u0628\u0627\u0632\u062e\u0648\u0631\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f!  \u0628\u0627 \u062a\u0634\u06a9\u0631 \u0648 \u0631\u0648\u0632 \u062e\u0648\u0628\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f!<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u062e\u0632\u0646 GitHub \u0628\u0627 \u06a9\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div data-article-id=\"1935163\" id=\"article-body\">\n<p>\u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0638\u0631\u0641 Docker \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u0627\u0645\u0627 \u062f\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc HTTPS \u0645\u0634\u06a9\u0644 \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u0631\u0627\u062d\u0644 \u0632\u06cc\u0631 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u062f!<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/configure-https-for-wordpress-on-docker-using-nginx-as-a-reverse-proxy-1a6c\/#%D8%A2%D9%87%D9%86%DA%AF%D8%B3%D8%A7%D8%B2%DB%8C_docker-composeyml_%D9%81%D8%A7%DB%8C%D9%84\" >\u0622\u0647\u0646\u06af\u0633\u0627\u0632\u06cc docker-compose.yml \u0641\u0627\u06cc\u0644<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/configure-https-for-wordpress-on-docker-using-nginx-as-a-reverse-proxy-1a6c\/#%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7%D8%8C_%D9%85%D8%A7_%D9%82%D8%B5%D8%AF_%D8%AF%D8%A7%D8%B1%DB%8C%D9%85_%D8%AA%D8%A7_%D8%B1%D8%A7_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D9%85_db_%D8%A8%D9%87_%D8%AE%D8%AF%D9%85%D8%A7%D8%AA\" >\u0627\u0628\u062a\u062f\u0627\u060c \u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 db \u0628\u0647 \u062e\u062f\u0645\u0627\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/configure-https-for-wordpress-on-docker-using-nginx-as-a-reverse-proxy-1a6c\/#%D8%A8%D8%B9%D8%AF_%D8%A7%D8%B2_%D8%A7%DB%8C%D9%86%DA%A9%D9%87_db_%D8%B1%D8%A7_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%DA%A9%D8%B1%D8%AF%DB%8C%D9%85%D8%8C_%D9%85%DB%8C_%D8%AE%D9%88%D8%A7%D9%87%DB%8C%D9%85_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D9%85_wordpress_%D8%A8%D9%87_%D8%AE%D8%AF%D9%85%D8%A7%D8%AA\" >\u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 db \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u06cc\u0645\u060c \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 wordpress \u0628\u0647 \u062e\u062f\u0645\u0627\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/configure-https-for-wordpress-on-docker-using-nginx-as-a-reverse-proxy-1a6c\/#%D8%AF%D8%B1_%D9%86%D9%87%D8%A7%DB%8C%D8%AA_%D8%A8%D8%A7%DB%8C%D8%AF_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D9%85_webserver_%D8%A8%D9%87_%D8%AE%D8%AF%D9%85%D8%A7%D8%AA\" >\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0627\u06cc\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 webserver \u0628\u0647 \u062e\u062f\u0645\u0627\u062a<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/configure-https-for-wordpress-on-docker-using-nginx-as-a-reverse-proxy-1a6c\/#%D8%AF%D8%B1_%D9%86%D9%87%D8%A7%DB%8C%D8%AA%D8%8C_%D8%A8%D8%A7_%D8%A7%D9%86%DA%AF%D8%B4%D8%AA_%D8%B1%D9%88%DB%8C_%D8%AF%D8%B3%D8%AA%D8%8C_%D8%A2%D9%85%D8%A7%D8%AF%D9%87_%D8%AF%D9%88%DB%8C%D8%AF%D9%86_%D9%87%D8%B3%D8%AA%DB%8C%D9%85_docker-compose_up\" >\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0628\u0627 \u0627\u0646\u06af\u0634\u062a \u0631\u0648\u06cc \u062f\u0633\u062a\u060c \u0622\u0645\u0627\u062f\u0647 \u062f\u0648\u06cc\u062f\u0646 \u0647\u0633\u062a\u06cc\u0645 docker-compose up!<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/configure-https-for-wordpress-on-docker-using-nginx-as-a-reverse-proxy-1a6c\/#%D8%AE%D9%88%D8%AF%D8%B4%D9%87\" >\u062e\u0648\u062f\u0634\u0647!<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A2%D9%87%D9%86%DA%AF%D8%B3%D8%A7%D8%B2%DB%8C_docker-composeyml_%D9%81%D8%A7%DB%8C%D9%84\"><\/span>\n<p>  \u0622\u0647\u0646\u06af\u0633\u0627\u0632\u06cc <code>docker-compose.yml<\/code> \u0641\u0627\u06cc\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 <code>docker-compose.yml<\/code> \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u062e\u062f\u0645\u0627\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7%D8%8C_%D9%85%D8%A7_%D9%82%D8%B5%D8%AF_%D8%AF%D8%A7%D8%B1%DB%8C%D9%85_%D8%AA%D8%A7_%D8%B1%D8%A7_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D9%85_db_%D8%A8%D9%87_%D8%AE%D8%AF%D9%85%D8%A7%D8%AA\"><\/span>\n<p>  \u0627\u0628\u062a\u062f\u0627\u060c \u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 <code>db<\/code> \u0628\u0647 \u062e\u062f\u0645\u0627\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">db<\/span><span class=\"pi\">:<\/span>\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql:5.7<\/span>\n    <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">db<\/span>\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">3306:3306\"<\/span>\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\n      <span class=\"na\">MYSQL_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">wordpress<\/span>\n      <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">notanotheruser<\/span>\n      <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1234<\/span>\n      <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">root1234<\/span>\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">db_data:\/var\/lib\/mysql<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0641\u0634\u0627\u06cc \u0622\u0646 \u0647\u0633\u062a\u06cc\u0645 <code>port 3306<\/code> \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0627 MySQL Workbench \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u0645 \u062a\u0627 \u0646\u06af\u0627\u0647 \u0628\u0647\u062a\u0631\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645.<\/li>\n<li>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0639\u0628\u0648\u0631 \u0627\u0632 <code>environment variables<\/code> \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u0631 MySQL \u0637\u0628\u0642 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a\n<\/li>\n<li>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 <code>volume<\/code> \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u0631 MySQL \u062d\u062a\u06cc \u067e\u0633 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062e\u0627\u0645\u0648\u0634 \u06a9\u0631\u062f\u06cc\u0645.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B9%D8%AF_%D8%A7%D8%B2_%D8%A7%DB%8C%D9%86%DA%A9%D9%87_db_%D8%B1%D8%A7_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%DA%A9%D8%B1%D8%AF%DB%8C%D9%85%D8%8C_%D9%85%DB%8C_%D8%AE%D9%88%D8%A7%D9%87%DB%8C%D9%85_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D9%85_wordpress_%D8%A8%D9%87_%D8%AE%D8%AF%D9%85%D8%A7%D8%AA\"><\/span>\n<p>  \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 db \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u06cc\u0645\u060c \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 <code>wordpress<\/code> \u0628\u0647 \u062e\u062f\u0645\u0627\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">wordpress<\/span><span class=\"pi\">:<\/span>\n    <span class=\"na\">depends_on<\/span><span class=\"pi\">:<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">db<\/span>\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">wordpress:latest<\/span>\n    <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">wordpress<\/span>\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\n      <span class=\"na\">WORDPRESS_DB_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">db<\/span>\n      <span class=\"na\">WORDPRESS_DB_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">notanotheruser<\/span>\n      <span class=\"na\">WORDPRESS_DB_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1234<\/span>\n      <span class=\"na\">WORDPRESS_DB_NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">wordpress<\/span>\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">.\/wordpress\/wp-config.php:\/var\/www\/html\/wp-config.php<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0647\u0633\u062a\u06cc\u0645 <code>depends_on: db<\/code> \u0632\u06cc\u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0633\u0631\u0648\u06cc\u0633 db \u0642\u0628\u0644 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 wordpress \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u0648\u062f.<\/li>\n<li>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0639\u0628\u0648\u0631 \u0627\u0632 <code>environment variables<\/code> \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0637\u0628\u0642 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a\n<\/li>\n<li>\u0628\u0627\u06cc\u062f \u0631\u0648\u0646\u0648\u06cc\u0633\u06cc \u06a9\u0646\u06cc\u0645 <code>wp-config.php<\/code> \u0641\u0627\u06cc\u0644 \u062f\u0631 \u0646\u0635\u0628 \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0627 \u062e\u0648\u062f\u0645\u0627\u0646 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u062e\u0637 \u06a9\u0647 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 https \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0622\u0646 \u0627\u06cc\u0646 \u0627\u0633\u062a: <code>$_SERVER['HTTPS'] = 'on';<\/code>\n<\/li>\n<\/ul>\n<p>\u0622 <code>wp-config.php<\/code> \u0641\u0627\u06cc\u0644 \u0645\u062d\u0644\u06cc \u0628\u0627\u06cc\u062f \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0628\u0627\u0634\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n<span class=\"cd\">\/**\n * The base configuration for WordPress\n *\n * The wp-config.php creation script uses this file during the installation.\n * You don't have to use the website, you can copy this file to \"wp-config.php\"\n * and fill in the values.\n *\n * This file contains the following configurations:\n *\n * * Database settings\n * * Secret keys\n * * Database table prefix\n * * ABSPATH\n *\n * This has been slightly modified (to read environment variables) for use in Docker.\n *\n * @link https:\/\/developer.wordpress.org\/advanced-administration\/wordpress\/wp-config\/\n *\n * @package WordPress\n *\/<\/span>\n\n<span class=\"c1\">\/\/ IMPORTANT: this file needs to stay in-sync with https:\/\/github.com\/WordPress\/WordPress\/blob\/master\/wp-config-sample.php<\/span>\n<span class=\"c1\">\/\/ (it gets parsed by the upstream wizard in https:\/\/github.com\/WordPress\/WordPress\/blob\/f27cb65e1ef25d11b535695a660e7282b98eb742\/wp-admin\/setup-config.php#L356-L392)<\/span>\n\n<span class=\"c1\">\/\/ a helper function to lookup \"env_FILE\", \"env\", then fallback<\/span>\n<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nb\">function_exists<\/span><span class=\"p\">(<\/span><span class=\"s1\">'getenv_docker'<\/span><span class=\"p\">))<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ https:\/\/github.com\/docker-library\/wordpress\/issues\/588 (WP-CLI will load this file 2x)<\/span>\n    <span class=\"k\">function<\/span> <span class=\"n\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"nv\">$env<\/span><span class=\"p\">,<\/span> <span class=\"nv\">$default<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nv\">$fileEnv<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">getenv<\/span><span class=\"p\">(<\/span><span class=\"nv\">$env<\/span> <span class=\"mf\">.<\/span> <span class=\"s1\">'_FILE'<\/span><span class=\"p\">))<\/span> <span class=\"p\">{<\/span>\n            <span class=\"k\">return<\/span> <span class=\"nb\">rtrim<\/span><span class=\"p\">(<\/span><span class=\"nb\">file_get_contents<\/span><span class=\"p\">(<\/span><span class=\"nv\">$fileEnv<\/span><span class=\"p\">),<\/span> <span class=\"s2\">\"<\/span><span class=\"se\">\\r\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">);<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">((<\/span><span class=\"nv\">$val<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">getenv<\/span><span class=\"p\">(<\/span><span class=\"nv\">$env<\/span><span class=\"p\">))<\/span> <span class=\"o\">!==<\/span> <span class=\"kc\">false<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"k\">return<\/span> <span class=\"nv\">$val<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n        <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n            <span class=\"k\">return<\/span> <span class=\"nv\">$default<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ ** Database settings - You can get this info from your web host ** \/\/<\/span>\n<span class=\"cd\">\/** The name of the database for WordPress *\/<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'DB_NAME'<\/span><span class=\"p\">,<\/span> <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_DB_NAME'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'wordpress'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"cd\">\/** Database username *\/<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'DB_USER'<\/span><span class=\"p\">,<\/span> <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_DB_USER'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'example username'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"cd\">\/** Database password *\/<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'DB_PASSWORD'<\/span><span class=\"p\">,<\/span> <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_DB_PASSWORD'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'example password'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"cd\">\/**\n * Docker image fallback values above are sourced from the official WordPress installation wizard:\n * https:\/\/github.com\/WordPress\/WordPress\/blob\/1356f6537220ffdc32b9dad2a6cdbe2d010b7a88\/wp-admin\/setup-config.php#L224-L238\n * (However, using \"example username\" and \"example password\" in your database is strongly discouraged.  Please use strong, random credentials!)\n *\/<\/span>\n\n<span class=\"cd\">\/** Database hostname *\/<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'DB_HOST'<\/span><span class=\"p\">,<\/span> <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_DB_HOST'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'mysql'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"cd\">\/** Database charset to use in creating database tables. *\/<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'DB_CHARSET'<\/span><span class=\"p\">,<\/span> <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_DB_CHARSET'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'utf8'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"cd\">\/** The database collate type. Don't change this if in doubt. *\/<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'DB_COLLATE'<\/span><span class=\"p\">,<\/span> <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_DB_COLLATE'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">''<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"cd\">\/**#@+\n * Authentication unique keys and salts.\n *\n * Change these to different unique phrases! You can generate these using\n * the {@link https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/ WordPress.org secret-key service}.\n *\n * You can change these at any point in time to invalidate all existing cookies.\n * This will force all users to have to log in again.\n *\n * @since 2.6.0\n *\/<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'AUTH_KEY'<\/span><span class=\"p\">,<\/span>         <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_AUTH_KEY'<\/span><span class=\"p\">,<\/span>         <span class=\"s1\">'a04e06eaef05d9dc187680cdccb8aae37d90bfcd'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'SECURE_AUTH_KEY'<\/span><span class=\"p\">,<\/span>  <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_SECURE_AUTH_KEY'<\/span><span class=\"p\">,<\/span>  <span class=\"s1\">'f1d35321ba3ff820430674efc877f53b64bdb50e'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'LOGGED_IN_KEY'<\/span><span class=\"p\">,<\/span>    <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_LOGGED_IN_KEY'<\/span><span class=\"p\">,<\/span>    <span class=\"s1\">'5d880df893cba59fed67def1acac2c61e46c4671'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'NONCE_KEY'<\/span><span class=\"p\">,<\/span>        <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_NONCE_KEY'<\/span><span class=\"p\">,<\/span>        <span class=\"s1\">'2fe4fdf4ff93153db924369eb7bbd823f446577c'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'AUTH_SALT'<\/span><span class=\"p\">,<\/span>        <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_AUTH_SALT'<\/span><span class=\"p\">,<\/span>        <span class=\"s1\">'326143348bb31e5451cf0e838048043ea39e5351'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'SECURE_AUTH_SALT'<\/span><span class=\"p\">,<\/span> <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_SECURE_AUTH_SALT'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'33aa7ae0aa39497d0d13e84413061e0168eadea3'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'LOGGED_IN_SALT'<\/span><span class=\"p\">,<\/span>   <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_LOGGED_IN_SALT'<\/span><span class=\"p\">,<\/span>   <span class=\"s1\">'f032c820677ec84f4ef05a6d2e4c2547be1e7b1b'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'NONCE_SALT'<\/span><span class=\"p\">,<\/span>       <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_NONCE_SALT'<\/span><span class=\"p\">,<\/span>       <span class=\"s1\">'506e5adc0340e19f13b1018ecb7b7776e92b0a73'<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n<span class=\"c1\">\/\/ (See also https:\/\/wordpress.stackexchange.com\/a\/152905\/199287)<\/span>\n\n<span class=\"cd\">\/**#@-*\/<\/span>\n\n<span class=\"cd\">\/**\n * WordPress database table prefix.\n *\n * You can have multiple installations in one database if you give each\n * a unique prefix. Only numbers, letters, and underscores please!\n *\/<\/span>\n<span class=\"nv\">$table_prefix<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_TABLE_PREFIX'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'wp_'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"cd\">\/**\n * For developers: WordPress debugging mode.\n *\n * Change this to true to enable the display of notices during development.\n * It is strongly recommended that plugin and theme developers use WP_DEBUG\n * in their development environments.\n *\n * For information on other constants that can be used for debugging,\n * visit the documentation.\n *\n * @link https:\/\/developer.wordpress.org\/advanced-administration\/debug\/debug-wordpress\/\n *\/<\/span>\n<span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'WP_DEBUG'<\/span><span class=\"p\">,<\/span> <span class=\"o\">!!<\/span><span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_DEBUG'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">''<\/span><span class=\"p\">)<\/span> <span class=\"p\">);<\/span>\n\n<span class=\"cm\">\/* Add any custom values between this line and the \"stop editing\" line. *\/<\/span>\n\n<span class=\"c1\">\/\/ If we're behind a proxy server and using HTTPS, we need to alert WordPress of that fact<\/span>\n<span class=\"c1\">\/\/ see also https:\/\/wordpress.org\/support\/article\/administration-over-ssl\/#using-a-reverse-proxy<\/span>\n<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"k\">isset<\/span><span class=\"p\">(<\/span><span class=\"nv\">$_SERVER<\/span><span class=\"p\">[<\/span><span class=\"s1\">'HTTP_X_FORWARDED_PROTO'<\/span><span class=\"p\">])<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">strpos<\/span><span class=\"p\">(<\/span><span class=\"nv\">$_SERVER<\/span><span class=\"p\">[<\/span><span class=\"s1\">'HTTP_X_FORWARDED_PROTO'<\/span><span class=\"p\">],<\/span> <span class=\"s1\">'https'<\/span><span class=\"p\">)<\/span> <span class=\"o\">!==<\/span> <span class=\"kc\">false<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nv\">$_SERVER<\/span><span class=\"p\">[<\/span><span class=\"s1\">'HTTPS'<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'on'<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<span class=\"c1\">\/\/ (we include this by default because reverse proxying is extremely common in container environments)<\/span>\n\n<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nv\">$configExtra<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getenv_docker<\/span><span class=\"p\">(<\/span><span class=\"s1\">'WORDPRESS_CONFIG_EXTRA'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">''<\/span><span class=\"p\">))<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">eval<\/span><span class=\"p\">(<\/span><span class=\"nv\">$configExtra<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"cm\">\/* That's all, stop editing! Happy publishing. *\/<\/span>\n\n<span class=\"cd\">\/** Absolute path to the WordPress directory. *\/<\/span>\n<span class=\"k\">if<\/span> <span class=\"p\">(<\/span> <span class=\"o\">!<\/span> <span class=\"nb\">defined<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'ABSPATH'<\/span> <span class=\"p\">)<\/span> <span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nb\">define<\/span><span class=\"p\">(<\/span> <span class=\"s1\">'ABSPATH'<\/span><span class=\"p\">,<\/span> <span class=\"k\">__DIR__<\/span> <span class=\"mf\">.<\/span> <span class=\"s1\">\"https:\/\/dev.to\/\"<\/span> <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"cd\">\/** Sets up WordPress vars and included files. *\/<\/span>\n<span class=\"k\">require_once<\/span> <span class=\"no\">ABSPATH<\/span> <span class=\"mf\">.<\/span> <span class=\"s1\">'wp-settings.php'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nv\">$_SERVER<\/span><span class=\"p\">[<\/span><span class=\"s1\">'HTTPS'<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'on'<\/span><span class=\"p\">;<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<blockquote>\n<p>\u0628\u0647 \u062e\u0627\u0637\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u062a\u0635\u0648\u06cc\u0631 \u0648\u0631\u062f\u067e\u0631\u0633 \u0628\u0647 \u062e\u0648\u062f\u06cc \u062e\u0648\u062f \u0627\u0632 HTTPS \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633. <\/p>\n<\/blockquote>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AF%D8%B1_%D9%86%D9%87%D8%A7%DB%8C%D8%AA_%D8%A8%D8%A7%DB%8C%D8%AF_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D9%85_webserver_%D8%A8%D9%87_%D8%AE%D8%AF%D9%85%D8%A7%D8%AA\"><\/span>\n<p>  \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0627\u06cc\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 <code>webserver<\/code> \u0628\u0647 \u062e\u062f\u0645\u0627\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">webserver<\/span><span class=\"pi\">:<\/span>\n    <span class=\"na\">depends_on<\/span><span class=\"pi\">:<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">wordpress<\/span>\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx:latest<\/span>\n    <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">webserver<\/span>\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">80:80\"<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">443:443\"<\/span>\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">.\/nginx\/nginx.conf:\/etc\/nginx\/conf.d\/default.conf<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">.\/nginx\/certs:\/etc\/nginx\/certs<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0647\u0633\u062a\u06cc\u0645 <code>depends_on: wordpress<\/code> \u0632\u06cc\u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0633\u0631\u0648\u06cc\u0633 wordpress \u0642\u0628\u0644 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 \u0648\u0628 \u0633\u0631\u0648\u0631 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u0648\u062f.<\/li>\n<li>\u0645\u0627 \u0647\u0631 \u062f\u0648 \u0631\u0627 \u0627\u0641\u0634\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>port 80<\/code> \u0648 <code>443<\/code>.<\/li>\n<li>\u0628\u0627\u06cc\u062f a \u0631\u0627 \u067e\u0627\u0633 \u06a9\u0646\u06cc\u0645 <code>nginx.conf<\/code> \u0641\u0627\u06cc\u0644\u06cc \u06a9\u0647 \u0627\u0645\u06a9\u0627\u0646 \u067e\u0631\u0627\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 \u0631\u0627 \u0646\u06cc\u0632 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f <code>.crt<\/code> \u0648 <code>.key<\/code> \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc SSL<\/li>\n<\/ul>\n<p>\u0622 <code>nginx.conf<\/code> \u0641\u0627\u06cc\u0644 \u0645\u062d\u0644\u06cc \u0628\u0627\u06cc\u062f \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0628\u0627\u0634\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight conf\"><code><span class=\"n\">server<\/span> {\n    <span class=\"n\">listen<\/span> <span class=\"m\">80<\/span>;\n    <span class=\"n\">location<\/span> \/ {\n        <span class=\"n\">proxy_pass<\/span> <span class=\"n\">http<\/span>:\/\/<span class=\"n\">wordpress<\/span>;\n        <span class=\"n\">proxy_set_header<\/span> <span class=\"n\">Host<\/span> $<span class=\"n\">host<\/span>;\n        <span class=\"n\">proxy_set_header<\/span> <span class=\"n\">X<\/span>-<span class=\"n\">Real<\/span>-<span class=\"n\">IP<\/span> $<span class=\"n\">remote_addr<\/span>;\n        <span class=\"n\">proxy_set_header<\/span> <span class=\"n\">X<\/span>-<span class=\"n\">Forwarded<\/span>-<span class=\"n\">For<\/span> $<span class=\"n\">proxy_add_x_forwarded_for<\/span>;\n        <span class=\"n\">proxy_set_header<\/span> <span class=\"n\">X<\/span>-<span class=\"n\">Forwarded<\/span>-<span class=\"n\">Proto<\/span> $<span class=\"n\">scheme<\/span>;\n    }\n}\n\n<span class=\"n\">server<\/span> {\n    <span class=\"n\">listen<\/span> <span class=\"m\">443<\/span> <span class=\"n\">ssl<\/span>;\n\n    <span class=\"n\">ssl_certificate<\/span> \/<span class=\"n\">etc<\/span>\/<span class=\"n\">nginx<\/span>\/<span class=\"n\">certs<\/span>\/<span class=\"n\">nginx<\/span>.<span class=\"n\">crt<\/span>;\n    <span class=\"n\">ssl_certificate_key<\/span> \/<span class=\"n\">etc<\/span>\/<span class=\"n\">nginx<\/span>\/<span class=\"n\">certs<\/span>\/<span class=\"n\">nginx<\/span>.<span class=\"n\">key<\/span>;\n\n    <span class=\"n\">location<\/span> \/ {\n        <span class=\"n\">proxy_pass<\/span> <span class=\"n\">http<\/span>:\/\/<span class=\"n\">wordpress<\/span>;\n        <span class=\"n\">proxy_set_header<\/span> <span class=\"n\">Host<\/span> $<span class=\"n\">host<\/span>;\n        <span class=\"n\">proxy_set_header<\/span> <span class=\"n\">X<\/span>-<span class=\"n\">Real<\/span>-<span class=\"n\">IP<\/span> $<span class=\"n\">remote_addr<\/span>;\n        <span class=\"n\">proxy_set_header<\/span> <span class=\"n\">X<\/span>-<span class=\"n\">Forwarded<\/span>-<span class=\"n\">For<\/span> $<span class=\"n\">proxy_add_x_forwarded_for<\/span>;\n        <span class=\"n\">proxy_set_header<\/span> <span class=\"n\">X<\/span>-<span class=\"n\">Forwarded<\/span>-<span class=\"n\">Proto<\/span> $<span class=\"n\">scheme<\/span>;\n    }\n}\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<blockquote>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc HTTPS\u060c \u06af\u0648\u0627\u0647\u06cc SSL \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a.<\/p>\n<\/blockquote>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 \u062a\u0648\u0633\u0639\u0647\u060c \u0645\u0646 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0622\u0646\u0644\u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc \u0627\u0645\u0636\u0627 \u0634\u062f\u0647 \u062e\u0648\u062f\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0645 (<code>.crt<\/code> \u0648 <code>.key<\/code> \u0641\u0627\u06cc\u0644 \u0647\u0627).  \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0627\u0632 certbot \u06cc\u0627 openssl \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AF%D8%B1_%D9%86%D9%87%D8%A7%DB%8C%D8%AA%D8%8C_%D8%A8%D8%A7_%D8%A7%D9%86%DA%AF%D8%B4%D8%AA_%D8%B1%D9%88%DB%8C_%D8%AF%D8%B3%D8%AA%D8%8C_%D8%A2%D9%85%D8%A7%D8%AF%D9%87_%D8%AF%D9%88%DB%8C%D8%AF%D9%86_%D9%87%D8%B3%D8%AA%DB%8C%D9%85_docker-compose_up\"><\/span>\n<p>  \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0628\u0627 \u0627\u0646\u06af\u0634\u062a \u0631\u0648\u06cc \u062f\u0633\u062a\u060c \u0622\u0645\u0627\u062f\u0647 \u062f\u0648\u06cc\u062f\u0646 \u0647\u0633\u062a\u06cc\u0645 <code>docker-compose up<\/code>!<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5pz50aumts4dub23j1t3.png\" alt=\"docker-compose up\" loading=\"lazy\" width=\"800\" height=\"375\" title=\"\"><\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0645\u0631\u0627\u062d\u0644 \u0646\u0635\u0628\u060c \u0627\u06af\u0631 \u0628\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0628\u0631\u0648\u06cc\u062f\u060c \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f \u06a9\u0647 <code>https<\/code>\u0628\u0647 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a <code>WordPress Address<\/code> \u0648 <code>Site Address<\/code><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9x65tjm39e1rwsb4g7lr.png\" alt=\"\u0646\u062a\u06cc\u062c\u0647 https\" loading=\"lazy\" width=\"800\" height=\"503\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AE%D9%88%D8%AF%D8%B4%D9%87\"><\/span>\n<p>  \u062e\u0648\u062f\u0634\u0647!<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0646 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc https \u0628\u0631\u0627\u06cc \u0648\u0631\u062f\u067e\u0631\u0633 \u0645\u0634\u06a9\u0644 \u062f\u0627\u0634\u062a\u0645\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0641\u06a9\u0631 \u06a9\u0631\u062f\u0645 \u0648\u0642\u062a\u06cc \u0641\u0647\u0645\u06cc\u062f\u0645 \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u0645.  \u0647\u0631 \u06af\u0648\u0646\u0647 \u0628\u0627\u0632\u062e\u0648\u0631\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f!  \u0628\u0627 \u062a\u0634\u06a9\u0631 \u0648 \u0631\u0648\u0632 \u062e\u0648\u0628\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f!<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u062e\u0632\u0646 GitHub \u0628\u0627 \u06a9\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb0wreadh8odktw0h0ot.gif\" alt=\"\u0627\u06cc\u0646 \u0647\u0645\u0647 \u0645\u0631\u062f\u0645\u06cc \u0627\u0633\u062a\" loading=\"lazy\" width=\"498\" height=\"298\" data-animated=\"true\" title=\"\"><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0648\u0631\u062f\u067e\u0631\u0633 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0638\u0631\u0641 Docker \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f \u0627\u0645\u0627 \u062f\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc HTTPS \u0645\u0634\u06a9\u0644 \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u0631\u0627\u062d\u0644 \u0632\u06cc\u0631 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u062f! \u0622\u0647\u0646\u06af\u0633\u0627\u0632\u06cc docker-compose.yml \u0641\u0627\u06cc\u0644 \u0628\u06cc\u0627\u06cc\u06cc\u062f a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 docker-compose.yml \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u062e\u062f\u0645\u0627\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645. \u0627\u0628\u062a\u062f\u0627\u060c \u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-70702","post","type-post","status-publish","format-standard","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/70702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=70702"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/70702\/revisions"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=70702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=70702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=70702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}