Wp core (WP-CLI)

Uit De Vliegende Brigade
Versie door Jeroen Strompf (overleg | bijdragen) op 16 jun 2022 om 19:36 (Nieuwe pagina aangemaakt met '''wp core'': Download, installeer, update & beheer een WordPress-installatie. <pre> $ wp help core NAME wp core DESCRIPTION Downloads, installs, updates, a...')
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

wp core: Download, installeer, update & beheer een WordPress-installatie.

$ wp help core

NAME

  wp core

DESCRIPTION

  Downloads, installs, updates, and manages a WordPress installation.

SYNOPSIS

  wp core <command>

SUBCOMMANDS

  check-update           Checks for WordPress updates via Version Check API.
  download               Downloads core WordPress files.
  install                Runs the standard WordPress installation process.
  is-installed           Checks if WordPress is installed.
  multisite-convert      Transforms an existing single-site installation into a multisite installation.
  multisite-install      Installs WordPress multisite from scratch.
  update                 Updates WordPress to a newer version.
  update-db              Runs the WordPress database update procedure.
  verify-checksums       Verifies WordPress files against WordPress.org's checksums.
  version                Displays the WordPress version.

EXAMPLES

    # Download WordPress core
    $ wp core download --locale=nl_NL
    Downloading WordPress 4.5.2 (nl_NL)...
    md5 hash verified: c5366d05b521831dd0b29dfc386e56a5
    Success: WordPress downloaded.

    # Install WordPress
    $ wp core install --url=example.com --title=Example --admin_user=supervisor --admin_password=strongpassword
    --admin_email=info@example.com
    Success: WordPress installed successfully.

    # Display the WordPress version
    $ wp core version
    4.5.2

wp core config

Creëer een nieuw wp-config.php-bestand. Dit commando wordt niet genoemd op de site. Daar heb je het vergelijkbare commando wp config create.

wp config create

   --dbname=<dbname>            Set the database name.
   --dbuser=<dbuser>            Set the database user.
   [--dbpass=<dbpass>]          Set the database user password.
   [--dbhost=<dbhost>]          Set the database host.
                                default: localhost
   [--dbprefix=<dbprefix>]      Set the database table prefix.
                                default: wp_
   [--dbcharset=<dbcharset>]    Set the database charset.
                                default: utf8
   [--dbcollate=<dbcollate>]    Set the database collation.
                                default:
   [--locale=<locale>]          Set the WPLANG constant. 
                                Defaults to $wp_local_package variable.
   [--extra-php]                If set, the command copies additional PHP code 
                                into wp-config.php from STDIN.
   [--skip-salts]               If set, keys and salts won’t be generated, 
                                but should instead be passed via --extra-php.
   [--skip-check]               If set, the database connection is not checked.
   [--force]                    Overwrites existing files, if present. 

wp core download

Voorbeeld van gedownloade WordPress-instanties als zip-bestanden

download een actuele WordPress-instantie en plaats die uitgepakt en MD5-geverifiëerd in de werkmap, of in de map die wordt meegegeven. In tegenstelling tot Drupal, werkt dit heel simpel.

wp core download

   [--path=<path>]         Specify the path in which to install WordPress. Defaults to current directory.
   [--locale=<locale>]     Select which language you want to download.
   [--version=<version>]   Select which version you want to download. Accepts a version number, ‘latest’ or ‘nightly’
   [--force]               Overwrites existing files, if present. 

Voorbeeld:

$ cd /var/www/example.com

$ wp core download

Downloading WordPress 5.9.1 (en_US)...
md5 hash verified: 5bbe205b48cf9255fd7c954040aeb125
Success: WordPress downloaded.

$ ls
index.php    wp-activate.php     wp-comments-post.php  wp-cron.php        wp-load.php   wp-settings.php   xmlrpc.php
license.txt  wp-admin            wp-config-sample.php  wp-includes        wp-login.php  wp-signup.php
readme.html  wp-blog-header.php  wp-content            wp-links-opml.php  wp-mail.php   wp-trackback.php

Wat-ie precies doet:

  • De WordPress-instantie wordt gedownload als gezipped phar-archief naar /tmp. Zie afbeelding hiernaast
  • md5-hash van dit archiefbestand wordt geverifiëerd
  • Het archiefbestand wordt uitgepakt naar een tijdelijke locatie

Foutmelding: Couldn't decompress

Het probleem:

wp core download
Downloading WordPress 4.8.2 (en_US)...
md5 hash verified: 2e8744a702a3d9527782d9135a4c9544
Error: Couldn't extract WordPress archive. unable to decompress gzipped phar archive "/tmp/wp_59c276fb45c4b.tar.gz" to temporary file

Aanvullende gegevens:

  • sudo chmod o+w /tmp - Hielp niet
  • sudo /usr/local/bin/wp core download --allow-root - Hielp niet
  • wp cli ge-update - Hielp niet

wp core install

Installeer een gedownloade WordPress-instantie:

$ wp help core install 

NAME

  wp core install

DESCRIPTION

  Runs the standard WordPress installation process.

SYNOPSIS

  wp core install --url=<url> --title=<site-title> --admin_user=<username> [--admin_password=<password>]
  --admin_email=<email> [--skip-email]

  Creates the WordPress tables in the database using the URL, title, and
  default admin user details provided. Performs the famous 5 minute install
  in seconds or less.

  Note: if you've installed WordPress in a subdirectory, then you'll need
  to `wp option update siteurl` after `wp core install`. For instance, if
  WordPress is installed in the `/wp` directory and your domain is example.com,
  then you'll need to run `wp option update siteurl http://example.com/wp` for
  your WordPress installation to function properly.

  Note: When using custom user tables (e.g. `CUSTOM_USER_TABLE`), the admin
  email and password are ignored if the user_login already exists. If the
  user_login doesn't exist, a new user will be created.

OPTIONS

  --url=<url>
    The address of the new site.

  --title=<site-title>
    The title of the new site.

  --admin_user=<username>
    The name of the admin user.

  [--admin_password=<password>]
    The password for the admin user. Defaults to randomly generated string.

  --admin_email=<email>
    The email address for the admin user.

  [--skip-email]
    Don't send an email notification to the new admin user.

EXAMPLES

    # Install WordPress in 5 seconds
    $ wp core install --url=example.com --title=Example --admin_user=supervisor --admin_password=strongpassword
    --admin_email=info@example.com
    Success: WordPress installed successfully.

    # Install WordPress without disclosing admin_password to bash history
    $ wp core install --url=example.com --title=Example --admin_user=supervisor --admin_email=info@example.com
    --prompt=admin_password < admin_password.txt
  • Dit commando moet uitgevoerd worden in de working map waar de installatiebestanden staan, en waar de site geïnstalleerd moet worden
  • Op mijn ontwikkelcomputer kreeg ik een foutmelding dat Sendmail niet gevonden kon worden. Ik weet niet of dat door het script komt, of een configuratiefout ergen op m'n computer.

Dit commando werkt alleen met een al gedownloade WordPress-instantie:

$ wp core install --url=example.com --title="Example.com"

Error: This does not seem to be a WordPress installation.
Pass --path=`path/to/wordpress` or run `wp core download`.

Compleet voorbeeld

Al deze commando's zijn noodzakelijk. Het werkt trouwens heel soepeltjes. Veel gemakkelijker dan downloaden enzo:

cd /var/www/example.com
wp core download
wp config create --dbname=example_com --dbuser=example_com --dbpass=example_123_EXAMPLEEEE
wp core install --url=example.com --title="Example.com" --admin_user="Jan Jansen" --admin_password="blubBLddddUB-123" --admin_email="info@example.com"

wp core update

Simpel:

wp core update

Plugins worden hierbij niet bijgewerkt.

wp core update-db

Geen idee waarom er een apart commando is om de db bij te werken. Eén keer gedaan na update van een site die al een tijdje niet was bijgewerkt: Geen verschil.