PROGRAMMING

仮想マシンで始めるLAMP環境構築|SSH接続からApache, MriaDB(MySQL), PHPインストールまで

はじめに 

「Webアプリケーションを作ってみたい!」と思ったとき、最初の壁となるのが開発環境の構築です。

今回は、Web開発でよく使われるLAMP環境の構築方法をご紹介します!

LAMP環境とは 

LAMP環境って聞いたことありますか?
実は、私たちが普段使っているWebアプリの多くが、このLAMP環境で動いているんです!

LAMPは以下の4つの技術の頭文字をとった呼び方です

Linux:基盤となるOS(オペレーティングシステム) 

Apache:Webサイトを表示するためのサーバーソフト 

MariaDB(MySQL):データを保存・管理するデータベース 

PHP:プログラミング言語

なぜ仮想マシンで構築するのか 

仮想マシンを使うメリットは以下の通りです。

1. 失敗しても大丈夫

– メインPCに影響なし

– いつでもやり直しできる

2. 自由にいろんなことを試せる

– 色んなバージョンを試せる 

– 本番環境と別の環境が作れる 

3. 環境を丸ごと保存

– バックアップが簡単 

– 環境のコピーも簡単

本記事のゴール 

本記事のゴールは以下の通りです

LAMP環境を1から構築できるようになります!

1. SSH接続の設定 

2. Apacheのインストール 

3. MySQLのインストール 

4. PHPのインストール 

5. 全体の動作確認

まで、一緒に進めていきます。

難しそうに見えるかもしれませんが、一つずつ丁寧に解説していきますので、ご安心ください! それでは、環境構築を始めていきましょう!

前提条件 

LAMP環境の構築を始める前に、必要な準備を確認しておきましょう!

必要な環境 

この記事では、以下の環境を前提に解説を進めていきます

– UTMで作成した仮想マシン環境 

– CentOSがインストールされていること

💡 UTMでの仮想マシン作成方法やCentOSのインストール手順については、下の記事で詳しく解説しています!まだ準備ができていない方は、そちらの記事を参考に環境を整えてみてください。

AppleシリコンMacでUTMを使ってCentOS Stream9をインストールする方法【初心者向け完全ガイド】 はじめに こんにちは!だいちです! 現在、M1 MacBook Airを使用していますが、VagrantとVirtualBox...

想定する読者

この記事は、こんな方におすすめです 

– 「LAMP環境って何だろう?」と興味を持った方 

– Web開発の環境構築に挑戦してみたい方 

– サーバー環境の構築を1から学びたい方 

– 実務でLAMP環境の構築が必要になった方 

基本的なコマンドラインの操作ができれば、記事に沿って進めていけます。

SSH接続

仮想マシンを操作する方法はいくつかありますが、今回はSSH接続を使って効率的に作業を進めていきます!

SSHって何?

「SSH」という言葉を聞いたことはありますか?

SSHは「Secure Shell」の略で、簡単に言うと「安全にリモートコンピュータを操作するための仕組み」です。 例えるなら、「暗号化された専用の通信路を通って、離れた場所にあるパソコンを操作できる」というイメージです!

1-1. シンプルなSSH接続

最初に、パスワードを使った基本的な接続方法を試してみましょう。

仮想マシンのIPアドレスを確認

まず、仮想マシンを起動して、仮想マシンのターミナルで以下のコマンドを実行します。

Bash
ip addr show

表示される情報の中から、inetで始まる行を探します。
例: inet 196.xxx.xx.x
これがIPアドレスです!

SSH接続してみよう

【ホストPC側での作業】
ターミナルを開いて、以下のコマンドを実行します:

Bash
ssh ユーザー名@仮想マシンのIPアドレス

パスワードを求められるので、仮想マシンのパスワードを入力します。 以下のような表示が出れば接続成功です!

Bash
Last login: 〇〇 from △△

[ユーザー名@ホスト名 ~]$

1-2. パスワード入力を省略しよう

SSH接続を行うたびに、毎回パスワード入力する必要があります。ですがこのパスワード入力を省略できる方法があります!

鍵認証を設定して、パスワード入力を省略してみましょう!

1. RSA鍵の作成

【ホストPC側での作業】

Bash
# 鍵を生成
ssh-keygen -t rsa -b 4096

# すべての質問にEnterを押して進みます
# 保存場所:デフォルト(~/.ssh/id_rsa)
# パスフレーズ:空(Enter×2回)

fingerprint(指紋)と呼ばれる長い文字列が表示され、鍵が生成されたことを確認できます。

2. 公開鍵を仮想マシンにコピー

【ホストPC側での作業】

