本页内容

  • 准备工作
  • 本教程涵盖内容?
  • LEMP 服务器(Linux、Nginx、MySQL、PHP)的安装与配置
  • 安装 WP-CLI
  • WP-CLI 基础命令 1. 安装 WordPress 并配置数据库 2. 使用 WP-CLI 管理 WordPress 主题 3. 使用 WP-CLI 管理 WordPress 插件 4. 管理 WordPress 数据库 5. 其他命令
  • 结语
  • 参考
  • 1. 安装 WordPress 并配置数据库
  • 2. 使用 WP-CLI 管理 WordPress 主题
  • 3. 使用 WP-CLI 管理 WordPress 插件
  • 4. 管理 WordPress 数据库
  • 5. 其他命令

WordPress 是基于 PHP 和 MySQL 最广泛使用的开源内容管理系统(CMS)。WordPress 被安装在超过 6000 万个网站上。WordPress 有大量的现成主题和插件可供使用。你可以将 WordPress 用作博客平台、电子商务站点(配合 WooCommerce),或用作公司网站的 CMS 系统。Matt Mullenweg 和 Mike Little 于 2003 年 5 月 27 日根据 GPLv2 许可发布了第一个 WordPress 版本。

WP-CLI 是一个命令行工具,提供用于管理 WordPress 站点的命令行接口。从零到精通,你都可以用它来创建 WordPress 站点、管理 WP 数据库、修改站点描述、安装和管理主题与插件等。这是非常酷的功能,能为你节省大量时间。你无需在 Web 浏览器中登录 WordPress,即可更新插件、搭建多站点安装等更多操作。你完全可以在 shell 终端/SSH 中完成这一切。

准备工作

  • 这里我将使用 Ubuntu 22.04
  • root 权限

本教程涵盖哪些内容?

  • 安装并配置一个基础的 LEMP(Linux、Nginx、MySQL、PHP)服务器。
  • 安装 WP-CLI
  • 使用 WP-CLI 安装 WordPress
  • WP-CLI 命令详解

LEMP 服务器(Linux、Nginx、MySQL、PHP)的安装与配置

在本教程中,我将使用 Nginx 作为 Web 服务器、MySQL 作为数据库系统,并使用 PHP-FPM 来运行 WordPress。Nginx 是最快的 Web 服务器之一,它以低内存占用提供高性能。

那么我们开始吧,首先用一条 "apt-get" 命令安装所有软件包:

sudo apt install nginx mysql-server mysql-client php8.1 php8.1-fpm php8.1-mysql vim

注意:系统会提示你输入 MySQL 密码。请为 MySQL root 用户设置一个安全的密码,并记住该密码。我们稍后还会用到它。

现在编辑目录 "/etc/php/8.1/fpm/" 下的 php.ini 文件。

cd /etc/php/8.1/fpm/
sudo nano php.ini

请取消第 773 行 "cgi.fix_pathinfo" 的注释,并将其值修改为 0:

cgi.fix_pathinfo=0

保存并退出。

现在配置 Nginx 以使用 PHP-FPM。请进入目录 "/etc/nginx/sites-available/" 并为虚拟主机配置创建一个新文件。

cd /etc/nginx/sites-available/
sudo nano wpcli.co

粘贴以下配置:

server {
    listen 80;
    #Web Directory
    root /home/vagrant/wordpress;

    index index.php index.html index.htm index.nginx-debian.html;

    server_name wpcli.co;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    #include h5bp/basic.conf;

    location ~ /\.ht {
        deny all;
    }
}

将 server_name 设置中的 "wpcli.co" 替换为你 WordPress 安装所要使用的域名。

现在通过创建指向 wpcli.co 文件的符号链接(symlink)来启用虚拟主机,链接位于目录 "/etc/nginx/sites-enabled/":

sudo ln -s /etc/nginx/sites-available/wpcli.co /etc/nginx/sites-enabled/wpcli.co

然后创建一个名为 "/home/vagrant/wordpress/" 的新目录,并创建一个新文件,使用 phpinfo() 测试 PHP 安装。这里我将使用一个名为 "vagrant" 的用户,因此 "cd ~" 等同于 "cd /home/vagrant":

cd ~
mkdir -p /home/vagrant/wordpress
echo "<?php phpinfo(); ?>" > wordpress/index.php

重启 nginx Web 服务器和 php-fpm:

sudo service nginx restart
sudo service php8.1-fpm restart

在浏览器中访问站点 "http://wpcli.co/" 来测试 PHP 和 Nginx 的安装情况。请将 wpcli.co 替换为你网站/服务器的域名。

安装 WP-CLI

要安装 wp-cli,你需要使用 curl 或 wget 命令从 GitHub 下载 .phar 文件(.phar 是类似于 Java 中 .jar 的 PHP 归档格式),这里我将使用 curl:

cd /tmp
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

使 wp-cli.phar 文件可执行:

chmod +x wp-cli.phar

