首页 > 解决方案 > WordPress、Git 和 Docker

问题描述

我刚开始玩 WordPress,我有几个问题:

  1. 我想使用 Git 跟踪我的更改。据我研究,我应该只跟踪:“wp-config.php”和“wp-content”目录。是否有另一种方法可以跟踪 WP 项目的更改?
  2. 每次我克隆项目时,它都会在设置阶段迎接我。我注意到更改并没有真正保存,即删除插件或创建页面。查看数据库后,我注意到 WP 在数据库中存储页面和更多信息。我怎样才能跟踪这种变化?

注意:我使用 Docker & Docker-Composer 创建了一个开发环境,如下所示。我想添加页面并进行配置,然后将更改上传到 git 存储库。唯一的问题是 WP 将更改保存到数据库中。我该如何处理?

version: '3'

services:
  mysql:
    image: mysql:8
    container_name: "MySQL-Database"
    restart: always
    command: "--default-authentication-plugin=mysql_native_password"
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    volumes:
      - ./mysql_data:/var/lib/mysql

  excelsior:
    build: ./excelsior-app/
    container_name: "Wordpress-Server"
    depends_on: 
      - mysql
    restart: always
    volumes:
      - ./excelsior-app/wp-content:/var/www/html/wp-content
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    ports:
      - 8080:80
      - 443:443

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: "PHP-MyAdmin"
    depends_on: 
      - mysql
    restart: always
    ports:
      - 3333:80
    environment:
      PMA_HOST: mysql
      MYSQL_ROOT_PASSWORT: wordpress 

“精益求精”如下:

FROM wordpress

COPY wp-config.php /var/www/html/

标签: wordpressgitdockerdocker-compose

解决方案


WordPress 将其数据存储在数据库中的原因是因为这些数据大部分是二进制格式、媒体、图片、表格、索引。

Git 可以很好地跟踪文本源代码文件中的更改,Git 不是为存储任何类型的二进制/媒体/数据文件而构建的,因为没有跟踪媒体/二进制文件中的更改的概念。

因此,Git 将是存储 PHP 脚本和配置文件并跟踪您对这些文件所做的更改的好地方。

为了备份和恢复,甚至将最新的开发内容从一台 WordPress 服务器复制到另一台,您可以使用导出工具将所有内容导出到一个 XML 文件,然后将其保存为备份以用于恢复整个WordPress 内容及时到特定状态。


推荐阅读