さくらVPS(Ubuntu 20.04)にLAMPスタックを構築してWordPressをインストールしてみる。

2021年12月19日lamp,Ubuntu,wordpress,さくらvps

さて、先日の記事で無事にUbuntuをVPSサーバーにインストールすることができました。今日は引き続きLAMPスタックのインストール、セットアップをしてWordPressをインストールするところまでやってみましょ~!

What is LAMP? (なんとなく英語)

前回でも書いたけど一応。LAMPは今回Ubuntu Apache2 MariaDB PHPでセットアップしていきます。Nginx? Perl? Python? 扱ったことないので今回はスルーします。時間ができたらPythonは一通り触ってみたいとは考えてるけど今はその気力がわかない。

LAMPランプ)とは、OSであるLinuxWebサーバであるApache HTTP ServerデータベースであるMySQLスクリプト言語であるPerlPHPPythonを総称した頭文字から成る造語である。動的(ダイナミック)なウェブコンテンツを含むウェブサイトの構築に適した、オープンソースのソフトウェア群である。これらは、それぞれ独自に開発されたものである。 Linux
Apache, Webサーバ
Mariadb, MySQL
P for PHP, Perl, Python

この起源は、1998年にドイツのコンピュータ雑誌であるC'tにてミハエル・クンツェ(Michael Kunze)が提唱したのが始まりである。

Wikipedia

正直言ってしまってMySQLとMariaDBの違いがよくわかってないけど、今はMariaDBの方がメジャーらしいんでできる限りMariaDBを使っていこうと思ってます。

管理者の環境

サーバー: さくらVPS 1Gプラン
OS : Ubuntu 20.04

基本的にスーパーユーザー権限で使ってる前提の書き方をしています。スーパーユーザーになって作業が怖い人は各コマンドの前にsudo つけて実行してくださいね

LAMPのインストール

まずはお約束のコマンドでスーパーユーザー権限に切り替え、本体のアップデートまで終わらせる。
一行目の"sudo su"はスーパーユーザーへの切り替えです。嫌な人はスキップしてね。

sudo su
apt-get update
apt-get upgrade

まずはapache2

apt-get install apache2

これでインストールできるはず。いや~パッケージ管理システムって便利やな。MicrosoftもWindowsでコマンドラインからインストールできるシステムを作るらしいけどうまくいくのかどうか、、、

systemctl enable apache2
systemctl start apache2
systemctl status apache2

これでapache2のインストール並びに起動ができたはずです。

http://あなたのIP/

上記アドレスにアクセスすると画像のようなApacheの初期画面が表示されるはず。ここまで表示されたらApacheのインストールは成功。次のステップにいきましょー

続いてPHPのインストール。

なんか最新のPHPインストールしたいならリポジトリの追加をやらないといけないらしいんだけど今回は7.4でいいのでパッケージ管理システムのものを入れます。

ここで注意が必要なのが、PHPは拡張モジュールを一部インストールしないとWordPressがまともに動かないことがあります。
管理者はマルチバイト文字(全角文字とか)の拡張モジュールをインストールしておらず数日間悩みました。

というわけで今回はPHP本体以外に、imagick imagick-php php-curl php-mbstring php-mysql php-xml php-zipの拡張モジュールをインストールします。

apt-get install php php-mysql -y
apt-get install imagick imagick-php php-curl php-mbstring php-xml php-zip -y

-yはストレージを消費しますよっていう確認画面を省略するためのオプションですね。(まぁ大半の人が知ってるだろうけど一応)

phpの動作確認をします。phpはphpinfoっていう関数が用意されていて、webからアクセスるとそのサイトのphpの情報を出力してくれる機能があります。早速phpinfoを使ったファイルを作成してみましょう。

cd /var/www/html/
nano index.php

cdコマンドはディレクトリの移動です。apacheで作られてるはずなのでそこに移動してます。
nanoはテキストエディタです。下のような画面に切り替えられるはずです。これにphpinfoの関数を書き込みます。
え?Vimの方が使いやすいだろって?無理です私にはあんなもん使えないです。nanoに甘えさせてください()

<?php
phpinfo();
?>

↑これだけです。そのあとにCtrl + Oで書き込みの確認画面が出てくるのでEnterで確定してCtrl + Xで終了します。画像の下の方に操作方法が書いてあります。Ctrlをおしながら選択すればいいだけなので簡単ですね。

それでは作ったファイルにアクセスしてみましょう。

http://あなたのIPアドレス/index.php

これで今作ったファイルにアクセスできます。下の画像のようなページが表示されたらうまくいってます。
このphpinfoやApacheのページは近年セキュリティー上よくないといわれるので後々削除します。
次の投稿でこのページの情報を利用するので一枚スクリーンショットを取っておくことをお勧めします。

さてデータベースつくろう MariaDBのインストール

続いてLAMPのMとなるMariaDBをインストールしましょう。MySQLというてもあるが情報量的にMariaDBの方が多かったし今はメジャーらしいからMariaDBにしておく。

apt-get install mariadb-server mariadb-client -y
systemctl enable mariadb
systemctl start mariadb

さっきも使ったsystemctl enableは自動起動を有効化しています。なんかデーモンとかなんとか言われるらしいんですが、管理者自身も詳しく知らないので、知りたい人は偉大なるgoogle先生に聞いてみてください

これで起動できたはずです。

続いてwordpress用のデータベースとユーザーを作っていきます。一行目のコマンドでmariaDBへログインをしてます。

