{"id":1587,"date":"2025-12-31T19:47:03","date_gmt":"2025-12-31T11:47:03","guid":{"rendered":"http:\/\/www.eait.co\/?p=1587"},"modified":"2025-12-31T23:19:33","modified_gmt":"2025-12-31T15:19:33","slug":"1587","status":"publish","type":"post","link":"https:\/\/notes.coremix.net\/?p=1587","title":{"rendered":"docker\u90e8\u7f72wordpress\u591a\u7ad9\u70b9"},"content":{"rendered":"<p>\u6b65\u9aa4\u4e00\uff1a\u521b\u5efa\u672c\u5730\u76ee\u5f55\u6587\u4ef6\u5e76\u8d4b\u6743\u9650\uff1a<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nmkdir -p \/data\/wp\/{mysql,backup\/db,backup\/files,logs\/nginx,logs\/mysql}\r\nmkdir -p \/data\/wp\/site{1,2,3}\/wp-content\r\nmkdir -p wp-stack\/nginx\/conf.d\r\nchmod -R 755 \/data\/wp\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u6b65\u9aa4\u4e8c\uff1a\u5728wp-stack\u4e2d\u6267\u884cdocker-compose up -d<\/p>\n<p>&nbsp;<\/p>\n<pre style=\"background-color: #2b2b2b; color: #a9b7c6; font-family: 'JetBrains Mono',monospace; font-size: 9.8pt;\"><span style=\"color: #cc7832;\">version<\/span>: <span style=\"color: #6a8759;\">\"3.7\"\r\n<\/span>\r\n<span style=\"color: #cc7832;\">services<\/span>:\r\n  <span style=\"color: #cc7832;\">db<\/span>:\r\n    <span style=\"color: #cc7832;\">image<\/span>: mariadb:10.11\r\n    <span style=\"color: #cc7832;\">container_name<\/span>: wp_db\r\n    <span style=\"color: #cc7832;\">command<\/span>:\r\n      - --character-set-server=utf8mb4\r\n      - --collation-server=utf8mb4_unicode_ci\r\n    <span style=\"color: #cc7832;\">environment<\/span>:\r\n      <span style=\"color: #cc7832;\">MARIADB_ROOT_PASSWORD<\/span>: <span style=\"color: #6a8759;\">\"StrongRootPass\"\r\n<\/span>      <span style=\"color: #cc7832;\">TZ<\/span>: <span style=\"color: #6a8759;\">\"Asia\/Shanghai\"\r\n<\/span>    <span style=\"color: #cc7832;\">volumes<\/span>:\r\n      - \/data\/wp\/mysql:\/var\/lib\/mysql\r\n    <span style=\"color: #cc7832;\">security_opt<\/span>:\r\n      - seccomp=unconfined\r\n    <span style=\"color: #cc7832;\">restart<\/span>: unless-stopped\r\n    <span style=\"color: #cc7832;\">networks<\/span>:\r\n      - wpnet\r\n\r\n\r\n  <span style=\"color: #cc7832;\">wp1<\/span>:\r\n    <span style=\"color: #cc7832;\">ports<\/span>:\r\n     - <span style=\"color: #6a8759;\">\"8081:80\"\r\n<\/span>    <span style=\"color: #cc7832;\">image<\/span>: wordpress:php8.2-apache\r\n    <span style=\"color: #cc7832;\">container_name<\/span>: wp1\r\n    <span style=\"color: #cc7832;\">environment<\/span>:\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_HOST<\/span>: db:3306\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_NAME<\/span>: wp1db\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_USER<\/span>: wp1user\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_PASSWORD<\/span>: <span style=\"color: #6a8759;\">\"wp1StrongPass\"\r\n<\/span>      <span style=\"color: #cc7832;\">TZ<\/span>: <span style=\"color: #6a8759;\">\"Asia\/Shanghai\"\r\n<\/span>    <span style=\"color: #cc7832;\">volumes<\/span>:\r\n      - \/data\/wp\/site1\/wp-content:\/var\/www\/html\/wp-content\r\n    <span style=\"color: #cc7832;\">networks<\/span>:\r\n      - wpnet\r\n    <span style=\"color: #cc7832;\">depends_on<\/span>:\r\n      - db\r\n    <span style=\"color: #cc7832;\">restart<\/span>: unless-stopped\r\n\r\n  <span style=\"color: #cc7832;\">wp2<\/span>:\r\n    <span style=\"color: #cc7832;\">ports<\/span>:\r\n      - <span style=\"color: #6a8759;\">\"8082:80\"\r\n<\/span>    <span style=\"color: #cc7832;\">image<\/span>: wordpress:php8.2-apache\r\n    <span style=\"color: #cc7832;\">container_name<\/span>: wp2\r\n    <span style=\"color: #cc7832;\">environment<\/span>:\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_HOST<\/span>: db:3306\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_NAME<\/span>: wp2db\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_USER<\/span>: wp2user\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_PASSWORD<\/span>: <span style=\"color: #6a8759;\">\"wp2StrongPass\"\r\n<\/span>      <span style=\"color: #cc7832;\">TZ<\/span>: <span style=\"color: #6a8759;\">\"Asia\/Shanghai\"\r\n<\/span>    <span style=\"color: #cc7832;\">volumes<\/span>:\r\n      - \/data\/wp\/site2\/wp-content:\/var\/www\/html\/wp-content\r\n    <span style=\"color: #cc7832;\">networks<\/span>:\r\n      - wpnet\r\n    <span style=\"color: #cc7832;\">depends_on<\/span>:\r\n      - db\r\n    <span style=\"color: #cc7832;\">restart<\/span>: unless-stopped\r\n\r\n  <span style=\"color: #cc7832;\">wp3<\/span>:\r\n    <span style=\"color: #cc7832;\">ports<\/span>:\r\n      - <span style=\"color: #6a8759;\">\"8083:80\"\r\n<\/span>    <span style=\"color: #cc7832;\">image<\/span>: wordpress:php8.2-apache\r\n    <span style=\"color: #cc7832;\">container_name<\/span>: wp3\r\n    <span style=\"color: #cc7832;\">environment<\/span>:\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_HOST<\/span>: db:3306\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_NAME<\/span>: wp3db\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_USER<\/span>: wp3user\r\n      <span style=\"color: #cc7832;\">WORDPRESS_DB_PASSWORD<\/span>: <span style=\"color: #6a8759;\">\"wp3StrongPass\"\r\n<\/span>      <span style=\"color: #cc7832;\">TZ<\/span>: <span style=\"color: #6a8759;\">\"Asia\/Shanghai\"\r\n<\/span>    <span style=\"color: #cc7832;\">volumes<\/span>:\r\n      - \/data\/wp\/site3\/wp-content:\/var\/www\/html\/wp-content\r\n    <span style=\"color: #cc7832;\">networks<\/span>:\r\n      - wpnet\r\n    <span style=\"color: #cc7832;\">depends_on<\/span>:\r\n      - db\r\n    <span style=\"color: #cc7832;\">restart<\/span>: unless-stopped\r\n\r\n\r\n<span style=\"color: #cc7832;\">networks<\/span>:\r\n  <span style=\"color: #cc7832;\">wpnet<\/span>:<\/pre>\n<p>&nbsp;<\/p>\n<p>\u6b65\u9aa4\u4e09\uff1a\u521b\u5efa\u6570\u636e\u5e93\uff1a<\/p>\n<p>&nbsp;<\/p>\n<pre style=\"background-color: #2b2b2b; color: #a9b7c6; font-family: 'JetBrains Mono',monospace; font-size: 9.8pt;\"><span style=\"color: #c57633;\">docker<\/span><span style=\"color: #6a8759;\"> exec -i wp_db mysql -uroot -pStrongRootPass &lt;&lt;EOF\r\n<\/span><span style=\"color: #6a8759;\">CREATE DATABASE wp1db DEFAULT CHARSET utf8mb4;\r\n<\/span><span style=\"color: #6a8759;\">CREATE DATABASE wp2db DEFAULT CHARSET utf8mb4;\r\n<\/span><span style=\"color: #6a8759;\">CREATE DATABASE wp3db DEFAULT CHARSET utf8mb4;\r\n<\/span>\r\n<span style=\"color: #6a8759;\">CREATE USER 'wp1user'@'%' IDENTIFIED BY 'wp1StrongPass';\r\n<\/span><span style=\"color: #6a8759;\">CREATE USER 'wp2user'@'%' IDENTIFIED BY 'wp2StrongPass';\r\n<\/span><span style=\"color: #6a8759;\">CREATE USER 'wp3user'@'%' IDENTIFIED BY 'wp3StrongPass';\r\n<\/span>\r\n<span style=\"color: #6a8759;\">GRANT ALL PRIVILEGES ON wp1db.* TO 'wp1user'@'%';\r\n<\/span><span style=\"color: #6a8759;\">GRANT ALL PRIVILEGES ON wp2db.* TO 'wp2user'@'%';\r\n<\/span><span style=\"color: #6a8759;\">GRANT ALL PRIVILEGES ON wp3db.* TO 'wp3user'@'%';\r\n<\/span>\r\n<span style=\"color: #6a8759;\">FLUSH PRIVILEGES;\r\n<\/span><span style=\"color: #6a8759;\">EOF<\/span><\/pre>\n<p>\u6700\u540e\uff1a\u8f93\u5165IP\uff08\u6216\u57df\u540d\uff09\u52a0\u7aef\u53e3\u5373\u53ef\u5b89\u88c5wordpress\u3002<\/p>\n<p>\u5176\u4ed6\uff1a\u5907\u4efd\uff1a<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">&amp;lt;\/pre&amp;gt;\r\n#!\/bin\/bash\r\nBACKUP_DIR=&quot;\/data\/wp\/backup\/db&quot;\r\nDATE=$(date +%F)\r\n\r\ndocker exec wp_db mysqldump -uroot -pStrongRootPass \\\r\n--single-transaction --routines --triggers --events \\\r\n--all-databases \\\r\n&amp;gt; $BACKUP_DIR\/wp_db_$DATE.sql\r\n\r\nfind $BACKUP_DIR -type f -mtime +7 -delete\r\nchmod +x \/usr\/local\/bin\/wp_db_backup.sh\r\ncrontab -e\r\n# \u52a0\u5165\u00a0 \u6bcf\u5929\u51cc\u66683\u70b9\u5907\u4efd\r\n0 3 * * * \/usr\/local\/bin\/wp_db_backup.sh\r\n10 3 * * * \/usr\/local\/bin\/wp_files_backup.sh&lt;\/pre&gt;\r\n&amp;nbsp;\r\n&lt;pre&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<pre><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u6b65\u9aa4\u4e00\uff1a\u521b\u5efa\u672c\u5730\u76ee\u5f55\u6587\u4ef6\u5e76\u8d4b\u6743\u9650\uff1a mkdir -p \/data\/wp\/{mysql,backup\/db,ba [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1587","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/posts\/1587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1587"}],"version-history":[{"count":7,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/posts\/1587\/revisions"}],"predecessor-version":[{"id":1594,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/posts\/1587\/revisions\/1594"}],"wp:attachment":[{"href":"https:\/\/notes.coremix.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}