お問い合わせはこちら

サバ管への道!VPS道場~第4回 LAMP 環境の構築 ‐ MariaDBとPHP ‐ ~

公開
更新


連載第3回の Apache インストールに続き、”LAMP” 環境の “M” のあたるデータベースのインストール・設定を進めていきます。(第1回から読みたい方は こちら から)
データベースはWEBサービスに限らず、サーバーで運用されるあらゆるシステムにおいて重要な役割を担っていることが多く、突き詰めていくと専門的で高度な知識が要求される分野です。今回の連載では、WEBサイトを公開する際に必要となるデータベースの機能に要点をある程度絞り、目標である「自分専用のWEBサイト公開環境の構築」を実施していきます。今回の連載記事で興味が湧いた場合は是非掘り下げて学習を進めてみてください。普段私たちが無意識に扱っている数値やテキスト、画像、動画、名簿、登録者リスト.. などのデータの管理・活用そして分析の理解によって得られるスキルは、現在市場で最も必要とされているスキルの一つであることは間違いありません。

できるだけ初めての方でもわかりやすいように進めていきますが、ここがわからないという点があれば カゴヤ・ジャパン 公式Twitter にご質問いただければ、随時内容の改善を進めてまいります。皆様のメッセージをお待ちしております。(公式アカウント:@kagoya_inc
ハッシュタグ #VPS道場 をつけてぜひメッセージをお寄せください。

今回の記事は下記の手順で進めていきます。

STEP 1 データベース とは?? MariaDB

STEP 2 MariaDB をインストールする

STEP 3 PHP をインストールする

  • PHPとは?
  • なぜ必要?何ができる?

データベース とは?? MariaDB

データーベース

「データベース」という言葉自体は聞いたことがある人が多いのではないでしょうか。通常のビジネスシーンでも、お客さん情報のリストや商品状態の管理表など、情報が整理された資料を指して「データベース」と呼ぶこともあると思います。これらと同様、サーバー機能のひとつであるデータベースもデータを整理・管理する機能を有します。もう少しはっきりと表すと、「 データベース 機能の役割を持つサーバーを データベースサーバー という」となります。前回サーバーに https サーバー の機能を持たせるために Apache をインストールしましたが、同じイメージで今回は データベースの機能を持たせるため MariaDB をインストールします。

MariaDB

今回データベースを実装するために MariaDB をインストールします。少し前までは LAMPスタック の M が指すものは “MySQL” の場合が多かったと思いますが、現在は “MariaDB” を指すことが一般的かもしれません。本来 MariaDB は MySQL から派生したオープンソースのシステムで、開発者も同じです。そのため動作やコマンドなども共通のものが多く、あえて違いを意識する必要性すら無いかもしれません。MariaDB は後発のプロジェクトとして、MySQL の細かい部分の操作性・機能性を改善しており、近年では MariaDB を標準のデータベースとして扱います
また、MariaDB も MySQL も前回インストールした Apache と同様オープンソースのプロジェクトではありますが、非常に高機能で高速・汎用性も高いデータベースとして現在でも世界の名だたるサービスの裏で動いています。セキュリティや安定性においても信頼できると言えるでしょう。

MariaDB をインストールする

MariaDB インストール手順

ではいつも通りサーバーにssh接続を行います。(接続手段は Tera Term やブラウザベースのものなどお好きなものをお使いください)

操作ユーザーは、前回設定した sudo 権限を持ったユーザーで行っています。 root権限で操作したい場合は各コマンドの sudo 部分は省略可能です。

前回からある程度時間が経っている場合は、更新コマンドを実行しておきます。

~$ sudo apt update
~$ sudo apt upgrade

MariaDB のインストールコマンドです。

まず サーバーの root ユーザーとしてログインします。

~$ sudo su

以降はサーバーの root 権限にログインして作業を進めます。
※以降で出てくる MariaDB の root ユーザーとは別のサーバー全体の root 権限です。

# apt install mariadb-server

途中でこのまま続けてもOKか?と聞かれます

[ Y/n ] Y    …yesのYを入力して続けてください

コマンド実行後、インストールが実行されるのでしばらく待ちます。

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

処理が終わり、コマンド受け付け状態に戻ればインストールは完了です。必要な関連パッケージなども自動でインストールがされています。

root ユーザーのパスワードを設定します。同じパスワードを2回入力します。※入力内容はセキュリティのため表示されませんが実際には入力されているので注意してください。

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

初期状態では匿名ユーザーが設定されています。続けて匿名ユーザーの削除を行うかを確認されますが、今回管理者ユーザーの設定を行ったので匿名ユーザーは削除します。

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

続いてroot ユーザーのログインをローカルホストに限定するかどうかを聞いてくるので、 y と入力します。

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

デフォルトで設定されているテスト用の設定を削除するか聞かれるので、y と入力します。

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.
 - Removing privileges on test database...
Success.

最後に設定内容を反映させるかを聞かれるので、y と入力します。

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

以上のように出力されれば初期設定は終了です。以下のようにコマンドの待ち受け状態に戻ります。

~#   

少しだけデータベースを触ってみましょう。

下記コマンドを入力し、パスワードを使って root ユーザーとしてデータベースを操作します。

~# mysql -u root -p

設定したパスワードを入力すると、データベースのコマンド待ち受け状態になります。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 10.1.29-MariaDB-6 Ubuntu 18.04

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

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

MariaDB [(none)]>

この MariaDB [(none)]> の部分にコマンドを入力して操作していくのですが今回は簡単なテストコマンドとして、存在するデータベースを確認する show databases; コマンドを入力してみましょう。

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

まだ何も作成していないので、最小限の情報のみ表示されます。

MariaDB [(none)]> exit
Bye

一旦データベースの操作はここでとどめておきましょう。終了するには exit と入力します。
普段データを扱うときは帳簿やエクセルなどを使用して視覚的に確認しながら作業を行うと思いますが、今回のようにコマンドで管理するとなると慣れない部分も多く難しく感じるかもしれません。

PHP をインストールする

PHPとは?

PHPとは、サーバーサイドのプログラミング言語の一つです。今までに構築してきた LAMP環境の 最後の P (PHP) の部分に該当します。今まで実装してきたものを振り返ると、Ubuntu というOSのサーバーを作成し、Apache をインストールすることでクライアントに対して情報を表示できるようになりました。またデータベースを実装したことによって、適切な設定を行えば公開するコンテンツの整理・管理やサイト編集者・訪問者の管理なども行えます。ただしこれらの機能は別々の機能として動いています。例えばユーザーログイン機能を備えたサイトをイメージしてみましょう。まずサイトにアクセスしたときにログイン画面が表示され、ユーザー登録を完了させ、マイページが表示される、といった流れが一般的かと思います。ここで登録された情報に応じて各ユーザーのマイページを表示させるという場合分けのような内部処理を担う機能がまだ用意できていません。そこで PHP を記述することで自分の思った通りの処理をサーバーに実行させる必要があります。

PHPとは?基礎知識、できることを初心者にもわかりやすく解説します

PHPとは?基礎知識、できることを初心者にもわかりやすく解説します

使い方さえ分かれば、コードの知識なしでもWebサイトが作れるWordPress。ですが、HTMLやCSS、PHPといったプログラミングの知識を持つことで、よりオリジナルで自由なWebサイト(ホームページ)を作ることができるようになります。ここでは、Webサイトに様々な機能をつけたりカスタマイズを可能にしたりするPHPでWordPressを編集する場面での、基礎知識や記述ルールなどをわかりやすく解説…

なぜ必要?

前述のとおりサーバーの処理を PHP で記述しておけば、アクセスしたときのユーザー情報に合わせて適切なコンテンツを表示させたり、人気の記事やおすすめ情報などをスムーズに提供することができるのでユーザーの利便性・満足度は大きく向上します。またコンテンツの提供者は、全ての情報をあらかじめ html として書き出しておくより、ある程度使いまわせるものや、既存の情報から生成できるものは自動化してしまった方が管理も楽になり、新規コンテンツの作成に集中できます。サーバーにおいてはできるだけ人の手を介在するケースを削ることで、作業の効率化ももちろんですが人的ミスの削減にもつながります。プログラムは記述通りにしか動かないので、うっかりミスを起こしません。
今回利用する PHP 以外にもWEBサーバーを設計するプログラミング言語は無数にあります。その中でもPHPは長くにわたり多くの技術者に愛され続けられる言語でありおすすめです。ただし時代によって人気な言語・フレームワークは移り変わり、その時々で有用なツールというものは遷移し続けているのでぜひ今後も意識して動向を追ってください。

PHP インストール手順

PHP のインストールコマンドは下記です。

~$ sudo apt install php libapache2-mod-php php-mysql

ここでは

  • php:PHPメイン要素
  • libapache2-mod-php:Apache連携要素
  • php-mysql:MariaDB連携要素

という3つの項目をインストールしています。この他にも

  • php-mbstring
  • php-gd

など、必要に応じて追加します。

※インストールする PHP のバージョンは、明記することで指定のバージョンをインストール可能です。今回何も指定していませんが、この場合 PHP 7.2 がインストールされます。2021年3月現在

コマンド実行後、インストールが実行されるのでしばらく待ちます。( Yes or No の質問を聞かれる場合は y と入力して続けてください)

インストールした PHP のバージョンを確認します。

~$ php -v

下記のようにバージョンの詳細が表示されます。

PHP 7.2.24-0ubuntu0.18.04.7 (cli) (built: Oct  7 2020 15:24:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.24-0ubuntu0.18.04.7, Copyright (c) 1999-2018, by Zend Technologies

今回はここまで

お疲れさまでした。

コマンドの入力作業がメインだったので、今何をしているのかがわからないという部分もあったかもしれません。サーバーでのコマンド操作は設定した内容が視覚的に変化として表れにくいので、どうしても全体像を意識しながら進めるということが難しくなってきます。これは慣れの部分も多いですが、これまでの手順をゆっくり読み直してみることもよいかもしれません。また、筆者自身がおすすめしたい学習方法は「わからないままとりあえず進めること」です。すべてのコマンドを理解し覚えながら進められる人はいないと思いますので、とりあえず自分が面白いと思う部分、興味があることを手広く進めていきましょう。そうするとまたこの記事に戻ってきたときに、「こういうことだったのか」と案外理解が進むこともあります。サーバー研究室ではこういったコマンド作業だけの記事以外にも、流行の技術や日常への活用、副業にも活かせるノウハウ関連の記事が豊富にありますので、目に入って面白そうというものがあれば読んでみてください。案外意外なところで共通している知識があっておもしろいですよ。

さて、今回までの手順でWEBサイト公開の環境を一通り揃え終わりました。

【次回】 第5回 WordPress でサイトを公開する

次回の連載5回目では、今まで学習・構築してきた環境をベースとして、WordPress のインストールと設定を行います。WordPress は個人、法人を問わず世界中であらゆるコンテンツの公開に利用されており、WordPress の理解や操作はどんな場所でも活用できる、標準的かつ汎用的なスキルです。WordPress がすでに構築された環境をサービスとして利用できるものも数多く存在しますが、ここまで読み進めていただいた方はサーバーが裏方で行っている処理についての理解が進んでいると思います。サーバーの動きを知っていることでもしものときのトラブル対応や、カスタマイズを加えてオリジナリティのあるコンテンツを生み出す、といったようにさらに一歩進んだ応用などに学習の手を拡げてみてください。今まで関係書籍などを読んでも頭に入ってきづらかったものが、より深く理解できるようになっているはずです。それでは次回の記事でお会いしましょう。


感想など皆様のメッセージもお待ちしております。(公式アカウント:@kagoya_inc
ハッシュタグ #VPS道場 をつけてぜひメッセージをお寄せください。

日額 20円 で使えるVPS

開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS

カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。

※ 2021年8月24日全面リニューアルに伴い、価格据え置きでスペックアップされています。