Bash
# 公開鍵を仮想マシンに転送するコマンド
ssh-copy-id ユーザー名@仮想マシンのIPアドレス

これで完了!試しに接続してみましょう

Bash
ssh ユーザー名@仮想マシンのIPアドレス

パスワードを聞かれずに接続できたはずです!

1-3. もっと便利に!IPアドレス入力を省略しよう

毎回IPアドレスを入力するのも面倒ですよね。 設定ファイルを作って、もっと簡単に接続できるようにしましょう!

【ホストPC側での作業】

Bash
# 設定ファイルを開く
nano ~/.ssh/config

以下の内容を追加します

YAML
Host myserver    # 好きな名前を設定できます
    HostName 192.168.64.2    # 仮想マシンのIPアドレス
    User okamotodaichi       # 仮想マシンのユーザー名

これで、以下のコマンドだけで接続できるようになりました

Bash
ssh myserver
💡 接続できない場合のチェックポイント

仮想マシンは起動していますか?

IPアドレスは正しいですか?

ユーザー名に間違いはありませんか?

これでSSH接続の設定は完了です!

2. Apacheのインストール

次は、Apacheのインストールに進みます!

Apacheって何?

Apache「アパッチ」は、世界で最も使われているWebサーバーソフトウェアです。 簡単に言うと、「Webサイトを表示するための仕組み」です。

ブラウザからリクエストを受け取り、HTMLやCSSなどのファイルを返して、Webページを表示する役割を担っています。

インストール手順

 まずは、パッケージ情報を最新にしてからApacheをインストールしていきましょう!

Bash
# パッケージ情報の更新
sudo dnf update -y

# Apacheのインストール
sudo dnf install httpd

基本的な設定

Apacheをインストールしたら、いくつかの設定を行います。

Bash
# Apacheの起動
sudo systemctl start httpd

# システム起動時にApacheが自動的に起動するように設定
sudo systemctl enable httpd

# Apacheの状態確認 RunningとなっていればOK
sudo systemctl status httpd

次に、ファイアウォールの設定を行います

Bash
# HTTPサービス(ポート80)を許可
sudo firewall-cmd --permanent --add-service=http

# 設定の反映
sudo firewall-cmd --reload

動作確認

では、Apacheが正しく動いているか確認してみましょう!

仮想マシンのIPアドレスをブラウザで開きます
http://仮想マシンのIPアドレス

Apache のテストページが表示されれば成功です!

HTTPサーバーテストページの画像
💡表示されない場合のチェックポイント

Apacheは起動していますか?
sudo systemctl status httpd

ファイアウォールは正しく設定されていますか?
sudo firewall-cmd –list-services

これでApacheのインストールと設定は完了です! 次は、MySQLのインストールに進みましょう!

3. MariaDB(MySQL)のインストール

LAMP環境の「M」、MariaDB(MySQL)のインストールに進みましょう!

MariaDB(MySQL)って何?

MySQLは、世界で最も使われているデータベース管理システムの1つです。 簡単に言うと、「データを保存して管理するための仕組み」です。

例えば、ブログの記事や会員情報など、Webサイトで使用するデータを整理して保存する役割を担っています。

MariaDBとMySQLの関係

「MySQLなのになぜMariaDBをインストールするの?」と思った方もいるかもしれません。 実は、MariaDBはMySQLから派生して作られたデータベースシステムなんです!

MariaDBの特徴

– MySQLと互換性があり、ほぼ同じように使えます

– CentOSなど、多くのLinux系OSではMariaDBが標準のデータベースとして採用されています

そのため、LAMP環境の「M」は、MySQLでもMariaDBでも問題なく構築できます。 今回はCentOSを使用しているため、MariaDBでLAMP環境を構築していきましょう!

インストール手順

CentOSでは、MariaDB(MySQLの互換製品)がデフォルトのデータベースとして用意されています。 今回はMariaDBを使用してLAMP環境を構築していきましょう!

Bash
# MariaDBのインストール
sudo dnf install mariadb mariadb-server

# MariaDBの起動
sudo systemctl start mariadb

# システム起動時にMariaDBが自動的に起動するように設定
sudo systemctl enable mariadb

# 起動確認
sudo systemctl status mariadb

初期設定とセキュリティ設定

MariaDBをより安全に使うために、初期設定を行います。

Bash
# セキュリティ設定の実行
sudo mysql_secure_installation

以下の質問が表示されるので、順番に答えていきましょう:

  1. rootパスワードの入力(初期状態では空なのでEnter)
  2. rootパスワードを設定しますか? → Y
  3. 新しいrootパスワードを入力
  4. 匿名ユーザーを削除しますか? → Y
  5. リモートからのroot接続を禁止しますか? → Y
  6. テストデータベースを削除しますか? → Y
  7. 設定をリロードしますか? → Y

