序章

L inuxオペレーティングシステム、 A pache Webサーバー、 M ySQLデータベース、およびPで構成されるソフトウェアの「LAMP」スタック] HPスクリプト言語は、Webまたはアプリケーション開発の優れた基盤です。 このソフトウェアスタックを一緒にインストールすると、サーバーで動的なWebサイトやWebアプリケーションをホストできます。

このチュートリアルでは、Debian8サーバーにLAMPスタックをインストールします。

前提条件

  • 始める前に、root以外のsudo対応のユーザーアカウントでDebian8サーバーをセットアップする必要があります。 これを行うには、Debian8初期サーバーセットアップガイドに従います。

  • また、基本的なファイアウォールを作成する必要があります。これは、UbuntuおよびDebianUFWセットアップチュートリアルに従って実行できます。

ステップ1—システムを更新する

ソフトウェアをインストールする前に、システムが最新であることを確認することが重要です。 パッケージリストを更新するには、次のように入力します。

  1. sudo apt-get update

これにより、オペレーティングシステムは、サーバーに現在インストールされているソフトウェアパッケージを、基本ソフトウェアパッケージが保存されているDebianオンラインリポジトリで最近更新された可能性のある新しいバージョンと比較するように指示されます。

<$>[注] ノート: 開発サーバーまたはミッションクリティカルな使用頻度の高いサーバーを実行している場合は、各パッケージを注意深く調べてシステムに実際に必要かどうかを判断せずに、更新のインストールに注意してください。 この例では、すべてのパッケージがこのチュートリアルの目的でのみインストールされています。 <$>

これらの更新されたソフトウェアコンポーネントがニーズに関連していると判断したら、先に進んでサーバーを更新します。 これを行うには、次のコマンドを入力します。

  1. sudo apt-get dist-upgrade

インストールしているオペレーティングシステムの現在のバージョン、ソフトウェアパッケージ、およびネットワークの状態によっては、これにはしばらく時間がかかる場合があります。 新しいサーバーでは、数秒かかります。

これで、サーバーに完全にパッチが適用され、更新され、LAMPインストールの準備が整いました。 サーバーはすでにLinuxオペレーティングシステムDebianを実行しているため、ApacheWebサーバーのインストールに進んでネットワーク接続を管理できます。

ステップ2—Apacheのインストールとファイアウォールの更新

LAMPインストールの次のステップは、ApacheWebサーバーをインストールすることです。 これは、サーバーがWebコンテンツを表示できるようにする、十分に文書化され、広く使用されているWebサーバーです。 Apacheをインストールするには、次のように入力します。

  1. sudo apt-get install apache2 apache2-doc

これにより、基本的なApacheWebサーバーパッケージとそれに付随するドキュメントがインストールされます。 Apacheとその必要なパッケージがインストールされるため、これには数秒かかる場合があります。 完了すると、apt-getが終了し、インストールが完了します。

次に、ファイアウォールをインストールして有効にすることでUFWセットアップチュートリアルに従ったと仮定して、ファイアウォールがHTTPおよびHTTPSトラフィックを許可していることを確認します。

Debian 8にインストールすると、UFWにはファイアウォール設定を微調整するために使用できるアプリプロファイルがロードされます。 次のコマンドを実行して、アプリケーションプロファイルの完全なリストを表示します。

  1. sudo ufw app list

WWWプロファイルは、Webサーバーが使用するポートを管理するために使用されます。

Output
Available applications: . . . WWW WWW Cache WWW Full WWW Secure . . .

WWW Fullプロファイルを調べると、ポート80および443へのトラフィックが有効になっていることがわかります。

  1. sudo ufw app info "WWW Full"
Output
Profile: WWW Full Title: Web Server (HTTP,HTTPS) Description: Web Server (HTTP,HTTPS) Ports: 80,443/tcp

このプロファイルの着信HTTPおよびHTTPSトラフィックを許可します。

  1. sudo ufw allow in “WWW Full”

ファイアウォールを通過するWebトラフィックを許可したので、WebサーバーがサンプルWebページで要求に応答することを確認するためにテストしてみましょう。 まず、サーバーのIPアドレスが必要になります。 次のコマンドを実行すると、現在のSSHセッションでIPアドレスを表示できます。

  1. sudo ifconfig eth0

画面に、サーバーのIPアドレスを含む数行の出力が表示されます。 inet addr:の後に表示される4つの部分からなる番号が必要になります。

Output
inet addr:111.111.111.111

リストされているIPアドレスをメモし、次のようにお気に入りのWebブラウザーに入力します。

  • http://111.111.111.111

完了すると、次のようなデフォルトのApache2Webページが表示されます。

Apache2 Debian Default Page

サーバーにApacheが正常にインストールされたので、Webサイトのコンテンツを/var/www/htmlディレクトリにアップロードできます。 複数のWebサイトをセットアップする場合は、Apache仮想ホストのセットアップに関するこの記事を参照してください。

追加の手順とApache関連のセキュリティ情報については、DebianのApache情報を参照してください。

Webサーバーが稼働していると、MySQLで実行できるデータを保存するためのWebサイトの場所を作成する準備が整います。

ステップ3—MySQLのインストールと保護

LAMPサーバーの次のコンポーネントはMySQLです。 このリレーショナルデータベースソフトウェアは、WordPress、Joomla、Drupalなどの他のソフトウェアパッケージに不可欠なバックエンドコンポーネントです。

