こんにちは。エンジニアミートアップ事務局の鮫島です。
今回は、珍しく初心者向けのWebサーバー構築がテーマです。
手軽にWebサイトやブログ運用の用途でCMS(コンテンツマネジメントシステム)として幅広く利用されているWordPressをクラウドにインストールしてみました。
WordPressは、多くのレンタルサーバーやクラウドサービスでもプレインストールされていたり、構築済イメージを提供しているほどポピュラーなソフトウェアです。
今回はクラウド初心者のために、サーバーの裏側でそれぞれのソフトウェアがどんな役割をしているか学べるように手動でインストールしてみました。
実は以前、FJcloud-Vの無料トライアルを使って雑にWordPress(当時5.8.4)をインストールしてみたところ、動かなかったことがあります。
その時のブログ記事はこちら blog.pfs.nifcloud.com
動かなかった原因は、WordPress 5.8.4に適合するバージョンのPHPをインストールしていなかったことでした。
このあたりの経緯は、2022年5月のニフクラエンジニアミートアップでお話ししています。 blog.pfs.nifcloud.com
それでは改めて、ニフクラOEMのクラウド、FJcloud-VにWordPressをインストールする手順をご説明します。
前提条件
本記事は、以下の前提知識があまりない方を想定しています。
Linuxサーバーの基本的な操作、知識
Linuxカーネルパラメーターの基本的な操作、知識
※知識がある方のツッコミをお待ちしています。
SSH接続の準備
今回は、一般的なWindowsPCからサーバーを操作するのに、Tera Termを使います。
リモートアクセスでサーバーの操作を行う場合の基本…ですが不正アクセス防止のためにSSH接続をおこなう環境が必須です。
Tera Termのインストール
Tera TermはWindowsで動作する、オープンソースのターミナルエミュレータソフトです。 サーバーにSSHでリモートログインする際に使います。特に注意事項はありません。 ※信頼できるサイト経由でダウンロードしてください。
SSHキーの作成と登録
SSHキーは通常は秘密鍵と公開鍵のペアで作成します。 FJcloud-Vのコントロールパネルでも生成できますが、その場合公開鍵はFJcloud-Vに登録され、ローカルには残らないので、今回は分かりやすいようにTera Termを使って作成(生成)します。
Tera Termだと秘密鍵は「id_rsa.pem」、公開鍵は拡張子が「id_rsa.pub」です。
続いて、FJcloud-VのUI(コントロールパネル)からSSHキーの登録を行います。
FJcloud-Vのポータルから、UIにログインすることはできません。ご注意を。
https://nc.paas.cloud.global.fujitsu.com/webを直接クリックします。
SSHキー(公開鍵)を登録します。
左メニュー①の「SSHキー」から「SSHキーインポート」ボタンをクリックすると下記の画面が出ます。
適当な「SSHキー名」②を入力、SSH公開鍵ファイル(id_rsa.pub)③を読み込んでインポートします。
これで、SSHでログインできるようになりました。
サーバー構築(UI編)
続いて、FJcloud-VのUI(コントロールパネル)からサーバーの構築を行います。
といっても、いきなりサーバーを作成する前に準備がいくつか…。
付替IPアドレスの取得
FJcloud-Vでサーバーを作成すると動的なグローバルIPアドレスが割り当てられますが、サーバーを再作成するとIPアドレスが変わってしまいます。
Webサーバーのように固定のIPアドレスを割り当てたいときには、付替IPアドレスを使用します。
※サーバーを作成する前に、付替IPアドレスを取得する理由は、サーバーを作成した後で、付替IPアドレスを割り当てると、サーバー再起動が必要になってしまうからです。
ファイアウォールグループの作成
作成するサーバーに対してのアクセス制御のためにファイアウォールを設定します。今回はサーバーが一台だけなのでIN側とOUT側に設定する(制御はINのみ)だけです。
緑色の「追加ボタン」で、ルール① プロトコル「HTTP」接続元種別「ANY」を追加します。
もう一度緑色の「追加ボタン」でルール②プロトコル「SSH」と接続元種別「接続しているIPアドレス」を選ぶと、現在使用中のIPアドレスが自動的に設定されます。
INルールだけ設定されているのを確認できたら作成ボタンを押してください。
サーバーの作成
コントロールパネルの左メニュー「サーバー」をクリックします。検索窓①を空白にし、プルダウン②からCentOSを選択するとこの画面がでます。 何も考えずCentOS 7.9のスタンダード③を選択します。
続いて、ゾーン①(いわゆるAZ)を選択します。
今回は全リソースをeast-12に作成します。
ゾーンを聞かれたら今回はeast-12一択!
サーバータイプは、一番安いやつ②でいいと思います。
①サーバー名とメモ②は適当に好きなものにしてください。 料金プラン③は従量、SSHキー④とファイアウォール⑤は先ほど設定したものを選択します。 グローバルネットワークのIPアドレス⑥と⑦はさきほど取得した付替IPアドレスの値でOKです。 プライベートネットワークは⑧共通プライベートで⑨自動割り当てです。
サーバー構築(CLI編)
ここからは、さきほど作成したサーバーにWordPressを動かすために必要なソフトウェアをCLIからインストールします。 Apache web server、PHP、MariaDBです。
Tera TermでSSHリモートログイン
Tera Termを起動すると、ホスト名を聞かれるのでサーバーの付替IPアドレス①を入れてOKを押します。
SSH認証のためのダイアログが表示されます。
ユーザー名①は「root」、パスフレーズ②は秘密鍵作成時に設定したパスフレーズを、認証方法③は「RSA/DSA/ECDSA/ED25519を使う」を選択して、秘密鍵はローカルに保存している「id.rsa.pem」を読み込んでOKを押します。
ログインに成功したら、下記のようにターミナルにシェルプロンプトが表示されるとコマンド入力が可能になります。
CentOS アップデート
やっとここからはCLIからWordPressを動かすためのソフトウェアのインストール・設定を行います。
その前に、サーバー管理者のお作法としてCentOSを最新の状態にアップデートしておきます。
※脆弱性対策のため最新版の適用は重要…
アップデートの確認
[ root@localhost ~]# yum check-update
アップデートの実行
[ root@localhost ~]# yum update -y
アップデートの実行の自動実行も設定できます!
[ root@localhost ~]# yum-updated
このあたりで、ちょっとした気付きがありました。。
Linuxに関してド素人なので許してください。
Apache Web Serverのインストール
ちょっとだけ、分かったのでどんどんコマンドを入力します。
Apacheのインストール
[ root@localhost ~]# yum install httpd
Apacheの起動
[ root@localhost ~]# systemctl start httpd
システム再起動時にApacheが起動するように設定
[ root@localhost ~]# systemctl enable httpd
PHPのインストール(失敗編)
ここで、下記のようにPHPのインストール行うと、冒頭で述べたような失敗を繰り返してしまいます。 ダメ!ぜったい。
[ root@localhost ~]# yum install php
これだと、PHP 5.5がインストールされましたが、WordPressの最新バージョンの動作要件を見るとPHP 7.4以上が必要という記載があります。 ※2022年5月中旬時点
PHP 7.4以上ってどこで入手すればいいの?
どうもサードパーティ製レポジトリ(EPELとかRemiとか)で入手できるらしい?という断片的な情報をもとに、Googleで検索したらremiレポジトリからPHP 7.4をインストール手順を解説したブログ記事がいくつか出てきたので、ようやく解決方法がわかりました。
Remiレポジトリのインストール
[ root@localhost ~]# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
PHP 7.4のインストール
[ root@localhost ~]# yum -y install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
念のため、インストールが成功しているか確認しましょう。
[ root@localhost ~]# yum list installed | grep php
MariaDBのインストール
WordPressがバックエンドデータベースとして使用するMariaDBをインストールします。
MariaDBはMySQL互換のDBで、CentOS7の標準パッケージとして用意されています。
ちなみに、WordPressの最新バージョンではMariaDB バージョン10.3以上を推奨しています。
MariaDBのインストール
[ root@localhost ~]# yum install mariadb-server -y
MariaDBの起動
[ root@localhost ~]# systemctl start mariadb
システム起動時 に自動的にmariadbサービスが起動するように設定
[ root@localhost ~]# systemctl enable mariadb Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service
このあたりで、ようやくもう一つの気づきがありました。。
正直、わざわざ言うほどのことでもありませんが。。
MariaDBの設定
続いて、WordPress用のデータベースと、それにアクセスさせるためのユーザーを作成します。 使用するパラメータはとりあえず以下の表のようにしてみましょう(これ以外でも問題ないです)。
※WordPressの設定時に使うので覚えておいてください!
続いて、MySQLにログインしてSQL文を実行する準備をします。
[ root@localhost ~]# mysql -u root -p Enter password:
パスワードは設定していないので、そのままリターンキーを押します。
すると、黄色い文字の画面が表示されるので、赤く囲んだ部分のSQL文を実行します。
※さきほどのパラメータをそのまま入力しています。
WordPressのインストール
やっと、大詰めのWordPressです。
作業ディレクトリを/var/tmpに変更しWordPressの最新版をインストールします。
[root@localhost tmp]# cd /var/tmp [root@localhost tmp]# wget http://ja.wordpress.org/latest-ja.tar.gz
圧縮ファイルを展開します。
[root@localhost tmp]# tar zxf latest-ja.tar.gz
展開されたファイルをApache WebサーバーのDocumentRootディレクトリに移動し、 所有権を変更します。
[root@localhost tmp]# mv wordpress /var/www/html [root@localhost tmp]# chown -R apache:apache /var/www/html/wordpress
以上で、インストールの”準備”は終了です。
WordPressの設定
インストールの準備が終了したので、続いて設定を行います。
WordPressの初期設定画面の表示
Webブラウザで「http://サーバーのIPアドレス/wordpress」にアクセスします。
インストールの”準備”が成功していれば、下記の画面が表示できるはずです。
「さあ、始めましょう」ボタンをクリックすると、WordPressのデータベース設定が表示されます。
MariaDBのユーザー作成時のパラメータをそのまま入力して送信ボタンをクリックします。
WordPressのインストール
どこからがWordPressのインストールなのか、正直よくわかりませんが本体のプログラムのインストールはこれからのようです。
インストール実行を押します。
作成するサイトの情報を入力、WordPressのインストールを進めます。
WordPressにログインできるぞ?
突然、ここでWordPressにログインするダイアログが出て来ます。
作成するサイトの情報を入力した時に指定したユーザー名とパスワードでログインします。
WordPressがインストールできました!
Webサイトの本番環境を構築する場合、ドメインの取得やDNSの設定などの手順も発生しますが、今回は省略します。
これで、リベンジ成功です。
レンタルサーバーVSクラウド
冒頭でも述べましたが、WordPressで個人でブログを運用したり、企業のWebサイトを構築する人は、安価なレンタルサーバー(またはVPS)を利用する人が多いと思います。
高い金払ってクラウドでWordPressを動かす必要ある?
レンタルサーバーとクラウドの比較について詳しくはクラウドナビの記事もご覧ください。 pfs.nifcloud.com
クラウドならではのメリットって?
クラウドのメリットというとこういう事を言われますよね?
・安定性
・可用性
・柔軟性
そんなビジネスライクな説明、まったく心に響かないよ! という人がいらっしゃると思います。
「聞こえますか・・・あなたの心に・・・直接・・・語りかけています・・・」 もっと単純化しました。
・めったに止まらない
・止まってもすぐ動き続ける
・スペックや台数を変えられる
クラウドなら、月に数千円多く支払った分だけ、かなり楽ができます。
恐らく、1年分の累計でも稟議が不要な企業が多いはず。。 なにかと面倒な社内手続き的に難易度は変わりません。
また、個人事業主の方は堂々と経費計上出来る費目です。
ニフクラ/FJCloud-Vなら、従量課金だけでなく月額固定料金も選べますし、法人で請求書払いも可能だけでなく個人事業主がクレカ決裁も可能です。
お金で解決しましょう!
まずはFJcloud-Vの無料枠からスタート!
まずは、FJcloud-Vの無料枠を使って、WordPressサーバー構築を試してみましょう。 personal.clouddirect.jp.fujitsu.com
動画でも同様の手順を解説しているのでこちらもご覧ください。 youtu.be