skript.cc / wordpress-installer

适用于Composer的高级Wordpress安装程序。

安装: 188

依赖者: 0

建议者: 0

安全: 0

星星: 0

分支: 0

类型:composer-plugin

0.3.0 2023-07-28 12:12 UTC

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 installcomposer 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 的更多信息,请阅读文档

贡献

当您遇到错误或有改进想法时,请提交问题。合并请求欢迎。