MySQLとPHPのサポートをインストールするには、次のように入力します。

  1. sudo apt-get install mysql-server php5-mysql

これにより、MySQLおよびその他の必要なパッケージがインストールされます。 インストールルーチンでは、 rootMySQLユーザーの新しいパスワードを入力するように求められることに注意してください。

New password for the MySQL "root" user

これは、MySQLの管理機能に特に使用される別個のアカウントです。 ユーザー名はrootで、パスワードはここで設定したものです。 文字と数字のさまざまな組み合わせで適切なパスワードを設定してください。

この後、MySQLのインストールは終了します。

新しいデータベースサーバーを安全に保つために、実行する必要のある追加のスクリプトがあります。 開始するには、次のように入力します。

  1. sudo mysql_secure_installation

この時点で、スクリプトはいくつかの質問をします。 プロンプトが表示されたら、ルートMySQLアカウントのパスワードを入力します。 次に、システムは次のように尋ねます。

Interactive
Change the root password? [Y/n] n

インストール時にルートMySQLパスワードをすでに設定しているため、この時点では「いいえ」と言うことができます。 次に、スクリプトは次のように尋ねます。

Interactive
Remove anonymous users? [Y/n] y

安全のために匿名ユーザーオプションを削除するには、「はい」と答えます。

次に、スクリプトは、rootアカウントのリモートログインを許可または禁止するように要求します。 安全のため、ご使用の環境で必要な場合を除き、rootのリモートログインを禁止してください。

最後に、スクリプトは、テストデータベースを削除してから、特権テーブルを再ロードするように要求します。 これらの両方に「はい」と答えてください。 これにより、テストデータベースが削除され、セキュリティの変更が処理されます。

すべてが正しい場合、完了すると、スクリプトは次のように返されます。

Output
All done! If you have completed all of the above steps, your MySQL installation should now be secure.

新しいMySQLサーバーが実行されていることを再確認しましょう。 次のコマンドを入力します。

  1. mysql -u root -p

ソフトウェアパッケージのインストール時にMySQL用に設定したrootパスワードを入力します。 これは、サーバー管理に使用されるrootアカウントではなくであることを忘れないでください。 入力したら、次のように入力して、サーバーのステータス、バージョン情報などを取得します。

  1. status

これは、MySQLをインストールし、さらに構成する準備ができていることを確認するための良い方法です。 出力の調査が終了したら、次のように入力してアプリケーションを終了します。

  1. exit

MySQLがアクティブであることを確認したら、次のステップはPHPをインストールして、サーバーでスクリプトを実行し、コードを処理できるようにすることです。

ステップ4—PHPのインストール

最後のコンポーネントとして、PHP:HypertextPreprocessorの略であるPHPをセットアップしてインストールします。 この人気のあるサーバーサイドスクリプト言語は、動的なWebコンテンツに広く使用されており、多くのWebおよびアプリケーション開発者にとって不可欠です。

PHPをインストールするには、次のように入力します。

  1. sudo apt-get install php5-common libapache2-mod-php5 php5-cli

インストールに同意すると、PHPがサーバーにインストールされます。 PHPだけでなく多くのパッケージがインストールされているのがわかります。 心配しないで; システムは、PHPソフトウェアを既存のApache2インストールおよびその他のプログラムと統合しています。

サーバーでApacheを再起動して、PHPのインストールによるすべての変更が有効になっていることを確認します。 これを行うには、次のように入力します。

  1. sudo service apache2 restart

それでは、インストールしたばかりのPHPソフトウェアをテストしてみましょう。 パブリックWebディレクトリに移動します。

  1. cd /var/www/html

そこに到達したら、お気に入りのコンソールテキストエディタを使用して、info.phpという名前のファイルを作成します。 これを行う1つの方法は次のとおりです。

  1. sudo nano info.php

このコマンドは、コマンドラインエディターnanoを使用して、この名前の新しい空のファイルを開きます。 このファイル内に次のように入力して、PHPの構成の出力情報をWebページに入力します。

/var/www/html/info.php
<?php phpinfo(); ?>

CTRL-Xを押してファイルを終了し、Yを押して変更を保存し、ENTERを押してファイル名を確認します。 構成情報にアクセスするには、Webブラウザーを開き、次のURLを入力して、強調表示されたセクションをサーバーのIPアドレスに置き換えます。

  • http://111.111.111.111/info.php

すべてを正しく行うと、次のようなデフォルトのPHP情報ページが表示されます。

PHP Information Page

このテストPHPページを見終わったら、セキュリティのために削除してください。 これを行うには、次のコマンドを実行します。

  1. sudo rm -i /var/www/html/info.php

次に、作成したテストファイルを削除するかどうかを尋ねられます。 はいと答えてファイルを削除します。 これが完了すると、基本的なPHPのインストールが完了します。

結論

これで、基本的なLAMPスタックがサーバーにインストールされ、さまざまなWebサイトやWebアプリケーションを作成するためのプラットフォームが提供されました。 ここから、サーバーの機能をカスタマイズおよび拡張する方法はたくさんあります。 Linuxサーバーの保護について詳しくは、 LinuxVPSの保護の概要をご覧ください。 複数のWebサイトをホストするようにサーバーを設定する場合は、Apache仮想ホストチュートリアルに従ってください。