skript.cc / wordpress-installer
适用于Composer的高级Wordpress安装程序。
Requires
- php: >=8.0
- composer-plugin-api: ^1.0 || ^2.0
Requires (Dev)
- composer/composer: ^1.0 || ^2.0
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-28 14:43:02 UTC
README
Wordpress安装程序用于Composer。允许使用默认目录结构安装Wordpress,并使用Composer管理插件和主题作为依赖项。
此包提供与John P. Blochs wordpress核心安装程序相同的功能,但无需在子目录中安装Wordpress。
关于类似功能请求的讨论请参阅 https://github.com/johnpbloch/wordpress-core-installer/pull/11。如果不在子目录中安装Wordpress没有问题,则此包将无用。
安装
要使用wordpress安装程序,请将其添加到composer.json的要求中,除了johnpbloch/wordpress要求之外。
composer init # only needed when starting a new project
composer require skript.cc/wordpress-installer johnpbloch/wordpress
或者直接将要求添加到composer文件中,并运行composer install
。
{
"name": "your/wordpress-installation",
"type": "project",
"require": {
"skript.cc/wordpress-installer": "*@dev",
"johnpbloch/wordpress": "^5.0",
}
}
使用方法
默认安装后,您将得到以下目录结构
.
├── composer.json
├── composer.lock
├── config
│ └── wp-config.php
└── public
│ └── ...wordpress installation...
└── uploads
│ └── ...files uploaded in wordpress...
└── vendor
└── ...composer packages...
Wordpress安装在public
目录中,作为文档根。上传目录和wp-config.php文件放置在此目录之外。这是因为当运行composer install
或composer update
时,默认情况下将覆盖public
目录中的所有内容。在原则上,这使public/
目录可丢弃。
提示 建议将公共目录添加到您的vcs忽略文件中。
然而,可能存在一些您希望在不同安装之间保留的文件,例如.htaccess文件。为此,您可以指定保留配置。
{
"name": "your/wordpress-installation",
"type": "project",
...
"extra": {
"wordpress-installer": {
"keep": [".htaccess"]
}
}
}
除了保留配置之外,还有清除配置,用于从默认Wordpress安装中删除文件(例如readme.html)。
{
"name": "your/wordpress-installation",
"type": "project",
...
"extra": {
"wordpress-installer": {
"clean": ["readme.html"]
}
}
}
添加Wordpress插件和主题
由于插件和主题目录未放置在public
目录之外,您可能会想知道如何安装任何插件或主题。答案是:通过composer。
您不必手动安装插件或主题,也不必通过Wordpress界面安装,只需将其作为composer依赖项添加即可。当您使用wpackagist存储库时,这尤其简单。您只需确保wpackagist已列在您的composer.json文件中的存储库中,如下所示。
{
"name": "your/wordpress-installation",
"type": "project",
"require": {
"skript.cc/wordpress-installer": "0.2.0",
"johnpbloch/wordpress": "^5.0"
},
"repositories": [
{
"type": "composer",
"url": "https://wpackagist.org"
}
]
}
当添加wpackagist存储库时,您可以使用composer require wpackagist-plugin/[plugin-name]
来安装插件,并使用composer require wpackagist-theme/[theme-name]
来安装主题。您将得到一个类似以下的composer文件
{
...
"require": {
"skript.cc/wordpress-installer": "0.2.0",
"johnpbloch/wordpress": "^5.0",
"wpackagist-plugin/wordpress-seo": "*",
"wpackagist-theme/hueman": "*"
},
"repositories": [
{
"type": "composer",
"url": "https://wpackagist.org"
}
],
...
}
配置选项
所有配置选项应放在composer.json中的extra.wordpress-installer
字段中。
install-dir
:安装Wordpress的目录,默认为public/
config-dir
:放置wp-config.php的目录,默认为config/
uploads-dir
:存储上传的目录,默认为uploads/
keep
:指定要保留的路径的数组。路径相对于install-dir
。{ "extra": { "wordpress-installer": { "keep": [".htaccess"] } } }
clean
:指定在完整安装后要清理的路径的数组。路径相对于install-dir
。{ "extra": { "wordpress-installer": { "clean": ["wp-config.sample.php"] } } }
wp-clean
:指定从默认Wordpress安装中清理的路径的数组。使用此功能可删除默认wp安装中包含的插件和主题(例如akismet)并保留通过composer安装的具有相同名称的插件。{ "extra": { "wordpress-installer": { "wp-clean": ["wp-content/plugins/akismet"] } } }
编辑 config/wp-config.php
在安装过程中,将在 config/ 目录内创建一个默认的 wp-config.php 文件。它基本上与随 WordPress 一起提供的 wp-config-sample.php 文件相同,但它已经填写好了!您可以随意编辑此文件。一旦创建了 wp-config.php 文件,它就不会在后续的安装或更新中被覆盖。
当您对默认设置满意时,您唯一需要做的是定义您的数据库凭据。我们提供了一些可能的方法供您参考。
在环境中存储配置
根据《十二要素应用模式》的第三原则(十二要素应用模式),所有可能在部署之间变化的配置都应该存储在环境变量中。数据库凭据是这种方法的绝佳例子。
在生成的配置文件中,您可以看到数据库凭据是通过传递一个环境变量来设置的。
// ...
define('DB_NAME', getenv('WP_DB_NAME'));
define('DB_USER', getenv('WP_DB_USER'));
define('DB_PASSWORD', getenv('WP_DB_PASSWORD'));
define('DB_HOST', getenv('WP_DB_HOST') ?: 'localhost');
define('DB_CHARSET', getenv('WP_DB_CHARSET') ?: 'utf8');
define('DB_COLLATE', getenv('WP_DB_COLLATE') ?: '');
这实际上是将配置委托给了环境,但仍然留下了一个问题:您如何为您的安装设置环境变量呢?好吧,这很大程度上取决于您的(开发)服务器设置。您可以使用服务器(例如 apache、nginx)提供的任何功能,或者使用以下选项之一。
在 config/.env.php 文件中存储配置
默认的 wp-config.php 以包含 config/.env.php
的行开始。您可以使用此文件来设置任何特定于环境的配置。
另一种选择是将所有与数据库相关的 define 语句移动到 .env.php
文件中,并从 wp-config.php
中删除它们。
提示 在您的 vcs 忽略文件中忽略 config/.env.php
,以将您的配置与代码分开。
使用 PHP dotenv 工具
PHP dotenv 包允许您从 .env 文件中加载环境变量。如果您还想在其他(bash)脚本中加载环境配置,这特别有用。例如,您可以替换 .env 包含以下行。
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
有关 Dotenv 的更多信息,请阅读文档。
贡献
当您遇到错误或有改进想法时,请提交问题。合并请求欢迎。