はじめに
「Webアプリケーションを作ってみたい!」と思ったとき、最初の壁となるのが開発環境の構築です。
今回は、Web開発でよく使われるLAMP環境の構築方法をご紹介します!
LAMP環境とは
LAMP環境って聞いたことありますか?
実は、私たちが普段使っているWebアプリの多くが、このLAMP環境で動いているんです!
LAMPは以下の4つの技術の頭文字をとった呼び方です
– Linux:基盤となるOS(オペレーティングシステム)
– Apache:Webサイトを表示するためのサーバーソフト
– MariaDB(MySQL):データを保存・管理するデータベース
– PHP:プログラミング言語
なぜ仮想マシンで構築するのか
仮想マシンを使うメリットは以下の通りです。
– メインPCに影響なし
– いつでもやり直しできる
– 色んなバージョンを試せる
– 本番環境と別の環境が作れる
– バックアップが簡単
– 環境のコピーも簡単
本記事のゴール
本記事のゴールは以下の通りです
LAMP環境を1から構築できるようになります!
1. SSH接続の設定
2. Apacheのインストール
3. MySQLのインストール
4. PHPのインストール
5. 全体の動作確認
まで、一緒に進めていきます。
難しそうに見えるかもしれませんが、一つずつ丁寧に解説していきますので、ご安心ください! それでは、環境構築を始めていきましょう!
前提条件
LAMP環境の構築を始める前に、必要な準備を確認しておきましょう!
必要な環境
この記事では、以下の環境を前提に解説を進めていきます
– UTMで作成した仮想マシン環境
– CentOSがインストールされていること
💡 UTMでの仮想マシン作成方法やCentOSのインストール手順については、下の記事で詳しく解説しています!まだ準備ができていない方は、そちらの記事を参考に環境を整えてみてください。
想定する読者
この記事は、こんな方におすすめです
– 「LAMP環境って何だろう?」と興味を持った方
– Web開発の環境構築に挑戦してみたい方
– サーバー環境の構築を1から学びたい方
– 実務でLAMP環境の構築が必要になった方
基本的なコマンドラインの操作ができれば、記事に沿って進めていけます。
SSH接続
仮想マシンを操作する方法はいくつかありますが、今回はSSH接続を使って効率的に作業を進めていきます!
SSHって何?
「SSH」という言葉を聞いたことはありますか?
SSHは「Secure Shell」の略で、簡単に言うと「安全にリモートコンピュータを操作するための仕組み」です。 例えるなら、「暗号化された専用の通信路を通って、離れた場所にあるパソコンを操作できる」というイメージです!
1-1. シンプルなSSH接続
最初に、パスワードを使った基本的な接続方法を試してみましょう。
仮想マシンのIPアドレスを確認
まず、仮想マシンを起動して、仮想マシンのターミナルで以下のコマンドを実行します。
ip addr show
表示される情報の中から、inetで始まる行を探します。
例: inet 196.xxx.xx.x
これがIPアドレスです!
SSH接続してみよう
【ホストPC側での作業】
ターミナルを開いて、以下のコマンドを実行します:
ssh ユーザー名@仮想マシンのIPアドレス
パスワードを求められるので、仮想マシンのパスワードを入力します。 以下のような表示が出れば接続成功です!
Last login: 〇〇 from △△
[ユーザー名@ホスト名 ~]$
1-2. パスワード入力を省略しよう
SSH接続を行うたびに、毎回パスワード入力する必要があります。ですがこのパスワード入力を省略できる方法があります!
鍵認証を設定して、パスワード入力を省略してみましょう!
1. RSA鍵の作成
【ホストPC側での作業】
# 鍵を生成
ssh-keygen -t rsa -b 4096
# すべての質問にEnterを押して進みます
# 保存場所:デフォルト(~/.ssh/id_rsa)
# パスフレーズ:空(Enter×2回)
fingerprint(指紋)と呼ばれる長い文字列が表示され、鍵が生成されたことを確認できます。
2. 公開鍵を仮想マシンにコピー
【ホストPC側での作業】
# 公開鍵を仮想マシンに転送するコマンド
ssh-copy-id ユーザー名@仮想マシンのIPアドレス
これで完了!試しに接続してみましょう
ssh ユーザー名@仮想マシンのIPアドレス
パスワードを聞かれずに接続できたはずです!
1-3. もっと便利に!IPアドレス入力を省略しよう
毎回IPアドレスを入力するのも面倒ですよね。 設定ファイルを作って、もっと簡単に接続できるようにしましょう!
【ホストPC側での作業】
# 設定ファイルを開く
nano ~/.ssh/config
以下の内容を追加します
Host myserver # 好きな名前を設定できます
HostName 192.168.64.2 # 仮想マシンのIPアドレス
User okamotodaichi # 仮想マシンのユーザー名
これで、以下のコマンドだけで接続できるようになりました
ssh myserver
仮想マシンは起動していますか?
IPアドレスは正しいですか?
ユーザー名に間違いはありませんか?
これでSSH接続の設定は完了です!
2. Apacheのインストール
次は、Apacheのインストールに進みます!
Apacheって何?
Apache「アパッチ」は、世界で最も使われているWebサーバーソフトウェアです。 簡単に言うと、「Webサイトを表示するための仕組み」です。
ブラウザからリクエストを受け取り、HTMLやCSSなどのファイルを返して、Webページを表示する役割を担っています。
インストール手順
まずは、パッケージ情報を最新にしてからApacheをインストールしていきましょう!
# パッケージ情報の更新
sudo dnf update -y
# Apacheのインストール
sudo dnf install httpd
基本的な設定
Apacheをインストールしたら、いくつかの設定を行います。
# Apacheの起動
sudo systemctl start httpd
# システム起動時にApacheが自動的に起動するように設定
sudo systemctl enable httpd
# Apacheの状態確認 RunningとなっていればOK
sudo systemctl status httpd
次に、ファイアウォールの設定を行います
# HTTPサービス(ポート80)を許可
sudo firewall-cmd --permanent --add-service=http
# 設定の反映
sudo firewall-cmd --reload
動作確認
では、Apacheが正しく動いているか確認してみましょう!
仮想マシンのIPアドレスをブラウザで開きます
http://仮想マシンのIPアドレス
Apache のテストページが表示されれば成功です!
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環境を構築していきましょう!
# MariaDBのインストール
sudo dnf install mariadb mariadb-server
# MariaDBの起動
sudo systemctl start mariadb
# システム起動時にMariaDBが自動的に起動するように設定
sudo systemctl enable mariadb
# 起動確認
sudo systemctl status mariadb
初期設定とセキュリティ設定
MariaDBをより安全に使うために、初期設定を行います。
# セキュリティ設定の実行
sudo mysql_secure_installation
以下の質問が表示されるので、順番に答えていきましょう:
- rootパスワードの入力(初期状態では空なのでEnter)
- rootパスワードを設定しますか? → Y
- 新しいrootパスワードを入力
- 匿名ユーザーを削除しますか? → Y
- リモートからのroot接続を禁止しますか? → Y
- テストデータベースを削除しますか? → Y
- 設定をリロードしますか? → Y
動作確認
MariaDBが正しく動いているか確認してみましょう!
# MariaDBへログイン
mysql -u root -p
先ほど設定したrootパスワードを入力すると、以下のような画面が表示されます
MariaDB [(none)]>
簡単なコマンドを試してみましょう
# データベース一覧の表示
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を使用するために必要なパッケージをインストールしていきます。
# PHPと必要なモジュールのインストール
sudo dnf install php php-cli php-mysqlnd php-pdo php-gd php-mbstring
# Apacheの再起動(PHPを認識させるため)
sudo systemctl restart httpd
Apacheとの連携設定
PHPがApacheと正しく連携できているか確認するために、テストファイルを作成しましょう。
# テストファイルの作成
sudo nano /var/www/html/info.php
以下の内容を入力します
<?php
phpinfo();
?>
動作確認
では、PHPが正しく動いているか確認してみましょう!
ブラウザで以下のURLにアクセス
http://仮想マシンのIPアドレス/info.php
PHPの情報ページが表示されれば成功です!
テストとして、簡単なPHPファイルも作成してみましょう。
# テストファイルの作成
sudo nano /var/www/html/test.php
以下の内容を入力します
<!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環境の構築が完了しました!
この記事では以下の内容を学びました
- SSH接続の設定
- 基本的な接続方法
- 鍵認証による安全な接続
- 設定ファイルによる接続の簡略化
- Apache(Webサーバー)のインストール
- 基本的なインストールと設定
- ファイアウォールの設定
- 動作確認
- MariaDB(MySQL)のインストール
- データベースのインストール
- 初期設定とセキュリティ設定
- 基本的な操作確認
- PHP(プログラミング言語)のインストール
- 必要なモジュールのインストール
- Apacheとの連携設定
- 動作確認用ファイルの作成
LAMP環境があれば、WordPressなどのCMSをインストールしたり、オリジナルのWebアプリケーションを開発したりすることができます!
まずは簡単なPHPファイルを作って動作を確認したり、WordPressをインストールしてブログを作ってみたり…できることが盛りだくさんです。
この記事で作った環境を使って、ぜひWeb開発の世界を楽しんでください!
それではまた!