覚えたことは記録しよう!
ということで企画してみたけど、いつまで続くかしらね、、、
週1くらいを目標にしてます。
=====今週のトピック=====
WordPress構築
========================
・・・張り切りすぎてすんごい長くなっちゃったけど。
WordPress構築
これ、先週なんですよね、やったの。
まあそれでも書いていいよね、きっと。
ちなみに、先週のことを思い出しながらなので、かなりaboutです。
金をかけず、今の自分の技術力でできる何かをしよう!
と思い立って、じゃあブログサイトでも作るか、、、
ということでWordPress環境を作りました。
コンポーネントとしてはこんな感じです。
・AWS EC2サーバ(RHEL7)
・Linux Apache MySQL PHP
・WordPress
、、、そりゃそうですよね。
金をかけずに、って言った時点でおおよそこんなもんでしょう。
まずはAWSサーバの調達。
AWSはアカウント登録時にクレジットの支払い情報も
登録しなきゃいけないのがちょっと嫌だが(無課金ユーザとしてはね)、
使いすぎなければいいんでしょう、くらいで割り切っている。
使えるサーバは無料前提にするとメモリ1G、ストレージ15Gの超ミニサイズ。
まあ、無料なんだから文句は言えない。
選べるOSはRHEL、Windows Serverほか。
Debianとかもあったっけ?
OSなしのプラットフォームも用意してほしいが、
それよりもRHELにしてもWindows Serverにしても、
最新版しか使えない、というのはちょっと勘弁してほしい。
RHEL7なんて使ったことないよ。
そりゃまあ、いずれ使わなきゃいけないんだろうけど、
プライベートでまで不便を強要されたくないよ。
これ、ビジネス用途でも困ると思うんだけどなぁ。
接続には通常のPW認証は使えず、公開鍵方式での認証。
やり方さえ知っていればさほど問題はない。
鍵はEC2インスタンスの管理画面から取得可。
ちなみに、WEBページを公開することを想定する以上、
当然後々HTTPアクセスを許可しなくちゃいけない。
もちろんOS側での制御(後述のfirewalld)も必要だが、
AWSでアクセス制御を行っており、
デフォルトではinboundはSSHのポートしか許可していないので、
80番ポート(HTTP)をあけてやる必要がある。
インスタンスに接続すると、すでにyumレポジトリが登録されている。
スバラシイ。
いつもESXiでCentOS入れてからネットワーク情報登録してyumレポジトリ登録して、、、
とかやっていることを考えれば夢のよう。
ここまでできればとりあえずはOS以下のレイヤーの準備は完了。
あと、RHEL7で気づいたことを少し。
・serviceコマンドないってなんだよ!!!
serviceコマンドは/bin/systemctlにリダイレクトされるとはいえ、明らかに下位互換のため。
正式にはsystemctl <コマンド> <サービス名>.service
とやるよう。たとえば、
service mysql start
なら、
systemctl start mysql.service
になるらしい。
・iptablesサービスがない
firewalldというサービスに置き換わったらしい。
普段iptablesなんて使ってないので(AWSではAWS側で用意したファイアウォールがある)
全然関係ないけど、普段iptables止めるのがOSインストールした最初のお仕事だったから、
なくなってたのはすぐ気がついた。
詳細は調べる気もないが、ネットワーク周りの問題起こったらfirewalldを疑うこととしよう、、、
さて、次はLAMPだ。
(こんなペースじゃ先進まないので巻き気味で)
Linuxはもういいよね。
Apacheはyum httpd installでインストール完了。
httpd.confがデフォルトでどこにあるのか忘れたので、
updatedb → locate
で調べようと思ったらパッケージがインストールされていなかったので、
yum install mlocate。
mlocateってネーミングに5分ほど時間をとられてイラッとした。
設定はhttpd.conf(デフォルトでは/etc/httpd/conf/配下)で行う。
細かなチューニングなんて知らん!
という人でも、このファイル中のDocumentRootだけは確認する必要がある。
DocumentRootのデフォルトは/var/www/htmlで、この配下はWEBからアクセスできる。
狭義でのホームページはここにおいてあるindex.htmlを見ているわけだ。
あと、まだ使ってないけどよく一緒に使うtomcatについても少し触れておく。
tomcatはyumではなくtarball形式でインストールになる(たぶんRPMはない?)
といっても、/usr/local/配下にでも解凍してやればよくて、
tomcatユーザ、グループを手動でつくっておけば使う準備OK。
ただし、tomcatは他のMWみたく起動スクリプトが用意されてないので、
自分で作る(といってもどっかから拾ってくるのだが)か、
都度
apache-tomcatの連携については、mod_proxy、mod_proxy_ajpなどが受け持つ。
mod_proxy_ajpはまだ使ったことがないので知らないが、
mod_proxyなら使ったことある。
要はapacheへのアクセスをTomcatに送るプロキシの役割をしてくれる。
静的なコンテンツへのアクセスはapacheが返し、
動的なコンテンツへのアクセスはtomcatに送る、という具合。
httpd.confに設定をいれれば使える。
loadmoduleして、proxypassとproxypassreverse(だっけ?)を設定するだけ。
話がそれた。
次はMySQL。
LAMPの中では1番使い慣れているコンポーネント。
今時はyumでレポジトリをインストールすれば、
yumコマンドで最新のバージョンのMySQLをインストールできる。
無論、5.6系、5.5系とかは選べる。
今回、おれも初めてyumでインストールした。
実は、ちょっと前にRHEL7にRPMパッケージを手動で入れようとして失敗した過去がある。
RHEL7に採用されているDBはMySQLではなくなって、Maria DBになった。
その関係で、今までMySQL入れるときにおまじないのように抜いていた
mysql-libsはデフォルトでは入っていないのだが、
当然代わりにmaria-libs(mariadb-libsだったかも?)が入っている。
MySQLとMaria DBは姉妹製品みたいなもんだし、
同じようにできるだろうと思ってlibsを抜いて、、、
とか思ったらそう簡単ではなく、
maria-libsを抜くには依存性の問題でcrondとかも抜け、といわれる。
そんな殺生な笑
これってRHEL7の問題かと思ってたけど、
RHEL6でやっても同じだったので、
shared-compatの不具合かなにかだったんじゃないだろうか、、、
今は普通にできるのが何よりの証拠。
また全然関係ない話を、、、
MySQLをインストールしてからは特に難しいことはない。
WordPressのためのデータベース(スキーマ)を作成し、
そのスキーマに対してALLの権限を持つユーザを作成してやればいい。
mysql> create database wordpress;
mysql> grant all on wordpress.* to ‘ap_user’@’localhost’ identified by ‘パスワード’;
という感じ。
MWの最後はPHP。
でも、PHPについて話せることはないんです、、、
RPMパッケージでPHPを導入して、特段なにも設定してないです。
php.iniで各種設定はできるけど、
設定項目多いし、いちいち全部見てられないので。
そんなこんなでMWインストール完了。
WordPressのインストールについてはさほど難しくない。
公式マニュアルをみれば普通にインストールできます。
これでWordPressもはいった!
(説明手抜きとか言わないでね、、、覚えてないんです。)
WordPressの構築についてはこんなもんです。
以上。