如何安装WordPress与HHVM和Nginx在CentOS 7

HHVM(HipHop Virtual Machine)是用于执行用PHP和Hack语言编写的程序的开源虚拟机。 HHVM是由Facebook开发的,它提供了目前PHP 7版本的大部分功能。 要在服务器上运行HHVM,可以使用FastCGI将HHVM与Nginx或Apache Web服务器连接,也可以使用名为“Proxygen”的HHVM内置的Web服务器。

在本教程中,我将向您展示如何使用HHVM和Nginx安装WordPress作为Web服务器。 我将使用CentOS 7作为操作系统,因此需要CentOS的基础知识。

前提条件

  • CentOS 7 - 64bit
  • 根权限

第1步 - 配置SELinux并添加Epel Repository

在本教程中,我们将在执行模式下使用SELinux,因此我们需要系统上安装的SELinux管理工具。 我们将使用setools和setrobleshoot来管理SELinux策略。

默认情况下,在CentOS 7上启用SELinux,我们可以使用以下命令检查:

sestatus
getenforce

您可以看到SELinux启用了强制模式。

接下来,使用yum命令安装setools并进行故障排除。

yum -y install setroubleshoot setools net-tools

安装完成后,可以安装EPEL存储库。

yum -y install epel-release

第2步 - 安装Nginx

Nginx或engine-x是具有高性能和低内存消耗的轻量级Web服务器。 在CentOS上,我们可以使用yum来安装Nginx软件包。 确保您以root用户身份登录!

从CentOS存储库中使用此yum命令安装nginx:

yum -y install nginx

现在启动Nginx,并使用systemctl命令启动它在引导时启动:

systemctl start nginx
systemctl enable nginx

要确保Nginx在我们的服务器上运行,请使用浏览器访问服务器IP地址,或使用如下所示的curl命令获取结果:

curl 192.168.1.110

我会用我的网络浏览器在这里:

第3步 - 安装和配置MariaDB

MariaDB是由原始MySQL开发人员Monty Widenius开发的开源数据库,它已经从MySQL数据库中分派,但与其主要功能保持兼容。 在此步骤中,我们将安装MariaDB并配置MariaDB数据库的根密码。 然后,我们将创建一个新的数据库和新用户,这是我们的WordPress安装所必需的。

安装mariadb和mariadb-server:

yum -y install mariadb mariadb-server

启动MariaDB并添加服务以在启动时自动启动:

systemctl start mariadb
systemctl enable mariadb

MariaDB已经启动,现在我们必须配置mariadb / mysql数据库的根密码。 键入以下命令以设置MariaDB root密码。

mysql_secure_installation

在请求时输入您的MariaDB root用户的新密码。

Set root password? [Y/n] Y
New password:
Re-enter new password:

Remove anonymous users? [Y/n] Y
 ... Success!
Disallow root login remotely? [Y/n] Y
 ... Success!
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
 ... Success!

已配置MariaDB根密码。 现在登录到MariaDB / MySQL shell并为我们的WordPress安装创建一个新的数据库“wordpressdb”和一个新用户“wpuser” ,密码为“wpuser @” 。 为安装选择安全密码!

登录到MariaDB / MySQL shell:

mysql -u root -p
TYPE YOUR PASSWORD

创建一个新的数据库和新用户:

create database wordpressdb;
create user wpuser@localhost identified by 'wpuser@';
grant all privileges on wordpressdb.* to wpuser@localhost identified by 'wpuser@';
flush privileges;
\q

已经安装了MariaDB,并且已经创建了我们的WordPress安装的新数据库。

第4步 - 安装HHVM

对于HHVM安装,我们需要安装许多依赖项。 我们可以通过从github下载源代码或安装互联网上可用的预构建软件包来从源安装HHVM。 在本教程中,我将从预构建的软件包中安装HHVM。

安装HHVM安装的依赖项

yum -y install cpp gcc-c++ cmake git psmisc {binutils,boost,jemalloc,numactl}-devel \
{ImageMagick,sqlite,tbb,bzip2,openldap,readline,elfutils-libelf,gmp,lz4,pcre}-devel \
lib{xslt,event,yaml,vpx,png,zip,icu,mcrypt,memcached,cap,dwarf}-devel \
{unixODBC,expat,mariadb}-devel lib{edit,curl,xml2,xslt}-devel \
glog-devel oniguruma-devel ocaml gperf enca libjpeg-turbo-devel openssl-devel \
mariadb mariadb-server libc-client make

然后使用rpm命令从此站点安装HHVM预建的软件包。

rpm -Uvh http://mirrors.linuxeye.com/hhvm-repo/7/x86_64/hhvm-3.15.2-1.el7.centos.x86_64.rpm
ln -s /usr/local/bin/hhvm /bin/hhvm

HHVM已安装,请使用以下命令检查:

hhvm --version

为了使用php命令,我们可以将hhvm命令设置为php。 所以当你在shell上输入'php'时,你会看到与hhvm命令相同的结果。

sudo update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
php --version

第5步 - 配置HHVM

在此步骤中,我们将配置HHVM。 我们将运行hhvm作为系统服务。 而不是在系统端口上运行它,我们将在更快的unix套接字文件上运行hhvm。

转到systemd目录并创建hhvm.service文件。

cd /etc/systemd/system/
vim hhvm.service

将服务配置粘贴到该文件。

[Unit]
Description=HHVM HipHop Virtual Machine (FCGI)
After=network.target nginx.service mariadb.service

[Service]
ExecStart=/usr/local/bin/hhvm --config /etc/hhvm/server.ini --user nginx --mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/hhvm.sock

