虽然我在 Opensource.com 上的大部分精力都集中在 OpenStack 和相关的云技术上,但在加入这个团队之前,我最近的背景是为小型企业、非营利组织和其他需要快速轻松创建网站的客户做网页设计和开发工作。因此,虽然我是 Drupal 的忠实粉丝,但 WordPress 的易用性和简洁性让我将其用于许多项目。
像许多 WordPress 用户一样,我很高兴听到 WordPress 4.0 昨天发布了。受到我的同事 Jen 的启发,她一直在撰写关于她学习 Linux 的经验的文章,我想分享我在 OpenStack 实例上启动并运行 WordPress 4.0 的经验,特别是使用免费的 TryStack 网站进行测试。因此,接下来的内容与其说是教程,不如说是记录了设置一个环境来体验我感兴趣的两款软件的过程。它不能替代一些优秀的文档。如果您想要对 WordPress 4.0 进行全面评测,有很多很多 优秀的 来源 可以参考。
我们之前写过 关于 TryStack 的文章,但如果您还没有了解过,现在是开始的好时机。您需要一个 Facebook 帐户,并加入 TryStack Facebook 群组才能获得访问权限。如果您以前没有使用过 TryStack 或 OpenStack,这里有一个很棒的简短视频,将引导您完成基本步骤。这个基于哈瓦那的视频现在有点过时了,因为 TryStack 现在运行的是 Icehouse 版本的 OpenStack。因此,界面和您看到的选项可能看起来略有不同,但基本步骤没有任何重大变化。
观看视频以获得概述。然后,您可以按照我下面的步骤进行操作。
我们将使用 Horizon,基于 Web 的 OpenStack 仪表板,来完成大部分步骤。如果您愿意,可以使用 OpenStack 客户端的命令行版本完成相同的操作,但对于初学者来说,GUI 可能是更简单的入门方式。我们需要深入研究命令行才能在我们的实例上启动并运行 WordPress,但实际上不会比我们在任何共享托管环境中需要做的更深入。
让我们首先创建一个私有网络来连接我们的实例。使用左侧导航栏,单击网络部分下的“网络”,然后单击右上角的“创建网络”按钮。我们将我们的网络命名为“WordPressNetwork”,但在这种测试配置中,您将其命名为什么并不重要。单击“下一步”,在“子网”下,您需要为网络定义一个子网以供使用。我不是网络专家,所以我只是采用了 Dan 视频中提供的默认设置 192.168.37.0/24 作为网络地址。所有其他字段都可以保留其默认设置。再次单击“下一步”。在这里,您需要确保添加 DNS 服务器,以便您的实例可以解析域名。我第一次尝试设置网络时,不小心跳过了这一步,并且花了一段时间试图弄清楚为什么我可以 ping 通 IP 地址,但(似乎)无法执行任何其他需要外部 Internet 连接的操作。您可以在 DNS 名称服务器框中使用 Google 的 8.8.8.8 服务器,然后单击“创建”以创建您的内部网络。然后,您的网络应如下所示。

接下来,让我们启动一个虚拟机实例,在其上运行我们的初始 WordPress 安装。在左侧导航栏的“计算”选项卡下,单击“实例”。我将使用 Fedora 20,因为这是我最熟悉的,但如果您更喜欢其他发行版,请随意尝试其他发行版。除了 Fedora 20 之外,TryStack 还提供 CentOS 6.5 和 7 以及 Ubuntu 13.10 的镜像。我将把我们的实例名称命名为“WordPress Instance”,没有创意。从“启动源”下拉列表中,选择“从镜像启动”,然后选择您选择的发行版。
第一个屏幕上的其他默认设置都很好。我们将运行 m1.small 规格,这对于测试 WordPress 应该足够了。规格定义了虚拟机可用的计算资源。在这种情况下,m1.small 意味着我们为我们的机器提供 1 个虚拟 CPU、20 GB 的根磁盘空间和 2 GB 的内存。
在下一个选项卡“访问和安全”中,您需要选择一个密钥对,以便在您的实例启动后,您可以通过某种方式连接到它。我已经将密钥对保存在 TryStack 上,但如果您是第一次尝试,请单击加号按钮添加密钥对。您需要在本地机器的终端上运行类似以下命令的命令(假设您使用的是 Linux 或类似系统)。
$ ssh-keygen -t rsa -f cloud.key
$ tail cloud.key.pub
粘贴密钥并继续;默认安全组很好。我们稍后会详细讨论安全组。在“网络”选项卡下,您的 WordPressNetwork 应该已经选中,但如果未选中,请将其从“可用网络”中拖上来,然后您就可以单击“启动”了。恭喜,您已启动虚拟机!它需要一段时间才能启动并准备就绪,“实例”屏幕应更新以反映这一点。

不幸的是,此实例还无法与外部世界通信。如果我们启动其他实例,它可以与 WordPress 网络上的计算机通信,但为了使其与 Internet 的其余部分通信,我们需要创建一个路由器。在“网络”导航下,单击“路由器”,然后单击“创建路由器”。让我们将我们的路由器命名为“WordPress Router”(我今天显然感觉非常有创意)。创建路由器后,让我们通过单击“设置网关”然后选择外部网络来为其提供一个网关以进行通信。
现在我们已将外部网络连接到路由器,让我们也连接我们创建的内部网络。单击我们刚刚创建的路由器,然后单击“添加接口”,然后选择我们之前创建的 WordPressNetwork。感谢您新创建的路由器,您的实例现在应该能够与外部世界通信了。嗯,几乎。您可以使用导航菜单中“网络”下的“网络拓扑”选项来查看您的网络。

我们剩下的要做的是在“访问和安全”选项卡下启用一些权限。在安全组下,我们现在只使用默认安全组。单击“管理规则”,然后单击“添加规则”。让我们创建一个自定义 TCP 规则,允许端口 80 上的入口。这将允许外部计算机从我们的 Web 服务器请求文档。
我们在 OpenStack Horizon 界面中的最后一步是为虚拟机实例提供一个外部 IP 地址,以便我们可以远程连接到它。单击返回到您的实例选项卡,然后在“更多”下拉菜单下,添加一个外部 IP 地址。做得好,现在让我们连接到该实例并安装 Wordpress 以进行测试。还打开着上面创建 SSH 密钥的终端窗口吗?如果未打开,请打开一个终端,然后输入以下命令进行连接,但请务必将 x.x.x.x 替换为您的服务器的实际外部 IP 地址。
$ ssh -i cloud.key x.x.x.x
好的,现在让我们使用 PHP、Apache HTTP 服务器和 MySQL 设置一个基本的 Web 服务器环境。嗯,实际上是 MariaDB,但由于我多年来一直使用 MySQL,并且这些命令仍然可以使用该名称,所以我们在这里仍然称其为 MySQL。
$ sudo yum install httpd mysql-server php php-mysql
安装必要的软件后,启动 Apache Web 服务器
$ sudo systemctl start httpd.service
现在可能是确保一切正常运行的好时机。让我们在 Web 浏览器中导航到我们服务器的 IP 地址。如果您看到类似下面的屏幕,则一切都步入正轨。

现在也是启动 MySQL 并创建数据库的时候了。
$ sudo systemctl start mysqld.service
$ mysql -u root
在 MySQL 中,运行以下命令。您也可以参考 WordPress 文档,该文档非常简单明了。
> CREATE DATABASE wordpress;
> GRANT ALL PRIVILEGES ON wordpress.* TO "wordpressuser" IDENTIFIED BY "password";
> FLUSH PRIVILEGES;
> EXIT
现在我们只需要下载 WordPress 4.0 最终软件包,但您可能需要先切换到您的 www 目录。
$ cd /var/www/html
$ sudo curl -O http://wordpress.org/latest.tar.gz
然后,解压缩它,然后让我们复制配置文件并使用您喜欢的文本编辑器对其进行编辑。我将使用 vi。
$ sudo tar -xzvf latest.tar.gz
$ cd wordpress
$ sudo cp wp-config-sample.php wp-config.php
$ sudo vi wp-config.php
您只需要编辑您的数据库名称、用户名和密码以反映您上面选择的内容;这些应该是配置文件中的前三个变量。命令行方面就是这样。回顾一下,如果您想避免过多地使用 sudo,请随意在开头使用 sudo -i。
现在您应该一切准备就绪了!启动一个新的浏览器选项卡,导航到您的服务器的 ip/wordpress,然后查看一下。WordPress 4.0 工作正常!您需要填写一些简单的表单字段才能使其运行,但从现在开始没有任何困难。现在可以随意玩耍了。

接下来我、OpenStack 和 WordPress 会做什么?我在我们周三发布的每月 OpenStack 教程汇总中发布了一个教程,描述了如何使用 Heat 部署自动扩展的 WordPress 安装,我期待尝试一下。或者,我可能会尝试使用官方文档中的 手动配置版本,其中 WordPress 的数据库、HTTP 服务器和 Memcache 分布在三个实例中。至少,挂载一个持久卷,以便在运行 WordPress 的实例终止时,我们的数据能够保持保存。
1 条评论