
本文专门聚焦在DirectAdmin共享主机上使用WP-CLI时最容易出错的环节,这与在拥有完整root权限的VPS上使用有所不同——包括申请SSH权限、常见的权限错误,以及通过cron定时自动执行WP-CLI命令。(如需查看涵盖所有分类的完整命令参考,请阅读我们的WP-CLI完整指南。)
什么是WP-CLI?
WP-CLI(WordPress Command Line Interface)是官方提供的WordPress命令行管理工具,可替代在后台面板中逐项点击操作。其功能涵盖安装、更新、插件/主题管理,直至数据库操作,非常适合需要重复执行或同时管理多个网站的任务,效率远高于逐个点击菜单。
为什么共享主机与VPS的使用方式不同
在VPS上,用户拥有完整的root权限,可以自由地全局安装WP-CLI,运行命令也不受限制。但在DirectAdmin等共享主机上,用户仅拥有自己账户主目录(Home Directory)范围内的权限,因此需要注意一些额外事项:WP-CLI必须安装在个人文件夹中,而非系统全局路径;部分主机通过disable_functions禁用了WP-CLI可能需要用到的某些PHP函数;此外,PHP CLI的内存限制往往与DirectAdmin中为网站设置的内存限制是分开的。
在DirectAdmin主机上申请SSH权限
出于安全考虑,大多数共享主机默认关闭SSH访问权限,使用WP-CLI前需先申请开通:
- 联系主机服务商的客服团队,说明希望为您的账户开通SSH访问权限
- 开通后,您将获得主机名(Hostname)、端口号(部分共享主机出于安全考虑不使用默认的22端口)、用户名及密码或SSH密钥
- 在终端使用
ssh [email protected] -p PORT命令连接,Windows用户也可使用PuTTY软件 - 运行
pwd命令确认连接成功,应能看到您账户的主目录路径
AsiaGB虚拟主机允许客户通过工单系统申请SSH访问权限,团队将在工作时间内审核并开通。
无需root权限安装WP-CLI
由于您没有像在VPS上那样使用sudo mv将文件放入/usr/local/bin的权限,因此需要将WP-CLI安装在个人文件夹中:
- 创建一个用于存放可执行文件的文件夹,例如
mkdir -p ~/bin - 使用
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar下载文件 - 用
chmod +x wp-cli.phar赋予可执行权限,然后移动到个人文件夹:mv wp-cli.phar ~/bin/wp - 在
~/.bashrc或~/.bash_profile文件中添加export PATH="$HOME/bin:$PATH",将个人文件夹加入Shell的PATH路径 - 运行
source ~/.bashrc,然后用wp --version测试是否安装成功
部分主机可能已在系统中预装了WP-CLI,建议先运行wp --version检查,如果已存在,则可跳过整个安装步骤。
解决常见权限错误
- Error: This does not seem to be a WordPress installation——必须在该网站wp-config.php文件所在的文件夹内运行命令,请务必先执行
cd public_html - Error: Could not create directory——通常是写入权限不足所致,请检查SSH登录用户是否与文件所有者一致,如不一致需请求客服调整权限
- PHP Fatal error: Allowed memory size exhausted——PHP CLI的内存限制与网站内存限制是分开的,可用
php -d memory_limit=512M $(which wp) core update为该条命令临时提升内存限制 - Error: exec() has been disabled——部分共享主机出于安全考虑禁用了exec()函数,导致WP-CLI中需要调用外部程序的部分命令无法使用,需联系客服确认是否可为您的账户单独开启
主机日常工作中最常用的命令
在共享主机上进行日常工作时,反复用到的命令其实并不多:
wp core update与wp plugin update --all——一条命令即可更新WordPress核心及全部插件,比在后台逐个点击快得多wp search-replace 'old-url.com' 'new-url.com' --dry-run——在迁移域名或更换主机时,先测试再正式执行URL替换wp db export backup-$(date +%F).sql——在进行重大更新前快速备份数据库(更多数据库相关命令请参见WP-CLI完整指南)wp plugin list --status=inactive——检查仍留存的未启用插件,建议将其删除以降低安全风险
在DirectAdmin上通过Cron定时自动运行WP-CLI
拥有SSH权限后,可以通过DirectAdmin中的Cron Jobs菜单设置计划任务,让WP-CLI命令按计划自动运行,例如每周更新一次插件:
0 3 * * 1 cd /home/username/domains/yourdomain.com/public_html && /home/username/bin/wp plugin update --all --quiet
务必在Cron命令中使用网站文件夹和wp可执行文件的完整路径,因为Cron任务不会像交互式SSH登录那样加载.bashrc中配置的PATH。
小贴士:在运行会改变数据的命令(如search-replace或core update)之前,务必先用JetBackup或DirectAdmin标准备份功能备份数据库。尽管WP-CLI快速便捷,但它会立即生效,不像后台面板那样有二次确认步骤。
是不是所有共享主机都支持WP-CLI?
并非所有主机都支持,这取决于服务商是否开放SSH访问权限。AsiaGB虚拟主机允许客户通过工单系统申请SSH访问权限;而部分其他主机出于安全考虑可能完全不开放。使用前请先向服务商确认。
没有SSH权限可以使用WP-CLI吗?
不能直接使用,因为WP-CLI只能在终端中运行。如果没有SSH访问权限,需要照常通过后台面板管理网站,或请主机服务商先为您开通SSH。
为什么运行wp命令时提示Permission Denied?
这通常是因为SSH登录的用户与文件所有者不一致,或安装的wp文件缺少可执行权限。可用ls -la检查,并在需要时用chmod +x赋予可执行权限。
wp-cli.phar和wp有什么区别?
两者是同一个文件——wp-cli.phar是下载下来的原始文件名,wp则是移动到PATH文件夹后重命名的简短名称,方便输入命令,功能上没有任何区别。
设置的WP-CLI定时任务不生效,应该先检查什么?
请确认Cron命令中使用的是wp可执行文件和网站文件夹的完整路径,而不是依赖PATH变量,因为Cron任务不会像交互式SSH登录那样加载.bashrc中的配置。
WP-CLI在正式运营的网站上使用安全吗?
安全,它是WordPress官方团队提供的正式工具。不过由于命令会立即生效,不像后台面板那样有二次确认步骤,因此在运行任何会更改数据的命令(尤其是search-replace和core update)之前,务必先备份数据库。