rbdwllr / dusty
一个使用Composer和Docker的WordPress入门级代码库。
Requires
- php: >=7.4.0
- johnpbloch/wordpress: ^5.5
- rbdwllr/atlantic-city: ^0.3
- rbdwllr/wordpress-salts-generator: ^0.2
- vlucas/phpdotenv: ^5.2
- wpackagist-plugin/advanced-custom-fields: ^5.9
- wpackagist-plugin/wordpress-seo: ^15.0
- wpackagist-theme/twentytwenty: ^1.5
Requires (Dev)
- phpunit/phpunit: ^9.4
- szepeviktor/phpstan-wordpress: ^0.7
This package is auto-updated.
Last update: 2024-09-11 18:21:41 UTC
README
Dusty是一个基于Composer和Docker的WordPress入门级代码库。它允许您创建WordPress代码库,而无需在Git代码库中存储核心WordPress文件。这使得部署更加容易,代码更干净。它还允许您通过Composer加载非WordPress包,例如PHPDotEnv。
设置
要使用Dusty,您需要在本地安装Composer和Docker。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 图形用户界面工具来完成此操作,例如 SequelPro 或 HeidiSQL。但您也可能希望通过 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
有用资源
- Chris Sherry 的 在 PHP UK 上的关于 WordPress 和 Composer 的演讲。
猫税
这是 Dusty,又名公主 Dustle-Puff,所有柔软和可挠事物的统治者,我以她的名字命名了这个仓库。她坐在我的代码椅上,我想她是在试图帮忙...