この blog(WordPress) に Ubuntu14.04 上に Nginx + MariaDB(MySQL) + PHP(HHVM) を選んだ訳。

この blog(WordPress) が動作している環境を公開します。
現在 IDCFクラウド(IDCF Cloud) の最安(最も安い)プランで動いてます。
上記の server はアダルトのもろ出し、御法度です。もし、その御法度を犯してしまうと server 丸ごと、消滅されてしまいます。
なので、技術の事を記事にしております。
皆様、勘違いをされません様に御注意下さい。

「IDCFクラウド」を利用のきっかけは、
5000円のクーポン券を頂いたからです。後、最大でも月々500円で済む所です。

この blog も本来、設置を行う予定の server も別に用意しております。
移動予定です。
上記の理由で危険な状態ですなので、危険な状態を続ける必要が無いとは思っております。
本当は、その様な事も無い様にも動きたくて、行動をしているのですが、世の中そんなに甘く無いですね。
これがアダルトも使える様に変更されれば最高なんですけどね。

挑戦したい技術(別の今後記事になる予定)の事の箇所に構築しようとしていたんですが、技術を詰め込もうとして、風呂敷を広げ過ぎてまだ
畳めてません。

話題を戻しまして IDCFクラウド(IDCF Cloud) 契約する箇所については、ここよりも詳しく説明して下さっている記事が沢山御座いますので、割愛します。

OS に付いてまず記載しておきます。
詳しくは Ubuntu 14.04 LTS Server を使ってます。

SSH で root に login が出来ている状態だとします。
PHP を install します。

# apt-get -y install php5 php5-cli php5-gd php5-fpm php5-mysql
# php5 --version
PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul  2 2015 15:23:08) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

/etc/php5/fpm/pool.d/www.conf を書き換えます。

下記の ;; の先を 2 箇所変更を行います。

# vim /etc/php5/fpm/pool.d/www.conf
;;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000

;;pm = dynamic
pm = static

php-fpm のサービスのプロセス数を定量とするように設定しておきます。
pm = static としました。

私は www-data の user で動作させたいので
user = www-data
group = www-data
のままにしてます。

MariaDB(mysql) を install します。
root の password を入力します。もし password を忘れてしまった場合は MySQL と同じ様に password を再度設定する事も出来ますが、一度目で、正しく設定した方が勿論楽です。

# apt-get -y install mariadb-server

install 済みか確認します。

# mysql --version
mysql  Ver 15.1 Distrib 5.5.44-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

MariaDB(mysql) daemon を起動させます。

# service mysql start

daemon の状態確認します。

# service mysql status
 * /usr/bin/mysqladmin  Ver 9.0 Distrib 5.5.44-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Server version          5.5.44-MariaDB-1ubuntu0.14.04.1
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
Uptime:                 57 days 20 hours 37 min 8 sec

Threads: 1  Questions: 1016040  Slow queries: 0  Opens: 1468  Flush tables: 2  Open tables: 158  Queries per second avg: 0.203

WordPerss で使用する DATABASE を作成します。

# mysql -u root -ppassword ##password は先程設定したものです。
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 218186
Server version: 5.5.44-MariaDB-1ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

/* __ という USER を新規に作成し、 password を ________ で設定します。 */
MariaDB [(none)]> INSERT INTO user SET user="__", password=password("________"), host="localhost";
/* tech という WordPress 用に DATABASE を作成します。 */
MariaDB [(none)]> CREATE DATABASE tech;
/* tech という DATABASE に __ という USER が常に access できるようにします。 */
MariaDB [(none)]> GRANT ALL ON `tech`.`*` TO `__`;
/* 最新に更新 */
FLUSH PRIVILEGES;

新規 DATABASE へ新規 USER で LOGIN 出来るか確認します。

# mysql -u__ -p________ -Dtech
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 218186
Server version: 5.5.44-MariaDB-1ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [tech]> 

Nginx 安定版を install します。

# apt-get -y install nginx

install 済みか確認をします。

# nginx -v
nginx version: nginx/1.4.6 (Ubuntu)
# vim /etc/nginx/nginx.conf
##user www-data;
user www-data www-data;

##log の追加
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

