HHVM(HipHop Virtual Machine)は、PHPおよびHack言語で記述されたプログラムを実行するためのオープンソースの仮想マシンです。 HHVMはFacebookによって開発されており、現在のPHP7バージョンのほとんどの機能を提供します。サーバーでHHVMを実行するには、FastCGIを使用してHHVMをNginxまたはApache Webサーバーに接続するか、HHVMに組み込まれている「Proxygen」というWebサーバーを使用できます。
このチュートリアルでは、WebサーバーとしてHHVMとNginxを使用してWordPressをインストールする方法を紹介します。オペレーティングシステムとしてCentOS7を使用するため、CentOSの基本的な知識が必要です。
前提条件
- CentOS7-64ビット
- root権限
このチュートリアルでは、SELinuxを強制モードで使用するため、システムにSELinux管理ツールをインストールする必要があります。 setoolsとsetrobleshootを使用してSELinuxポリシーを管理します。
デフォルトでは、SELinuxはCentOS 7で有効になっています。以下のコマンドで確認できます:
sestatus
getenforce
SELinuxが強制モードで有効になっていることがわかります。
次に、setoolsをインストールし、yumコマンドを使用してトラブルシューティングを行います。
yum -y install setroubleshoot setools net-tools
インストールが完了したら、EPELリポジトリをインストールできます。
yum -y install epel-release
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
ここで私のウェブブラウザでそれを確認します:
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ルートパスワードを設定します。
mysql_secure_installation
要求されたら、MariaDBrootユーザーの新しいパスワードを入力します。
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シェルにログインして、新しいデータベースを作成します "wordpressdb" および新しいユーザー"wpuser" パスワード"[メール保護]" WordPressのインストール用。インストール用の安全なパスワードを選択してください!
MariaDB / MySQLシェルにログインします:
mysql -u root -p
TYPE YOUR PASSWORD
新しいデータベースと新しいユーザーを作成します:
create database wordpressdb;
create user [email protected] identified by '[email protected]';
grant all privileges on wordpressdb.* to [email protected] identified by '[email protected]';
flush privileges;
\q
MariaDBがインストールされ、WordPressインストール用の新しいデータベースが作成されました。
HHVMのインストールでは、多くの依存関係をインストールする必要があります。 HHVMをソースからインストールするには、githubからソースをダウンロードするか、インターネットで入手できるビルド済みのパッケージをインストールします。このチュートリアルでは、ビルド済みのパッケージから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として設定できます。したがって、シェルで「php」と入力すると、hhvmコマンドと同じ結果が表示されます。
sudo update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
php --version
このステップでは、HHVMを構成します。 hhvmをsystemdサービスとして実行します。システムポートで実行する代わりに、より高速な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は実行されません。そのため、起動時に自動的に作成する必要があります。
rc.localファイルをvimで編集します。
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
このステップでは、NginxWebサーバーで実行するように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
エラーがないことを確認してください。
このステップでは、Nginxとhhvmを使用して新しい仮想ホスト構成を作成します。ドメイン名を使用します"natsume.co" この例では。独自のドメイン名を使用して、構成ファイルとWordPressのインストールで表示されている場所に置き換えてください。
仮想ホストファイルを保存するnginxconf.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
ステップ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を"[メールで保護]" 。
define('DB_NAME', 'wordpressdb'); define('DB_USER', 'wpuser'); define('DB_PASSWORD', '[email protected]'); define('DB_HOST', 'localhost');
保存して終了します。
WordPressディレクトリのSELinuxコンテキストを変更します。
semanage fcontext -a -t httpd_sys_content_t "/var/www/hakase(/.*)?"
restorecon -Rv /var/www/hakase
次に、Webブラウザーを開いて、ワードプレスドメインのドメイン名をアドレスバーに入力します。私の名前は「natsume.co」です。
英語を選択し、[続行]をクリックします '。
サイトのタイトルと説明に情報を入力し、[Wordpressのインストール]をクリックします。
インストールが完了するまで待ちます。以下のページが表示されます。[ログイン]をクリックして、WordPress管理ダッシュボードにログインします。
管理者ユーザーとパスワードを入力し、もう一度[ログイン]をクリックします。
これで、WordPress管理ダッシュボードが表示されます。
Wordpressのホームページ。
CentOS7にNginxとHHVMを搭載したWordpressが正常にインストールされました。