[Install]
WantedBy=multi-user.target

保存文件并退出vim。

接下来,转到hhvm目录并编辑server.ini文件。

cd /etc/hhvm/
vim server.ini

将第7行的hhvm.server.port替换为下面的unix套接字配置:

hhvm.server.file_socket = /var/run/hhvm/hhvm.sock

保存文件并退出编辑器。

在hhvm服务文件中,我们定义了hhvm在'nginx'用户下运行,所以我们必须将套接字文件目录的所有者更改为'nginx'用户。 那么我们必须改变hhvm目录的SELinux上下文以允许访问套接字文件。

chown -R nginx:nginx /var/run/hhvm/
semanage fcontext -a -t httpd_var_run_t "/var/run/hhvm(/.*)?"
restorecon -Rv /var/run/hhvm

重新启动服务器后,hhvm将不会运行,因为没有套接字文件的目录,所以我们必须在启动时自动创建。

使用vim编辑rc.local文件。

vim /etc/rc.local

将下面的配置粘贴到行尾。

mkdir -p /var/run/hhvm/
chown -R nginx:nginx /var/run/hhvm/
semanage fcontext -a -t httpd_var_run_t "/var/run/hhvm(/.*)?"
restorecon -Rv /var/run/hhvm

保存文件并退出vim。 使文件可执行。

chmod +x /etc/rc.local

重新加载systemd服务,启动hhvm并将其添加到启动时启动。

systemctl daemon-reload
systemctl start hhvm
systemctl enable hhvm

确保没有错误。 使用netstat命令检查hhvm是否在套接字文件下运行。

netstat -pl | grep hhvm

第6步 - 配置HHVM和Nginx

在此步骤中,我们将使用Nginx Web服务器配置HHVM。 我们需要在Nginx目录中创建一个新的hhvm配置文件。

转到/ etc / nginx目录并创建一个hhvm.conf文件。

cd /etc/nginx/
vim hhvm.conf

粘贴以下配置:

location ~ \.(hh|php)$ {
    root /usr/share/nginx/html;
    fastcgi_keep_conn on;
    fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

保存并退出。

接下来,编辑nginx.conf文件并添加hhvm配置包含行。

vim nginx.conf

将配置添加到服务器指令行57。

include /etc/nginx/hhvm.conf;

保存并退出。

然后更改hhvm配置文件的SELinux上下文。

semanage fcontext -a -t httpd_config_t /etc/nginx/hhvm.conf
restorecon -v /etc/nginx/hhvm.conf

测试Nginx配置并重新启动服务。

nginx -t
systemctl restart nginx

确保没有错误。

第7步 - 使用HHVM和Nginx创建虚拟主机

在此步骤中,我们将使用Nginx和hhvm创建一个新的虚拟主机配置。 我将使用域名“natsume.co”为这个例子。 请使用您自己的域名,并将其在配置文件和WordPress安装中进行替换。

转到我们将存储虚拟主机文件的nginx conf.d目录:

cd /etc/nginx/conf.d/

用vim创建新配置“natsume.conf”

vim natsume.conf

将虚拟主机配置粘贴到下面:

server {
    listen       80;
    server_name  natsume.co;

    # note that these lines are originally from the "location /" block
    root   /var/www/hakase;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    location = /50x.html {
        root /var/www/hakase;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

保存并退出。

在我们的虚拟主机配置中,我们将域名的Web根目录定义为“/ var / www / hakase”目录。 该目录不存在,因此我们必须创建它,并将所有权更改为nginx用户和组。

mkdir -p /var/www/hakase
chown -R nginx:nginx /var/www/hakase

接下来,配置文件和目录的SELinux上下文。

semanage fcontext -a -t httpd_config_t "/etc/nginx/conf.d(/.*)?"
restorecon -Rv /etc/nginx/conf.d

最后,测试nginx配置以确保没有错误,然后重新启动nginx:

nginx -t
systemctl restart nginx

第8步 - 安装WordPress

在第5步中,我们为WordPress安装创建了虚拟主机配置。 现在我们只需要下载WordPress并使用我们在第3步中创建的数据库和用户来编辑数据库配置。

转到Web根目录“/ var / www / hakase” ,并使用wget命令下载WordPress:

cd /var/www/hakase
wget wordpress.org/latest.tar.gz

提取“latest.tar.gz”并将所有WordPress文件和目录移动到当前目录:

tar -xzvf latest.tar.gz
mv wordpress/* .

接下来,将“wp-config-sample.php”文件复制到“wp-config.php”并使用vim进行编辑:

cp wp-config-sample.php wp-config.php
vim wp-config.php

将DB_NAME设置为“wordpressdb” ,将DB_USER设置为“wpuser” ,将DB_PASSWORD设置为“wpuser @”

define('DB_NAME', 'wordpressdb');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wpuser@');
define('DB_HOST', 'localhost');

保存并退出。

更改WordPress目录的SELinux上下文。

semanage fcontext -a -t httpd_sys_content_t "/var/www/hakase(/.*)?"
restorecon -Rv /var/www/hakase

现在打开一个网页浏览器,并输入您的wordpress域的域名到地址栏,我的是“natsume.co”。

选择英文,然后点击“ 继续 ”。

使用您的信息填写网站标题和说明,然后单击“安装Wordpress”

等到安装完成。 您将看到下面的页面,点击“登录”登录到WordPress管理信息中心:

键入您的管理员用户和密码,然后再次单击“登录”

现在您正在使用WordPress管理信息中心。

Wordpress主页。

CentOS 7上的Nginx和HHVM的Wordpress已经成功安装。

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