#sever 共有設定 FILE をすべて読み込みます。
include /etc/nginx/conf.d/*.conf;
#(仮想)sever 設定 すべて をすべて読み込みます。
include /etc/nginx/sites-enabled/*;
# chown -R www-data: /var/log/nginx
# chmod +r+w /var/log/nginx

/etc/nginx/fastcgi_params
Nginx の FastCGI の DEFAULT PARAMETERS 設定 FILE です。 DEFAULT の設定 FILE があるので、それをそのまま使用します。

www.example.com の場合 FILE NAME /etc/nginx/sites-available/www.example.com.conf

server {
    #server の DEFAULT TCP PORT です。
    listen       80;
    #host 名を設定します。
    server_name  www.example.com;
    #ドキュメントルートディレクトリを設定します。
    root         /var/www/tech;
    #index FILE TYPE の優先順を設定します。
    index       index.php index.html index.htm;
 
    # ログファイル名を設定します。
    access_log   /var/log/nginx/www.example.com/access.log;
    error_log    /var/log/nginx/www.example.com/error.log;
 
    # WordPress用のリダイレクト設定
    # ファイルが存在しないURIの場合は、index.phpへ転送させる。
    try_files $uri $uri/ /index.php?q=$uri&$args;
 
    # PHP FPM との接続を行うため 拡張子 php に対して処理します。
    location ~ \.(hh|php)${
        fastcgi_pass            127.0.0.1:9000;
        fastcgi_index           index.php;
        fastcgi_param           SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include                 fastcgi_params;
    }
}
# mkdir /var/www/tech
ln -s /etc/nginx/sites-available/www.example.com.conf /etc/nginx/sites-enabled/www.example.com.conf
mkdir /var/log/nginx/www.example.com
chmod +r+w /var/log/nginx/www.example.com

因みに現状の本当の tech.av8.jp 自体は下記の様な設定になってます。
Nginx の現状の設定
/etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  tech.av8.jp;

    location / {
        proxy_pass   http://www.example.com;
    }
}

www.example.com 側が今まで install や設定していた側になってます。
本来は tech.av8.jp 単独で構築したんですけどね ^^.

Apache を停止します。
# service stop apache2

再起動しても Apache が自動起動しないように無効にします。
現在の状態を確認する
# sysv-rc-conf --list apache2
apache2      0:off      1:off   2:on    3:on    4:on    5:on    6:off

再起動しても httpdapache 自動起動しないように無効にします。
# sysv-rc-conf apache2 off

再度、状態を確認する
# sysv-rc-conf --list apache2
apache2      0:off      1:off   2:off   3:off   4:off   5:off   6:off

私は Apache が必用が無いので削除します。

# apt-get -y purge apache2

Nginx を起動します。

# service nginx start

Nginx が起動しているか確認します。

# service nginx status

Nginx の daemon の登録状態を確認します。

# sysv-rc-conf --list nginx
nginx        0:off      1:off   2:on    3:on    4:on    5:on    6:off

登録の必用があれば下記を実行します。

# sysv-rc-conf nginx on
# cd /var/www/tech
[tech]# sh -c "echo ''  > index.php"
[tech]#
http://tech.av8.jp/index.php

が web browser で読み込めて phpinfo の内容が出れば問題ありません。

curl で error が出そうだったら下記を実行し install して下さい。

apt-get -y install curl
# curl -L -o wordpress-4.3.1-ja.tar.gz https://ja.wordpress.org/wordpress-4.3.1-ja.tar.gz
# mv wordpress-4.1-ja.zip /var/www/tech/.

file を展開(解凍)します。

# cd /var/www/tech
[tech]# tar zxf wordpress-4.3.1-ja.tar.gz
[tech]# mv wordpress/* .

http://www.example.com/ に web browser で access し WordPress 設定をすれば blog が使える様になります!!
ちょっと WordPress 設定は端折ります。

PHP-FPM でも十分早いんですが HHVM を install し設定をします。

# apt-get install software-properties-common
# apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
# add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main"
# apt-get update
# apt-get install hhvm
# hhvm -v
# /usr/share/hhvm/install_fastcgi.sh

説明はちょっと難しいので

自動起動設定をする場合。
(一瞬 web server が止まりますが) php5-fpm が起動してたら止めて、HHVM を起動したら良いと思います。

# sysv-rc-conf --list hhvm
# service php5-fpm stop
# service hhvm start
# sysv-rc-conf hhvm on
# sysv-rc-conf --list hhvm

同じ環境に OpenPNE も実は install していて HHVM では OpenPNE が正しく動作せず。
私の HHVM での WordPress はちょっと幻にしております。

体感でさくさく動いているので、かなり、捌ける blog になっていると思われます。
良い、速度の指標や benchmark(ベンチマーク)の方法があれば試してみたいので、御連絡を頂けますでしょうか。

コメント

タイトルとURLをコピーしました