dxw / whippet-server
Requires
- mjackson/optionparser: dev-master
- sabre/uri: ^1.1
This package is auto-updated.
Last update: 2020-08-30 01:24:08 UTC
README
Whippet Server 为特定的WordPress安装启动一个独立的Web服务器。它通过添加大量的调试信息到终端,而不影响或破坏你的模板,使WordPress更容易开发。
Whippet Server 允许你在不使用Apache和不需要设置虚拟主机的情况下运行和开发WordPress网站。你甚至不需要WordPress文件 -- Whippet Server 也可以从wp-content文件夹中独立运行。
注意:Whippet Server 是Alpha软件。我们确信它仍然存在需要修复的问题,我们也知道安装过程可能有些繁琐。请让我们知道你的使用情况,或者如果你有问题,请创建一个问题。谢谢!
安装
克隆仓库并运行
$ composer install
你可能还想将Whippet Server链接到你的路径中的某个位置
$ sudo ln -s /path/to/the/script/called/whippet-server /usr/bin/whippet-server
PHP >= 5.4
Whippet Server 需要 PHP 5.4 或更高版本。如果没有使用 --enable_pcntl 标志编译,你将看到 "Call to undefined function pcntl_signal()" 错误。
通过运行 php -v 检查你当前使用的版本。
要安装,请执行
在Ubuntu 12.04 LTS下
$ sudo add-apt-repository ppa:ondrej/php5
$ sudo apt-get update
$ sudo apt-get install php5
在Ubuntu 12.10下
$ sudo apt-get install php5
在OSX下
有关简单安装的信息,请参阅 http://php-osx.liip.ch/
根据你的路径设置,你可能需要将安装位置添加到你的路径中(编辑你的 .bashrc 或类似文件)
使用上述方法,在尝试运行 whippet-server 时可能会出现错误
Error: Unable to find file /etc/mime.types, and failed to load fallback
在这种情况下,你可以从以下位置获取最新的 mime 文件:http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types 使用 --mime-file 参数指示 Whippet Server 使用此文件,或者将其保存到 /etc/mime.types
其他操作系统
对于Windows,你可能运气不佳。如果你设法使其工作,我们很高兴知道你做了什么。
对于其他操作系统,请咨询Google,或从PHP.net下载和安装:https://php.ac.cn/downloads.php
处理多个PHP版本
如果你出于某种原因不希望使用 5.4 作为系统PHP版本,请确保你的系统PHP在 PATH 中排在第一位,然后告诉 Whippet Server 在你的系统中查找PHP5.4的位置
$ WHIPPET_PHP=/path/to/php/5.4 whippet
MYSQL
如果您已在系统上直接安装了MYSQL,Whippet服务器应该可以正常运行。如果您遇到任何问题,请提出问题。
MAMP(OSX)下的MYSQL
如果您正在使用MAMP,并且出于某种原因不想直接安装MYSQL,您需要告诉PHP5.4如何使用MAMP的MySQL服务器。为了解决这个问题,请更新您的php.ini文件
$ sudo vi /usr/local/etc/php/5.4/php.ini
并在其中添加mysql.default_socket选项
mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock
Docker使用
在80端口上运行
$ docker run -ti --rm -v /path/to/wp-content:/app -p 80:80 thedxw/whippet-server
默认命令是"whippet-server -i 0.0.0.0 -p 80 --show-wp-errors --siteurl=http://localhost",因此如果您需要WordPress将不同的域名放入绝对URI中,或者您想让它监听不同的端口
$ docker run -ti --rm -v /path/to/wp-content:/app -p 8000:80 thedxw/whippet-server whippet-server -i 0.0.0.0 -p 80 --show-wp-errors --siteurl=http://mysite.local:8000
(请注意,--siteurl选项仅设置WP_SITEURL和WP_HOME常量 - 如果这些选项与数据库中的等效选项设置不同,您将遇到问题)。
如果您正在更改whippet-server或出于某种原因dockerhub上没有该镜像,您在这样做之前需要构建它
$ docker build -t thedxw/whippet-server .
以下部分包含有关可能有用的选项的说明。
用法
服务器
使用Whippet服务器最简单的方法是在现有的WordPress安装上。如果您有一个可用的安装,请转到WordPress安装的根目录,并执行以下操作
$ /path/to/whippet-server
您应该看到服务器启动。访问http://localhost:8000,您应该看到一个正常的WordPress网站。如果您查看您的终端,您将看到大量关于执行的查询、加载的模板等的输出。
过滤服务器输出
有时Whippet服务器的输出可能有点嘈杂。您可以自定义显示的内容
$ /path/to/whippet-server --no-sql
要获取Whippet服务器的完整选项列表,请执行以下操作
$ /path/to/whippet-server --help
设置默认值
这些选项中的任何一项都可以通过创建~/.whippetrc
或/etc/whippetrc
作为Whippet的默认值。如果存在这两个文件,都会被读取。您本地的默认值将覆盖系统范围内的默认值。该文件应为ini格式
p = 8080 i = my-machine.local show-wp-errors = true ; this is a comment
输出到控制台
调试WordPress网站的一种常见方法是使用var_dump()
或die()
将输出输出到浏览器。当运行Whippet时,您可以将输出输出到控制台
Whippet::print_r(thing-to-be-output)
管理WordPress
Whippet服务器还可以使管理多个WordPress安装更加容易。您不需要为每个您工作的网站保留完整的WordPress安装,只需保留wp-content文件夹以及该网站的数据库即可
$ cd /path/to/wp-content
$ /path/to/whippet-server
Whippet服务器将检测它是否从wp-content文件夹启动。第一次这样做时,它会要求下载并存储最新的WordPress核心。然后,它将使用这些文件启动网站。您还可以指定您想使用的WordPress版本
$ /path/to/whippet-server --wp-version 4.1
Whippet 服务器会检查文件是否存在,如果不存在则要求下载,第一次运行特定 wp-content 目录时,会提示您输入数据库配置。
多站
WP_ALLOW_MULTISITE
总是开启的,所以您可以在任何时候通过“工具 > 网络设置”进行设置。一旦在数据库中设置了多站,您应该向 whippet-server 发送 SIGTERM 信号,并使用 --multisite
和 -p 80
参数重新启动它。
注意,如果您不想在数据库上进行搜索/替换操作,在启用多站之前应该使用 -p 80
参数。
请记住,使用 sudo
是必需的,并且如果您已经在端口 80 上有服务器在监听,可能需要终止该服务器。
故障排除
问题
在 OSX 上安装并运行 whippet-server 后,在浏览器中看到以下错误
Your PHP installation appears to be missing the MySQL extension which is required by WordPress
解决方案
重新安装 php,并确保包含 --with-mysql
选项。
贡献
我们欢迎帮助改进 Whippet 服务器。如果您想修复错误或添加功能,请 Fork 项目到 Github,进行更改,并提交一个 Pull Request。如果是较大的事情,您可能需要先与我们联系。如果您需要灵感,请查看维基上的 TODO 页面。
作者
Harry Metcalfe (harry@dxw.com)
Tom Adams (tom@dxw.com)