并将其移动到 bin 目录,该命令将 wp-cli.phar 重命名为 "wp" 以便更方便地使用:

sudo mv wp-cli.phar /usr/local/bin/wp

现在使用以下命令测试 wp-cli:

wp --info

从这里你可以看到我使用的是 PHP 8.1

WP-CLI 基础命令

到这一步,我们已经拥有:

  • 一个正在运行的 LEMP(Nginx、MySQL 和 PHP)安装。
  • 一个域名为 wpcli.co(或你为站点选择的域名)的 VirtualHost。
  • 位于 "/home/vagrant/wordpress/" 的 Web 目录。
  • 已安装的 WP-CLI 命令。

我们将在目录 "/home/vagrant/wordpress/" 中使用域名 "wpcli.co" 安装 WordPress。我们将通过 WP-CLI 来完成。

1. 安装 WordPress 并配置数据库

请进入 Web 目录:

cd /home/vagrant/wordpress/

使用 wp-cli 下载 WordPress,你也可以下载不同的 WordPress 版本,这里我将使用 6.1.1 版本:

wp core download --version=6.1.1

如果你想使用其他版本,请更改版本号。

接下来,通过 MySQL shell 为 WordPress 创建数据库。请使用以下命令连接到 MySQL 服务器:

sudo mysql -u root -p
ENTER YOUR PASSWORD

登录 MySQL 后,创建一个新用户和数据库:

create database wordpressdb;
create user iamuser@localhost identified by 'iamuser@';
grant all privileges on wordpressdb.* to iamuser@localhost identified by 'iamuser@';
flush privileges;
\q

我创建了一个名为 "wordpressdb" 的新数据库、一个名为 "iamuser" 的新用户,并授予该用户访问该数据库的权限。

数据库已创建,现在我将使用上面添加的 MySQL 用户的数据库凭据创建一个 "wp-config.php" 文件。

wp core config --dbname=wordpressdb --dbuser=iamuser --dbpass=iamuser@

当你看到这一行时,说明文件已成功创建。

Success: Generated wp-config.php file.

各选项说明如下:

  • --dbname = 数据库名称
  • --dbuser = 被授予数据库权限的用户
  • --dbpass = 数据库密码

现在是通过 "wp core install" 命令安装 WordPress 的时候了,该命令需要以下参数:

  • --url:你的域名。wpcli.co
  • --title:你站点的标题。
  • --admin_user:用于登录 WordPress 的管理员用户名。
  • --admin_password:管理员用户的密码
  • --admin_email:你的电子邮件地址,用于接收与站点相关的任何问题的通知。

我们来执行:

wp core install --url=wpcli.co --title=WP-CLI\ \Tutorials --admin_user=admin --admin_password=aqwe123 
[email protected]

该命令输出结果如下:

Success: WordPress installed successfully.

现在再次用 Web 浏览器访问你的域名:wpcli.co。

(如果你想测试管理员后台,请改访问 wpcli.co/wp-login.php。)

注意:

如果你遇到类似 "sh: 1: /usr/sbin/sendmail: not found" 的错误消息,请使用以下 apt 命令安装 "sendmail":

sudo apt-get install sendmail

2. 使用 WP-CLI 管理 WordPress 主题

搜索可用的 WordPress 主题:

wp theme search KEYWORD-THEME

安装一个 WordPress 主题,这里以名为 "MyKnowledgeBase" 的主题为例:

wp theme install MyKnowledgeBase

主题安装完成后,激活它:

wp theme activate myknowledgebase

获取所有已安装主题的列表:

wp theme list

3. 使用 WP-CLI 管理 WordPress 插件

搜索插件:

wp plugin search KEYWORD

安装插件:

wp plugin install PLUGINNAME

激活插件:

wp plugin activate PLUGINNAME

查看所有已安装的插件:

wp plugin list

获取插件的状态(启用或禁用):

wp plugin status

4. 管理 WordPress 数据库

使用 WordPress 凭据连接到 MySQL shell:

wp db cli

显示 WordPress 数据库中的所有表:

wp db tables

将 WordPress 数据库导出为 .sql 文件。这对备份非常有用:

wp db export databasename.sql

导入 WordPress 数据库:

wp db import databasename.sql

以 WordPress 的 MySQL 用户身份执行 MySQL 查询:

wp db query "MySQL Query"

5. 其他命令

WP-CLI 还有更多命令和选项。你可以使用 "wp --help" 查看所有命令。WP-CLI 提供了用于管理 WordPress 用户、用户角色、文章、菜单、小工具等的命令。

结语

WordPress 是一个流行的 CMS 和博客平台,被数百万个网站所使用。WordPress 有许多免费和付费的插件与主题可供使用。WP-CLI 是用于管理 WordPress 站点的一组命令。它非常实用且易于使用。你可以直接在 shell 上构建并管理 WordPress 站点,而无需在浏览器中登录 WordPress。

参考

  • https://github.com/wp-cli/wp-cli/wiki/
  • http://wp-cli.org/commands/