動作確認

MariaDBが正しく動いているか確認してみましょう!

Bash
# MariaDBへログイン
mysql -u root -p

先ほど設定したrootパスワードを入力すると、以下のような画面が表示されます

Bash
MariaDB [(none)]>

簡単なコマンドを試してみましょう

Bash
# データベース一覧の表示
SHOW DATABASES;

# 現在のバージョン確認
SELECT VERSION();

# MariaDBからログアウト
exit
💡 接続できない場合のチェックポイント

MariaDBは起動していますか?
sudo systemctl status mariadb

パスワードは正しいですか?

ファイアウォールの設定は適切ですか?
sudo firewall-cmd –list-services

おめでとうございます! これでMySQLの設定は完了です。次は最後のPHPのインストールに進みましょう!

  • rootパスワードは忘れないようにメモしておきましょう
  • 実際のサービスでは、root以外の専用ユーザーを作成することをお勧めします

4. PHPのインストール

最後に「P」のPHPをインストールします!

PHPって何?

PHPは、動的なWebページを作成するためのプログラミング言語です。 簡単に言うと、「Webサイトに動きを付ける仕組み」です。 例えば、ログイン機能やデータベースからの情報取得など、ユーザーの操作に応じて内容が変わるWebアプリを作ることができます。

インストール手順

ApacheでPHPを使用するために必要なパッケージをインストールしていきます。

Bash
# PHPと必要なモジュールのインストール
sudo dnf install php php-cli php-mysqlnd php-pdo php-gd php-mbstring

# Apacheの再起動(PHPを認識させるため)
sudo systemctl restart httpd

Apacheとの連携設定

PHPがApacheと正しく連携できているか確認するために、テストファイルを作成しましょう。

Bash
# テストファイルの作成
sudo nano /var/www/html/info.php

以下の内容を入力します

PHP
<?php

phpinfo();

?>

動作確認

では、PHPが正しく動いているか確認してみましょう!

ブラウザで以下のURLにアクセス
http://仮想マシンのIPアドレス/info.php

PHPの情報ページが表示されれば成功です!

テストとして、簡単なPHPファイルも作成してみましょう。

Bash
# テストファイルの作成
sudo nano /var/www/html/test.php

以下の内容を入力します

Bash
<!DOCTYPE html>

<html>
<head>
  <title>PHP Test</title>
</head>
<body>
  <h1>PHP Test Page</h1>
    <?php
      echo "<p>Today is " . date('Y/m/d') . "</p>";
      echo "<p>The time is " . date('H:i:s') . "</p>";
    ?>
</body>
</html>

このファイルにアクセスすると、現在の日時が表示されるはずです
http://仮想マシンのIPアドレス/test.php

💡 表示されない場合のチェックポイント

Apacheは起動していますか?
sudo systemctl status httpd

PHPモジュールは正しくインストールされていますか?
php -v

ファイルのパーミッションは適切ですか?
ls -l /var/www/html/

動作確認が終わったら、info.phpは削除することをお勧めします
sudo rm /var/www/html/info.php
(PHPの設定情報が公開されることで、セキュリティ上のリスクとなる可能性があります)

おめでとうございます! これでLAMP環境の構築が完了しました!

まとめ

お疲れさまでした! ここまでで、LAMP環境の構築が完了しました!

この記事では以下の内容を学びました

  1. SSH接続の設定
    • 基本的な接続方法
    • 鍵認証による安全な接続
    • 設定ファイルによる接続の簡略化
  2. Apache(Webサーバー)のインストール
    • 基本的なインストールと設定
    • ファイアウォールの設定
    • 動作確認
  3. MariaDB(MySQL)のインストール
    • データベースのインストール
    • 初期設定とセキュリティ設定
    • 基本的な操作確認
  4. PHP(プログラミング言語)のインストール
    • 必要なモジュールのインストール
    • Apacheとの連携設定
    • 動作確認用ファイルの作成

LAMP環境があれば、WordPressなどのCMSをインストールしたり、オリジナルのWebアプリケーションを開発したりすることができます!

まずは簡単なPHPファイルを作って動作を確認したり、WordPressをインストールしてブログを作ってみたり…できることが盛りだくさんです。

この記事で作った環境を使って、ぜひWeb開発の世界を楽しんでください!

それではまた!

ABOUT ME
daichi
介護士からWEBエンジニアに転身しました。 主にRubyを学習中です。WEBエンジニアとしての学びや日々の成長を発信していきます。
プロフィール

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA