awei01/version-controlled-wordpress

版本控制的wordpress模板

v0.0.6 2016-08-16 20:56 UTC

This package is not auto-updated.

Last update: 2024-09-20 21:17:11 UTC


README

这是一个有观点的wordpress模板安装,旨在通过允许一切都在源代码控制下,包括媒体上传和数据库,使开发和部署更加易于管理。

虽然这个模板应该可以在任何操作系统上运行,但这个readme是针对Linux/Debian系统编写的。您可能需要搜索特定环境的替代命令。

请注意,在Windows环境中,符号链接可能有点麻烦。您需要搜索如何解决这些问题。

动机

WordPress诞生于FTP是发布网站最佳工具的时代。它主要是为设计师而不是开发者设计的。因此,维护和版本控制是一个噩梦。这个存储库旨在减轻开发者在开发和维护WordPress安装时可能遇到的一些头痛问题。

这个存储库假设您在技术上是足够熟练的,可以通过命令提示符在服务器上找到自己的路。

默认配置

以下所有配置都可以通过.env文件禁用

  • 基于文件的缓存:将缓存存储在文件系统storage/cache中,而不是您的wp_options表中。
  • 基于文件的数据库:现在您可以版本控制您的博客内容。您不需要导出/导入MySQL转储。
  • 上传文件夹在wp-content之外:您的uploads文件夹位于wp-content之外。这样,您就可以版本控制上传的内容。
  • 自动插件管理:通过composer.json管理您的插件,而无需依赖于基于Web的安装过程。
  • 禁用自动更新:禁用核心、插件和主题更新,节省数据库读写。您现在可以通过composer.json更精细地控制版本。
  • 抑制管理菜单项和小工具:主题和插件菜单项默认隐藏,因为它们现在通过composer.json管理。某些仪表板小工具默认删除。

系统需求

注意:以下所有命令都是针对基于Debian的系统。

  • Web服务器:虽然任何服务器都可以从技术上与这个代码库一起工作,但我假设使用Apache,并在/server/apache.example.conf中提供了一个示例配置文件。安装:apt-get install apache2
  • PHP >5.6:虽然PHP的早期版本可能也可以工作,但我使用PHP 5.6.17-3开发了此模板。apt-get install php5
  • SQLite PDO驱动程序:apt-get install php5-sqlite 这将覆盖默认的MySQL数据库。如果您真的想使用MySQL,有方法可以重新启用它。
  • Git:版本控制工具。apt-get install git
  • Composer:PHP包管理器。安装说明

建议的安装方法

  • 通过Composer安装:composer create-project --prefer-dist awei01/version-controlled-wordpress <folder>
  • 更改目录到您的文件夹:cd <folder>
  • 初始化您的存储库,以便您可以从头开始检查您的代码更改:git init

当在虚拟机上使用上述步骤时,我在项目中的符号链接损坏方面遇到了问题。我不知道为什么会出现这种情况。要解决这个问题,您可以尝试替代安装说明,或者手动修复符号链接。

替代安装

  • 克隆此仓库: git clone https://github.com/awei01/version-controlled-wordpress.git ./<folder>
  • 更改目录到您的文件夹:cd <folder>
  • 使用Composer安装依赖项: composer install
  • 将git远程仓库重命名为upstream: git remote rename origin upstream
  • 初始化您的仓库,以便您可以开始提交代码更改:git remote add origin <your git url>

继续设置

  • .env.sample复制到.env并编辑值以适应您的配置
  • 确保storage文件夹可递归写入:chmod -R 766 storage
  • 将您的server/apache.example.conf复制并编辑到Apache的sites-enabled
  • 重启Apache
  • 浏览到您的域名,您应该会看到WordPress安装页面。
  • WordPress默认管理位置是http://<domain>/wp/wp-admin

所需符号链接

  • public/wp指向wp用于WordPress核心文件
  • public/content/db.php指向modules/sqlite/init.php以使用SQLite而不是MySQL
  • public/content/object-cache.php指向modules/file-cache/init.php以使用基于文件的缓存
  • public/content/plugins指向/wp-plugins用于Composer管理的WordPress插件
  • public/uploads指向storage/uploads用于上传的媒体

Composer管理的模块

  • vlucas/phpdotenv:允许通过平面文件加载环境特定配置。https://packagist.org.cn/packages/vlucas/phpdotenv
  • illuminate/cache:允许文件缓存
  • illuminate/filesystem:允许文件缓存
  • symfony/var-dumper:为illuminate/cache提供支持模块

Composer管理的WordPress插件

这些可以在http://wpackagist.org/https://wordpresstheme.cn/plugins找到

安装插件/主题

插件和主题现在通过composer.json文件管理。

  • 使用http://wpackagist.org查找您的插件或主题,并将其添加到composer.jsonrequire部分。
  • 从命令行运行composer update以安装新的依赖项。
  • 如果您已安装插件并使用文件缓存,则需要先删除缓存:rm -rf storage/cache/*
  • 再次浏览到您的网站,您的新插件将被激活。

迁移现有WordPress安装

以下是一些迁移现有安装的建议。这些说明都假设您正在使用此仓库的默认配置。

备份

  • 您应该备份现有的安装。使用mysqldump获取数据库的完整转储。压缩并保存现有的代码库,包括您的uploads文件夹。

设置

  • 使用此仓库创建一个新的本地开发环境。
  • 修改composer.json,使johnpbloch/wordpress的版本与您的当前安装匹配。* 如果您想升级WordPress核心版本,我建议在迁移完成后进行。

插件

  • http://wpackagist.org上搜索您的插件,并将其添加到您的composer.json。您可能需要与您现有应用程序中已安装的精确版本相同版本的插件。如果您想尝试较新的插件版本,可以尝试一下。切换插件版本应该非常简单。
  • 如果您对插件进行了与代码相关的自定义,可以直接将这些自定义内容复制到 wp-plugins 文件夹中,并更新 .gitignore 文件,以便这些自定义内容保存到您的代码库中。在这种情况下,不要将插件添加到您的 composer.json 文件中。

主题

  • 与插件相同;找到适当的模块并将其添加到您的 composer.json 文件中。
  • 如果您对主题进行了与代码相关的自定义,可以直接将这些自定义内容复制到 wp-themes 文件夹中,并更新 .gitignore 文件,以便这些自定义内容保存到您的代码库中。
  • 如果您已经对主题进行了自定义,并且知道您未来不会切换主题,只需将您的主题文件复制到 /theme 目录中,它就会显示为默认主题。

预览

  • 启动 Apache 并浏览到您的本地服务器。您将需要创建一个新的 WordPress 安装。

内容迁移

到目前为止,您应该已经有一个干净的网站安装。当然,您的帖子、页面、评论等还没有被迁移。

简单导出/导入

  • 通过访问生产环境的行政界面并导航到 工具 > 导出 来利用默认的 WordPress 导出功能。
  • 下载导出文件并将其保存到您的开发机器上。
  • 在您的本地环境中,将 wpackagist-plugin/wordpress-importer 安装到您的 composer.json 文件中。
  • 在您的环境行政界面中,现在您可以去 工具 > 导入 并按照说明导入您刚刚下载的文件。

高级导出/导入

  • 使用生产环境中的 mysqldump 脚本在本地复制 MySQL 数据库。
  • 您需要以某种方式将您的 MySQL 脚本转换为 SQLite。我使用了一些成功的工具 RazorSQL(免费试用 30 天)。
  • 将您的 uploads 目录复制到 /storage/uploads 文件夹中。现在所有图片都应该存在在您的服务器上。

欢迎提出建议和拉取请求