MariaDBは各コマンドの後ろにセミコロン( ; )を忘れないようにしましょう。
管理者は何回もひっかかってました (´;ω;`)

mariadb
CREATE DATABASE wordpress CHARACTER SET utf8;

二行目のコマンドでデータベースを作成しています。'wordpress'の部分がデータベース名です。任意で偏越してください。まぁよっぽど変えなくても大丈夫ですが。
CHARACTER SETで文字コードを指定しています。今回はUTF-8を指定しています。

次にユーザーを作成しています。管理者の能力の問題で権限の付与は別の段階で行っていきます。

CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password'

このコマンドのwordpressuserがユーザー名です。@の後ろの'localhost'はホスト名を表しています。今回はMariaDB-serverを同じサーバー内に組み込んでいるのでlocalhostで大丈夫です。
passwordはそのままパスワードです。ここはで各自のパスワードに変更してください。

一応ユーザーとデータベースがキチンと作られているか確認してみましょ~下のコマンドをそれぞれ打った時に画像のように自分の作ったデータベース名とユーザー名があるか確認しましょ~。
管理者は両方ともwordpressにしてしまいましたね(;'∀')マギラワシ久手すみません。

SELECT user,host FROM mysql.user;
SHOW DATABASES;

さて、仕上げに今作ったMariaDBユーザーにデータベースへの権限をあげましょう。今回はwordpress用に作ったデータベースだけの権限を与えます。

GRANT ALL ON 'wordpress'.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

wordpressの部分は今回作成したデータベース名です。今回はこのデータベースに限ってすべての権限を与えています。
wordpressuserの部分は今回作成したユーザー名です。あとはpasswordの部分を先ほど作成したパスワードに変更したら権限を付与できるはずです。心配なら下のコマンドで確認してみるのがいいと思います。ユーザー名とホスト名は各自で読み替えてください。

SHOW GRANTS FOR 'ユーザー名'@'ホスト名';

これでLAMPスタックのインストールが完了しました。

さてついにWordpressのダウンロードをしていきましょう。

お疲れ様でした。ここまででLAMPスタックのインストールが終わったので今度はWordpress本体のインストール、展開、設定までやっていきましょう!wordpressはLAMPそれぞれのようにパッケージとして提供されているわけじゃないのでwgetというダウンローダーをつかってファイルをダウンロードしてきます。wordpressの最新版はここで確認てきます。Linuxではtarという圧縮形式でダウンロードすることが多いので今回もそれに倣います。ちなみに執筆当時で最新は5.7でした。

移動が楽なので先にディレクトリを移動しておきます。

cd /var/www/html/

ついでに動作確認に使ったindex.phpとapacheの動作確認のデータ(index.html)も削除しておきましょう。

rm index.php index.html

この二つは時たま見たくなるのでディレクトリを移動させておいてもいいかもしれない。今回は解説しないので気になる人は調べてみよう。さて。wordpressのダウンロードです。

wget https://ja.wordpress.org/latest-ja.tar.gz
tar xvfz latest-ja.tar.gz

一行目のwgetでファイルをダウンロードし、二行目のtarコマンドでファイルを解凍している。xvfzは引数でアーカイブを展開することとかを指示している。まぁおまじないみたいなもん。ちゃんとできてるかどうかはlsコマンドで確認してみてください。

今ってxvfzじゃなくて-xvfでいいみたいですね。まぁ慣れているのでxvfzを使っています。

本当はこれでURLにアクセスすればいいんだけど、http://あなたのIP/wordpress/と一つ余計にwordpressというディレクトリが入ってしまうので、ファイルを移動するためにwordpressディレクトリに移動します。

cd /var/www/html/wordpress/
mv * ../

mvコマンドはファイルを移動させています。 *はすべてのファイルを指定しています。 ../は一つ上のディレクトリを指示しています。

つまりwordpressフォルダにあるすべてのファイルを一つ上のディレクトリに移動させろ。というわけです。これでwordpressフォルダが必要なくなったので削除しておきます。

rm -r wordpress

rm は削除のコマンド。-r はディレクトリ(ファイル)も削除していいよという指示。ほんとはrmdirというコマンドもあるけど面倒なのでまとめてrmだけで済ませている。

最後にファイルのアクセス権限を設定する。これをしないとapacheがwordpressのデータを操作できなくて操作がうまくできないということが起きる。

chown www-data:wwwdata /var/www/html

さて。これでwordpressのデータの設置も完了した。ここからの作業はwebから行うことになる。

Webでの最終設定 最後までふぁいとです!

さてまずは以下のアドレスにアクセスしましょう。以下の画像のようになったらOK

http://あなたのIP/

さあ、始めましょう!をクリックするとデータベースの名前、パスワード、ホスト名などを聞かれる。いずれも先ほど設定したものを入力する。ホスト名はそのままlocalhostでいい。テーブル接頭語も基本的にはそのままで大丈夫だ。

これで送信を押すとwordpressの設定(サイト名、ユーザーの作成、etc.)が始まる。ここから自分のブログを立ち上げてくことになります。そのあと無事にダッシュボードが開けたら今回の作業は完了です!お疲れ様でした!

はしがき

今回は結構長かったですね~お疲れ様でした~

これで今回の作業は以上です。ここから自分のサイトを立ち上げていくことになります。私もまだまだ新規のブログですがここまで読んでいただきありがとうございました。ブログはコンテンツが勝負なので頑張っていきましょう。

次回は今回の補足としてアップロードの上限を設定するためにphp.iniを設定していきたいと思います。ここでアップロードの上限をいじってあげればサイトにアップロードできるサイズを大きくすることができます。

今回もここまで読んでくれてありがとうございました。もしよろしければSNSなどでの拡散、ブックマークなどしてくれたら管理者が泣いて喜びます。

それでは、また次回お会いしましょう。