rbdwllr/dusty

该包的最新版本(0.3.0)没有提供许可证信息。

一个使用Composer和Docker的WordPress入门级代码库。

0.3.0 2020-12-10 10:03 UTC

This package is auto-updated.

Last update: 2024-09-11 18:21:41 UTC


README

PHP Version Support

Dusty是一个基于ComposerDocker的WordPress入门级代码库。它允许您创建WordPress代码库,而无需在Git代码库中存储核心WordPress文件。这使得部署更加容易,代码更干净。它还允许您通过Composer加载非WordPress包,例如PHPDotEnv

设置

要使用Dusty,您需要在本地安装ComposerDocker。Composer是PHP包管理器,与Packagist相关联,Docker是一个容器化平台,允许您轻松生成开发环境和生产环境。

安装

假设您在一个Linux或类似Linux的环境中工作。

使用Composer安装

composer create-project --no-dev --no-interaction --ignore-platform-reqs rbdwllr/dusty [project-name]

构建Docker

docker-compose build
docker-compose up -d

创建包含WordPress密钥的.env文件

docker-compose exec web composer make-environment

完成这些步骤后,转到localhost:8080使用WordPress并完成安装过程。

包和插件管理

默认情况下,Composer可以从Packagist中拉取包,如果您想扩展WordPress以使用更多的通用PHP库和框架,这很好。但这并不能帮助您轻松管理插件和主题。然而,Dusty集成了名为WPackagist的包管理器,它是用于插件和主题的WordPress版本的Packagist。

您可以通过与添加PHP包相同的方式将插件和主题添加到您的composer.json文件中。它们也将放在相应的WordPress目录中,而不是供应商文件夹中。

// Example composer.json config, using WPackagist.
"repositories":[
    {
        "type":"composer",
        "url":"https://wpackagist.org"
    }
],
"require": {
    "wpackagist-plugin/wordpress-seo": "^11.0",
    "wpackagist-plugin/advanced-custom-fields": "^5.0",
    "wpackagist-theme/twentynineteen": "^1.0",
},
"extra": {
    "installer-paths": {
        "public/wp-content/mu-plugins/{$name}": ["type:wordpress-muplugin"],
        "public/wp-content/plugins/{$name}": ["type:wordpress-plugin"],
        "public/wp-content/themes/{$name}": ["type:wordpress-theme"]
    },
    "wordpress-install-dir": "public/wordpress"
}

使用私有仓库

有时您可能希望保留一些代码的私有性,但仍然可以通过Composer来拉取。例如,您可能有一个包含品牌材料和自定义代码的WordPress主题。

您可以通过将版本控制系统仓库添加到Composer配置中来这样做

"repositories":[
    {
        "type":"composer",
        "url":"https://wpackagist.org"
    },
    {
        "type": "vcs",
        "url":  "git@github.com:vendor/repo-name.git"
    }
],

注意: 您的主题将需要一个包含配置的composer.json文件,该配置将其定义为WordPress主题。如果您正在创建私有插件,也需要类似设置,但您将设置类型为"type": "wordpress-plugin"

// Example composer.json for a WordPress theme.
{
    "name": "vendor/theme",
    "description": "My cool theme.",
    "type": "wordpress-theme",
    "license": "proprietary",
    "require": {}
}

仓库SSH密钥

通常,如果您使用的是VCS仓库,例如GitHub,它将是私有的,您需要允许Composer对仓库进行身份验证。最简单的方法是使用SSH密钥。

要给Docker访问这些SSH密钥,您需要将它们复制到Web容器中并修改用户权限

# Copy your local private key into the root/.ssh folder of the web container.
docker cp ~/.ssh/id_rsa wordpress_web:/root/.ssh

# Amend the privileges of the .ssh folder to 600 in the web container.
docker-compose exec web chmod 600 -R /root/.ssh

完成此操作后,您可以在没有任何交互的情况下运行composer installdocker-compose exec web composer install --no-dev --no-interaction

注意: 密钥将存储在一个单独的Docker卷中,即使您删除容器,它们也会持续存在。

管理 MySQL

有时您需要直接与 MySQL(MariaDB)交互,您可以通过 SQL 图形用户界面工具来完成此操作,例如 SequelProHeidiSQL。但您也可能希望通过 CLI 与数据库交互,这可以通过 docker-compose 轻松完成。

# Access MySQL Database.
docker-compose exec data mysql

您还可以通过 CLI 将数据导入数据库,Dusty 使得这一点变得简单。当您通过 docker-compose 创建 Dusty 时,会在本地和容器中创建一个名为 data 的目录。然后,您可以将 SQL 文件放入本地 data 目录中,它们将可供容器使用。然后,您就可以访问容器并导入这些文件。

docker-compose exec data bash

cd /var/www/html/data

mysql wordpress < example.sql

您也可以以类似的方式将数据导出到本地数据目录。

docker-compose exec data bash

cd /var/www/html/data

mysqldump wordpress > my-dump.sql

有用资源

猫税

这是 Dusty,又名公主 Dustle-Puff,所有柔软和可挠事物的统治者,我以她的名字命名了这个仓库。她坐在我的代码椅上,我想她是在试图帮忙...