HHVM(HipHop Virtual Machine)是由Facebook开发的一款开源虚拟机,它是一个JIT(即时)编译器,用于执行以PHP 5编写的程序(以及PHP 7的一些功能)和Hack语言。 如果要在服务器上运行HHVM,可以在Nginx或apache Web服务器之上使用基于FastCGI的Web服务器,也可以使用名为“Proxygen”的内置Web服务器。
在本教程中,我将向您展示如何使用HHVM和Nginx作为Web服务器安装WordPress(基于PHP的众所周知的CMS)。 我将使用OpenSUSE Leap 42.1作为操作系统,因此需要OpenSUSE的基本知识。
前提条件
- OpenSUSE Leap 42.1 - 64bit。
- 根权限
- 基本的OpenSUSE知识,如Zypper,SuSE防火墙。
第1步 - 安装Nginx
Nginx或engine-x是具有高性能和低内存消耗的轻量级Web服务器。 在我们的OpenSUSE服务器上,我们可以使用zypper命令安装软件包。
使用“sudo su”
成为root用户,并在openSUSE Leap 42.1上使用zypper命令安装Nginx:
sudo su
zypper in nginx
然后转到web目录“/ srv / www / htdocs”
并创建一个新的index.html
文件。
cd /srv/www/htdocs/
echo "<h1>Nginx OpenSUSE Leap 42.1</h1>" > index.html
添加Nginx启动时启动Nginx与systemctl命令:
systemctl enable nginx
systemctl start nginx
为确保Nginx在我们的服务器上运行,我们可以使用浏览器访问服务器IP地址,或者使用下面的curl命令查看结果:
curl 192.168.43.29
第2步 - 安装和配置MariaDB
MariaDB是由原始MySQL开发人员Monty Widenius开发的开源数据库,MariaDB与MySQL兼容。 在此步骤中,我们将安装MariaDB并配置MariaDB数据库的根密码。 然后我们将创建一个我们需要的WordPress安装的新数据库和用户。
使用zypper安装MariaDB:
zypper in mariadb mariadb-client
将MariaDB添加到引导序列,然后启动它:
systemctl enable mysql
systemctl start mysql
MariaDB已经启动,现在我们必须为MariaDB / mysql数据库配置root密码。 运行以下命令设置MariaDB root密码。
/usr/bin/mysqladmin -u root password 'toor123'
注意:
MariaDB密码为“toor123” ,请在您的服务器上使用不同的密码。
已配置MariaDB根密码。 现在登录到MariaDB / MySQL shell并为我们的WordPress安装创建一个新的数据库“wpdb”和新用户“wpuser” ,密码为“wpuser @” 。 在您的系统上也可以选择一个安全的密码。
登录到MariaDB / MySQL shell:
mysql -u root -p
TYPE PASSWORD toor123
创建一个新的数据库和新用户:
create database wpdb;
create user wpuser@localhost identified by 'wpuser@';
grant all privileges on wpdb.* to wpuser@localhost identified by 'wpuser@';
flush privileges;
安装了MariaDB,并且已经创建了我们的WordPress安装的新数据库。
第3步 - 安装HHVM
对于HHVM安装,我们需要添加一个新的hhvm存储库。 我们可以使用zypper命令将新的hhvm存储库添加到服务器。 那么我们必须刷新openSUSE存储库:
zypper addrepo http://download.opensuse.org/repositories/home:munix9/openSUSE_Leap_42.1/home:munix9.repo
zypper refresh
键入'a'
以始终相信密钥。
现在安装hhvm包:
zypper in hhvm hhvm-nginx hhvm-fastcgi
hhvm-nginx提供了一个Nginx配置的示例。
hhvm-fastcgi提供FastCGI元文件。
第4步 - 配置HHVM和Nginx
在此步骤中,我们将使用Nginx Web服务器配置HHVM。 我们将配置HHVM使用Unix-socket并将HHVM作为Nginx用户运行。 转到HHVM配置目录并使用vim编辑器编辑配置文件“server.ini”
:
cd /etc/hhvm/
vim server.ini
取消注释第3行为HHVM启用Unix-Sockets。
hhvm.server.file_socket = /var/run/hhvm/server.sock
保存并退出。
接下来,我们必须编辑HHVM服务脚本,以便HHVM可以运行Nginxginx用户。 将HHVM配置为与Web服务器相同的用户运行非常重要。 转到systemd目录并使用vim编辑'hhvm.service'
文件:
cd /usr/lib/systemd/system
vim hhvm.service
将第11行的--user hhvm选项更改为nginx用户。
ExecStart=/usr/bin/hhvm --config /etc/hhvm/php.ini --config /etc/hhvm/server.ini --user nginx --mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/server.sock - vPidFile=/var/run/hhvm/server.pid
保存并退出。
现在将“/ var / run / hhvm”
目录的所有者更改为nginx用户。
chown -R nginx:nginx /var/run/hhvm/
注意:
服务器重新启动后,有时该目录的默认所有者将返回到默认用户。 为了解决这个问题,我们可以定义在执行当前运行级别的所有脚本后执行的linux命令。
在“/etc/rc.d/”
目录中编辑after.local文件,并在文件末尾添加一个新的linux命令:
vim /etc/rc.d/after.local
粘贴以下命令:
chown -R nginx:nginx /var/run/hhvm/
保存并退出。
接下来,我们必须将HHVM配置为使用Nginx。 我们已经安装了新的软件包“hhvm-nginx”
,它包含了Nginx Web服务器的HHVM配置示例。
转到Nginx配置目录并复制HHVM配置:
cd /etc/nginx/
cp hhvm.conf.example hhvm.conf
用vim编辑hhvm.conf:
vim hhvm.conf
在第二行,添加一个新配置来定义Web根目录:
root /srv/www/htdocs;
保存并退出。
那么我们必须编辑Nginx配置以包括HHVM配置。
vim nginx.conf
在第59行 - 添加新的配置行如下:
include /etc/nginx/hhvm.conf;
保存并退出。
使用以下systemctl命令启用和启动HHVM:
systemctl enable hhvm
systemctl start hhvm
然后重启Nginx:
systemctl restart nginx
已经安装并配置了Nginx和HHVM。 要测试配置是否正常工作,我们将创建一个包含phpinfo代码的新php文件,并将其保存到Web根目录“/ srv / www / htdocs”
,然后我们通过Web浏览器进行访问。
cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php
打开浏览器并键入服务器IP地址:
Nginx和HHVM正在工作没有错误。
第5步 - 使用HHVM和Nginx创建虚拟主机
在这一步中,我们将使用Nginx和HHVM创建一个新的虚拟主机配置。 我将使用域名“hakasenano.co”为此示例,并将其用作我们的WordPress安装的域。 请在所有配置文件和命令中用您自己的域名替换域名。
转到Nginx目录并创建新的目录来存储虚拟主机文件:
cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/
用vim创建一个新的配置文件“nano.conf”
:
vim nano.conf
并在下面粘贴新的虚拟主机配置:
server {
# This line for redirect non-www to www
server_name hakasenano.co; rewrite ^(.*) http://www.hakasenano.co$1 permanent; } server { listen 80; server_name www.hakasenano.co; root /srv/www/nano; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /srv/www/htdocs; } # HHVM running throught Unix-Socket location ~ \.(hh|php)$ { root /srv/www/nano; fastcgi_keep_conn on; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/hhvm/server.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
保存并退出。
在我们的虚拟主机配置中,我们将域名的web根目录定义为“/ srv / www / nano”
目录。 现在这个目录不存在,所以我们现在必须创建该目录。
mkdir -p /srv/www/nano/
最后,测试Nginx配置并重新启动它:
nginx -t
systemctl restart nginx
确保nginx -t命令不显示错误消息。
第6步 - 安装WordPress
在第5步,我们为WordPress安装创建了虚拟主机配置。 所以我们只需要现在下载WordPress,然后编辑我们在第2步中创建的数据库配置。
转到Web根目录“/ srv / www / nano”
,并使用wget命令下载WordPress zip存档:
cd /srv/www/nano
wget wordpress.org/latest.zip
提取“latest.zip”
并将所有WordPress文件和目录移动到nano目录:
unzip latest.zip
mv wordpress/* .
接下来,将“wp-config-sample.php”
文件复制到“wp-config.php”
并使用vim进行编辑:
cp wp-config-sample.php wp-config.php
vim wp-config.php
将DB_NAME更改为数据库“wpdb” ,将DB_USER更改为“wpuser” ,将DB_PASSWORD更改为“wpuser @” 。
define('DB_NAME', 'wpdb'); define('DB_USER', 'wpuser'); define('DB_PASSWORD', 'wpuser@'); define('DB_HOST', 'localhost');
保存并退出。
现在打开Web浏览器并在地址栏中输入域名。
您将被重定向到www.hakasenano.co ,您将看到安装的页面。
您可以使用您的信息填写网站标题和说明,然后单击“安装Wordpress”
。
等待安装完成,您将看到下面的登录页面。 点击“登录”
登录到WordPress管理员仪表板:
键入您的管理员用户和密码,然后再次单击“登录”
。
现在您正在WordPress管理员信息中心。
WordPress与Nginx和HHVM在OpenSUSE Leap 42.1现在安装。