目次
概要
前回、KUSANAGIにて環境構築を行いましたが、比較がてらCentOS7を普通にインストールして構築してみてどう違うか試してみたいと思います。
導入
とりあえず、OSのインストールはさくらVPSで標準で提供されているCentOS7を利用しました。
ボタンでワンタッチ。
ちなみに標準インストール後の状況はこんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# uname -m x86_64 # cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) # df -h Filesystem Size Used Avail Use% Mounted on /dev/vda4 196G 2.0G 194G 2% / devtmpfs 989M 0 989M 0% /dev tmpfs 1000M 0 1000M 0% /dev/shm tmpfs 1000M 8.5M 992M 1% /run tmpfs 1000M 0 1000M 0% /sys/fs/cgroup /dev/vda2 497M 221M 276M 45% /boot tmpfs 200M 0 200M 0% /run/user/0 # free -m total used free shared buff/cache available Mem: 1999 122 1744 8 131 1724 Swap: 4095 0 4095 # |
更新するも…?
インストール後はyumで更新をかけます。
ところがCentOS7とyum updateをかけたところ、レスポンスが非常に悪くなってしまいました。
しばらく「う~む」と悩んでいると
規制されているじゃないですかー。やだー。
プロンプトもほぼ帰ってこず、ひたすら書き込み遅延の警告を垂れ流す始末。
規制の理由?
この制限についてOSのインストールとパッケージ更新を行うだけで発生するのかサポートに問い合わせをしてみました。
1.IOPS制限はOSのインストールとパッケージの更新が原
因でしょうか。
—–
スタートアップスクリプトを適用したOSインストール直後にIOPS制限が
かかっているのであれば、スタートアップスクリプトが正常に動作せず、
過剰なディスクI/Oが発生した可能性や、同じ物理ホストに収容されている
他のVPSの稼働状況の影響が原因の可能性と考えられます。—–
>2.現在も使えない状態が続いていますがこれは簡単に制限がかかるのは
>「お試し期間中」だからでしょうか。
—–
2018-09-25 12:56 に該当VPSにIOPS制限がかかった記録を確認したところ、
15:00頃には解除されておりました。IOPS制限はお試し期間中に限らず、本契約状態でもVPSの稼
働状況によっては
適用される可能性がございます。—–
>3.本契約になった場合でもOSのインストールとパッケージの更新だけで規制が
>かかりますでしょうか。
—–
基本的にはかから無いとは思われますが、スタートアップスクリプトが正常に
動作しなかった場合や、同じ物理ホスト内にタイミングが悪く過剰な負荷を
かけるVPSがあった場合など、状況による要因も制限の適用に影響を与えるため、
断定的にはお答えできません。ご提案にはなりますが、一旦今回お申込みいただいているVPSは
会員メニューから
キャンセル頂き、お手数にはなりますが、改めてVPSをお申込みいただく事で、
別の物理ホストに収容されているVPSが提供される可能性がございます。 お手数にはなりますが、申込み直しを頂いたVPSにて標準OS(
Cent OS7)の
インストールに際してのスタートアップスクリプトを適用しての動作確認を
お願いできますでしょうか。
まぁ、もう一回試して気になるならお試し期間中にVPSガチャしてねってことでした。
しばらくほっといた後にもう一度はじめからインストールし直したら普通に使える状態になりました。
気を取り直してパッケージ導入
PHP7
更新後にWordpressに必要な各パッケージを導入していきます。
PHP7をまず入れますが、デフォルトのリポジトリではPHP5だけでPHP7が導入できません。
なので、まずEPELとRemiリポジトリの追加を行います。
1 2 |
yum install epel-release rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm |
リポジトリがデフォルトで有効か無効化は下記のコマンドで「enabled」か「disabled」かで判別ができます。
デフォルトで有効なリポジトリは「enabled」となります。
1 |
yum repolist all |
下準備ができたところで、PHP7をインストール。
1 |
yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-gd |
インストール後はPHPのバージョンを確認しましょう。バージョン7が入っているはずです。
1 |
php -v |
Apache
つづいてHTTPサーバ。KUSANAGIではNginxでしたが今回は慣れ親しんだ?Apacheにします。
と、インストールしたいところですが先のPHP7導入の際依存パッケージとしてインストールされているようです。
バージョンと状態を確認します。
1 2 |
httpd -v systemctl status httpd |
Apacheの起動と自動起動を有効にします。
1 2 3 |
systemctl start httpd systemctl <span class="nb">enable </span>httpd systemctl list-unit-files | <span class="nb">grep </span>httpd |
この時点でサーバーに対しURLでアクセスしてみましょう。
Apacheを起動しているにもかかわらずページは表示されないはずです。
それはデフォルトでファイアーウォール(firewalld)が起動しており、80番ポートへのアクセスが許可されていないからです。それを許可してあげます。
1 2 3 |
firewall-cmd --add-port=80/tcp --zone=public --permanent firewall-cmd --reload firewall-cmd --list-all --zone=public |
うまくいっていればApacheのデフォルトページが表示されているでしょう。
MariaDB
そしたら次はDB。MariaDBです。何も考えずにインストールしてみました。
1 2 |
yum install mariadb mariadb-server rpm -qa | grep -i mariadb |
文字コードをUTF-8にします。
1 |
vi /etc/my.cnf |
「character-set-server=utf8」を追加。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd <strong>character-set-server=utf8</strong> [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d |
追加後、起動と自動起動を有効にします。
1 2 3 |
systemctl start mariadb systemctl enable mariadb systemctl list-unit-files | grep mariadb |
MariaDBの初期設定をします。
上から
- 初回なのでパスワードを聞かれずにログイン
- パスワードをrootに設定
- 権限の反映
- 一回抜ける
- パスワード設定されているか確認のためログイン
- wpデータベースを作成
- データベースの一覧を確認
1 2 3 4 5 6 7 |
mysql -u root update mysql.user set password=password('パスワード') where user = 'root'; flush privileges; exit; mysql -u root -p create database wp; show databases; |
WordPress
最後はWordpressの導入です。まずはファイルを取ってきます。
執筆時のバージョンを使用しますが、場合によっては変えてください。
最新版のWordpress入手はここから行ってください。
また、状況により随時コマンドは変えてください。
1 2 3 4 5 6 |
cd /tmp wget https://ja.wordpress.org/wordpress-4.9.8-ja.tar.gz tar -zxvf wordpress-4.9.8-ja.tar.gz -C /var/www/ cd /var/www chown -R apache:apache wordpress vi /etc/httpd/conf/httpd.conf |
httpd.confは下記を書き換えます。心配な人はバックアップを取っておきましょう。
1 2 3 4 5 6 7 8 |
■変更 DocumentRoot "/var/www/html" →DocumentRoot "/var/www/wordpress" ■追加 <Directory "/var/www/wordpress"> AllowOverride All </Directory> |
編集が終わったら、保存してViを閉じます。そしてhttpdを再起動します。
1 |
systemctl restart httpd |
MySQL拡張
試しにトップアドレスにアクセスしてみましょう。
おそらく「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」と表示されると思います。
MySQL拡張が入っているか見てみましょう。
1 2 |
ll /usr/lib64/php/modules/ | grep mysql php -m | grep mysql |
何も表示されないので入っていない!と言うことでインストール。
いまのPHPには非推奨で入ってないみたいです。
1 2 3 4 |
yum install yum-utils yum-config-manager --enable remi-php71 yum install php-mysqlnd systemctl restart httpd |
Apacheを再起動すると…
きたー!ここまでくればもう楽勝です。
設定では作成したデータベースとかを指定します。
ここではユーザー名はrootですが実運用ではやめておきましょう。
インストールを実行すると無事サンプルトップページが見れました。
KUSANAGIに比べてやることは多いですが2~3時間あれば何とか形までは持っていけそうな感じでした。
パフォーマンス計測
最後に、GTmetrixでパフォーマンス測定をしてみます。
あくまで空っぽなのであまり意味はないと思いますが…
KUSANAGI | CentOS7(バニラ) |
Kusanagi/Nginx/MariaDB/PHP7 | CentOS7/Apache/MariaDB/PHP7 |
と思ったら、1段階バニラのほうが遅いんですね。
ApacheとNginxの差なのかチューニングの差なのかはわかりませんがさすが超高速を謳うだけはあります。
バニラのほうはWordpressもバニラなのでそれもありそうです。
こうなるとプラグインの性能差もあるかもしれませんがNginxだとどうなるか試してみたいですねー。
日々くだらないことを追い求め、黒歴史をまとめておくための自由なブログ。
あんまり役立つことは書きませんが主に日記・ゲームや買ったものについての記事を気まぐれで好き勝手書いています。