在 Debian/Ubuntu 上使用 MariaDB 设置高性能 HHVM 和 Nginx/Apache
HHVM 代表 HipHop Virtual Machine,是一个开源虚拟机,用于运行 Hack(它是 HHVM 的编程语言)和 PHP 编写的应用程序。 HHVM 使用最后一刻的编译路径来实现卓越的性能,同时保持 PHP 程序员所沉迷的灵活性。到目前为止,与 PHP 引擎 + APC(替代 PHP 缓存)相比,HHVM 已为 Facebook 实现了 http 请求吞吐量提高了 9 倍以上,内存利用率降低了 5 倍以上(在低系统内存上运行时) )。
HHVM 还可以与基于 FastCGI 的 Web 服务器(例如 Nginx 或 Apache)一起使用。
在本教程中,我们将了解设置 Nginx/Apache Web 服务器、MariaDB 数据库服务器和 HHVM 的步骤。对于此设置,我们将使用 Ubuntu 15.04(64 位),因为 HHVM 仅在 64 位系统上运行,但也支持 Debian 和 Linux Mint 发行版。
第 1 步:安装 Nginx 和 Apache Web 服务器
1. 首先使用以下命令进行系统升级以更新存储库列表。
apt-get update && apt-get upgrade
2. 正如我所说,HHVM 可以与 Nginx 和 Apache Web 服务器一起使用。因此,您可以选择要使用哪个 Web 服务器,但在这里我们将向您展示这两个 Web 服务器的安装以及如何将它们与 HHVM 一起使用。
安装 Nginx
在此步骤中,我们将使用以下命令从包存储库安装 Nginx/Apache Web 服务器。
apt-get install nginx
安装阿帕奇
apt-get install apache2
此时,您应该能够导航到以下 URL,并且您将能够看到 Nginx 或 Apache 默认页面。
http://localhost
OR
http://IP-Address
Nginx 默认页面
Apache 默认页面
第 2 步:安装和配置 MariaDB
3.在这一步中,我们将安装MariaDB,因为与MySQL相比,它提供了更好的性能。
apt-get install mariadb-client mariadb-server
4. MariaDB安装成功后,您可以启动MariaDB并设置root密码来保护数据库:
systemctl start mysql
mysql_secure_installation
输入 y
或 n
并按 Enter 键回答以下问题。在回答问题之前,请务必仔细阅读说明。
Enter current password for root (enter for none) = press enter
Set root password? [Y/n] = y
Remove anonymous users[y/n] = y
Disallow root login remotely[y/n] = y
Remove test database and access to it [y/n] = y
Reload privileges tables now[y/n] = y
5.为MariaDB设置root密码后,您可以使用新的root密码连接到MariaDB提示符。
mysql -u root -p
第三步:安装HHVM
6.在此阶段我们将安装并配置HHVM。您需要将 HHVM 存储库添加到 sources.list
文件中,然后必须使用以下一系列命令更新存储库列表。
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add -
echo deb http://dl.hhvm.com/ubuntu DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
apt-get update
重要:不要忘记将 DISTRIBUTION_VERSION 替换为您的 Ubuntu 发行版本(即清晰、精确或可靠) .) 并且在 Debian 上替换为 jessie 或 wheezy。在 Linux Mint 上的安装说明是相同的,但 petra 是当前唯一受支持的发行版。
添加 HHVM 存储库后,您可以轻松安装它,如图所示。
apt-get install -y hhvm
安装 HHVM 将立即启动它,但它未配置为在下次系统启动时自动启动。要设置下次启动时自动启动,请使用以下命令。
update-rc.d hhvm defaults
步骤 4:配置 Nginx/Apache 与 HHVM 对话
7. 现在,nginx/apache 和 HHVM 已安装并独立运行,因此我们需要配置两个 Web 服务器以相互通信。关键的部分是我们必须告诉 nginx/apache 将所有 PHP 文件转发到 HHVM 来执行。
如果您使用 Nginx,请按照说明进行操作。
默认情况下,nginx 配置位于 /etc/nginx/sites-available/default 下,这些配置在 /usr/share/nginx/html 中查找要执行的文件,但它不知道如何处理 PHP。
为了使 Nginx 与 HHVM 对话,我们需要运行以下包含脚本,该脚本将通过在 nginx 配置的开头放置 hhvm.conf 来正确配置 nginx,如上所述。
此脚本使 nginx 与任何以 .hh 或 .php 结尾的文件进行对话,并通过 fastcgi 将其发送到 HHVM。
/usr/share/hhvm/install_fastcgi.sh
重要:如果您使用 Apache,现在不需要任何配置。
8. 接下来,您需要通过运行此命令来使用 /usr/bin/hhvm 提供 /usr/bin/php (php)以下。
/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
完成上述所有步骤后,您现在可以启动HHVM并对其进行测试。
systemctl start hhvm
步骤 5:使用 Nginx/Apache 测试 HHVM
9. 要验证hhvm是否正常工作,您需要在nginx/apache文档根目录下创建一个hello.php文件。
nano /usr/share/nginx/html/hello.php [For Nginx]
OR
nano /var/www/html/hello.php [For Nginx and Apache]
将以下代码片段添加到该文件中。
<?php
if (defined('HHVM_VERSION')) {
echo 'HHVM is working';
phpinfo();
}
else {
echo 'HHVM is not working';
}
?>
然后导航到以下 URL 并验证是否可以看到“hello world”。
http://localhost/info.php
OR
http://IP-Address/info.php
如果出现“HHVM”页面,则表示一切就绪!
结论
这些步骤非常容易遵循,希望您发现本教程有用,如果您在安装任何软件包期间遇到任何错误,请发表评论,我们将一起找到解决方案。欢迎任何其他想法。