Ubuntu 16.04にLinux、Apache、MySQL、PHP(LAMP)をインストールする方法

0 株式
0
0
0
0

Ubuntu 16.04にLinux、Apache、MySQL、PHP(LAMP)をインストールする方法

導入

LAMPは、サーバー上で動的なウェブサイトやウェブアプリケーションをホストするために通常一緒にインストールされるオープンソースソフトウェアの集合体です。LAMPはLamp Operating Systemの略です。 リナックス Apacheウェブサーバーを搭載しています。サイトデータはMySQLデータベースに保存され、動的コンテンツはPHPで処理されます。.

このガイドでは、Ubuntu 16.04サーバーにLAMPスタックをインストールします。Ubuntuは、最初の要件であるLinuxオペレーティングシステムを満たします。.

前提条件

このガイドを始める前に、サーバー上でsudo権限を持つ、root以外の別のユーザーアカウントを設定する必要があります。Ubuntu 16.04の初期サーバー設定チュートリアルの手順1~4を完了することで、その方法を習得できます。.

ステップ1 – Apacheをインストールしてファイアウォールを構成する

Apacheウェブサーバーは、世界で最も人気のあるウェブサーバーの1つです。豊富なドキュメントがあり、ウェブの歴史を通じて広く使用されてきたため、ウェブサイトホスティングのデフォルトの選択肢として最適です。.

Ubuntuパッケージマネージャーを使えば、Apacheを簡単にインストールできます。このパッケージマネージャーを使えば、Ubuntuが管理するリポジトリからほとんどのソフトウェアを簡単にインストールできます。aptの使い方について詳しくは、こちらをご覧ください。.

結果を得るには、まず次のコマンドを入力します。

sudo apt-get update  $
sudo apt-get install apache2  $

sudoコマンドを使用しているため、この操作はroot権限で実行されます。確認のため、通常のユーザーのパスワードの入力を求められます。.

パスワードを入力すると、apt はインストール予定のパッケージと、それらが占める追加ディスク容量を表示します。続行するには、y と入力して Enter キーを押すと、インストールが続行されます。.

構文警告を抑制するためにグローバル ServerName を設定する

次に、/etc/apache2/apache2.conf ファイルに警告メッセージを抑制するための行を追加します。これは無害ですが、ServerName をグローバルに設定しないと、Apache 設定の構文エラーをチェックする際に次の警告が表示されます。

sudo apache2ctl configtest   $
Output
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
Syntax OK

テキスト エディターでメイン構成ファイルを開きます。

sudo nano /etc/apache2/apache2.conf  $

ファイルの末尾に、メインドメイン名を指定するServerNameディレクティブを追加します。サーバーにドメイン名が関連付けられていない場合は、サーバーのパブリックIPアドレスを使用できます。

注記: サーバーの IP アドレスがわからない場合は、「サーバーのパブリック IP アドレスを見つける方法」セクションに進んで見つけてください。.



/etc/apache2/apache2.conf

. . .
ServerName server_domain_or_IP

完了したらファイルを保存して閉じます。.

次に、次のように入力して構文エラーがないか確認します。

sudo nano apache2ctl configtest  $

グローバル ServerName ディレクティブを追加したので、次のように表示されます。

Output
Syntax OK

変更を反映するには、Apache を再起動します。

sudo nano systemctl restart apache2  $

これでファイアウォールの設定を開始できます。.

ウェブトラフィックを許可するようにファイアウォールを設定する

次に、UFWファイアウォールを有効にするために初期サーバー設定手順に従った場合、ファイアウォールがHTTPとHTTPSトラフィックを許可していることを確認してください。UFWにApacheのアプリケーションプロファイルがあることを確認するには、次のようにします。

sudo nano ufw app list  $
Output

Available applications:

Apache

Apache Full

Apache Secure

OpenSSH

完全な Apache プロファイルを見ると、ポート 80 と 443 でトラフィックが有効になっていることがわかります。

$  sudo ufw app info “Apache Full”








Output
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
۸۰,۴۴۳/tcp

このプロファイルの受信トラフィックを許可します:

$  sudo ufw allow in “Apache Full”

Web ブラウザーでサーバーのパブリック IP アドレスにアクセスして、すべてが計画どおりに進んだかどうかを簡単に確認できます (この情報がない場合は、次の見出しの下の注記を参照して、以前のパブリック IP アドレスを確認してください)。

http://your_server_IP_address

Ubuntu 16.04 のデフォルトの Apache ウェブページが表示されます。これは情報提供とテストを目的としています。以下のような感じになるはずです。

このページが表示された場合、Web サーバーは適切にインストールされ、ファイアウォール経由でアクセス可能になっています。.

サーバーのパブリックIPアドレスを見つける

サーバーのパブリックIPアドレスがわからない場合は、いくつかの方法で確認できます。通常、これはSSH経由でサーバーに接続する際に使用するアドレスです。.

コマンドラインから確認する方法はいくつかあります。まず、iproute2 ツールを使用して、次のように入力することでアドレスを取得できます。

$ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’

2行か3行のアドレスが表示されます。すべて有効なアドレスですが、お使いのコンピュータではそのうちの1行しか使用できない可能性がありますので、それぞれ試してみてください。.

別の方法としては、curlツールを使用して外部の相手に連絡し、あなたのサーバーがどのように認識されているかを伝える方法があります。特定のサーバーにIPアドレスを問い合わせることで、この操作を行うことができます。




$  sudo apt-get install curl
$  curl http://icanhazip.com

IP アドレスを取得する方法に関係なく、Web ブラウザのアドレス バーに IP アドレスを入力してサーバーにアクセスできます。.

ステップ2 – MySQLをインストールする

ウェブサーバーのセットアップが完了したら、MySQLをインストールしましょう。MySQLはデータベース管理システムです。基本的に、データベースに情報を保存、整理、アクセスすることを可能にします。.

今回もaptを使ってソフトウェアを入手・インストールできます。今回は、コンポーネント間の通信を助けるヘルパーパッケージもいくつかインストールします。

$ sudo apt-get install mysql-server

注記: この場合、コマンドの前に sudo apt-get update を実行する必要はありません。これは、上記のコマンドでApacheをインストールする際に既に実行しているためです。コンピューター上のパッケージリストはすでに最新の状態になっているはずです。.

インストールされるパッケージのリストと、それらが占めるディスク容量が表示されます。続行するには「Y」と入力してください。.

インストール中に、サーバーはMySQLの「root」ユーザーのパスワードの選択と確認を求めます。これはMySQLの管理者アカウントであり、昇格された権限を持ちます。サーバー自体のrootアカウントと同じようなものと考えてください(ただし、今設定しているアカウントは特別なMySQLアカウントです)。このパスワードは強力で一意のパスワードに設定し、空白のままにしないでください。.

インストールが完了したら、危険なデフォルト設定を削除し、データベースシステムへのアクセスをわずかに制限する簡単なセキュリティスクリプトを実行します。以下のコマンドを実行して、対話型スクリプトを起動します。

$ mysql_secure_installation

MySQLルートアカウントに設定したパスワードの入力を求められます。次に、VALIDATE PASSWORD PLUGINを設定するかどうかを尋ねられます。.

警告: この機能を有効にするかどうかは、ある程度の判断が必要です。有効にすると、指定された基準を満たさないパスワードはMySQLによってエラーで拒否されます。UbuntuのphpMyAdminパッケージなど、MySQLの認証情報を自動設定するソフトウェアと併用して弱いパスワードを使用すると、問題が発生する可能性があります。検証を無効にするのは安全ですが、データベース認証には常に強力で一意のパスワードを使用する必要があります。.

アクティブ化しない場合は、y と答えます。.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

パスワードの検証レベルを選択するよう求められます。最も強力なレベルの2を入力すると、数字、大文字と小文字、特殊文字、または辞書に載っている一般的な単語を含まないパスワードを設定しようとするとエラーが発生しますのでご注意ください。.

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary               file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

パスワード認証が有効になっている場合、既存のルートパスワードに対して強力なパスワードが表示され、変更するかどうかを尋ねられます。現在のパスワードで問題ない場合は、プロンプトで「n」(いいえ)と入力してください。




Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

残りの質問については、各プロンプトでYを押してEnterを押してください。これにより、一部の匿名ユーザーとテストデータベースが削除され、リモートルートログインが無効になり、新しいルールが読み込まれ、MySQLが変更を即座に反映するようになります。.

この時点で、データベース システムは稼働しており、作業を続行できます。.

ステップ3 – PHPのインストール

PHPは、動的なコンテンツを表示するためのコードを処理するコンポーネントです。スクリプトの実行、MySQLデータベースへの接続による情報取得、そして処理済みのコンテンツをWebサーバーに送信して表示することができます。.

コンポーネントのインストールには、再びaptシステムを使用できます。また、PHPコードをApacheサーバー上で実行し、MySQLデータベースと通信できるように、ヘルパーパッケージもいくつか追加します。

$  sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

これで問題なくPHPがインストールされるはずです。後ほどテストしてみましょう。.

多くの場合、ディレクトリが要求された際にApacheがファイルを提供する方法を変更したいと考えます。現在、ユーザーがサーバーにディレクトリを要求すると、Apacheはまずindex.htmlというファイルを探します。今回はWebサーバーにPHPファイルを優先するように指示したいので、Apacheはまずindex.phpファイルを探すように変更します。.

これを行うには、次のコマンドを入力して、ルート権限でテキスト エディターで dir.conf ファイルを開きます。

$   sudo nano /etc/apache2/mods-enabled/dir.conf

次のようになります:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

次のように、上で強調表示した PHP ディレクトリ ファイルを DirectoryIndex 指定の後の最初の位置に移動します。

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

完了したら、Ctrl + X キーを押してファイルを保存し、閉じます。保存場所を確認するため、Y と入力して Enter キーを押します。.

その後、変更を反映させるためにApacheウェブサーバーを再起動する必要があります。再起動するには、次のように入力します。

$  sudo systemctl restart apache2

systemctl を使用して apache2 サービスのステータスを確認することもできます。

$ sudo systemctl status apache2
Sample Output

● apache2.service – LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2016-04-13 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─۱۳۶۲۳ /usr/sbin/apache2 -k start
├─۱۳۶۲۶ /usr/sbin/apache2 -k start
├─۱۳۶۲۷ /usr/sbin/apache2 -k start
├─۱۳۶۲۸ /usr/sbin/apache2 -k start
├─۱۳۶۲۹ /usr/sbin/apache2 -k start
└─۱۳۶۳۰ /usr/sbin/apache2 -k start

Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Stopped LSB: Apache2 web server.
Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Starting LSB: Apache2 web server…
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: * Starting Apache httpd web server apache2
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerNam
Apr 13 14:28:43 ubuntu-16-lamp apache2[13605]: *
Apr 13 14:28:43 ubuntu-16-lamp systemd[1]: Started LSB: Apache2 web server.

PHPモジュールをインストールする

PHP のパフォーマンスを向上させるために、オプションで追加のモジュールをインストールできます。.

PHP モジュールとライブラリで利用可能なオプションを確認するには、apt-cache の検索結果を less (他のコマンドの出力をスクロールできるページャー) に入力します。

$  apt-cache search php- | less

矢印キーを使用して上下に移動し、q キーで終了します。.

結果にはインストール可能なすべてのオプションコンポーネントが表示されます。それぞれの簡単な説明も表示されます。

libnet-libidn-perl – Perl bindings for GNU Libidn
php-all-dev – package depending on all supported PHP development packages
php-cgi – server-side, HTML-embedded scripting language (CGI binary) (default)
php-cli – command-line interpreter for the PHP scripting language (default)
php-common – Common files for PHP packages
php-curl – CURL module for PHP [default]
php-dev – Files for PHP module development (default)
php-gd – GD module for PHP [default]
php-gmp – GMP module for PHP [default]
…
:

各モジュールの機能に関する詳しい情報を取得するには、インターネットで検索するか、次のように入力してパッケージの長い説明を参照することができます。

$   apt-cache show package_name

出力は多岐にわたりますが、モジュールの機能についてより詳しい説明を提供する「Description-en」というフィールドがあります。.

たとえば、php-cli モジュールの機能を確認するには、次のように入力します。

$  apt-cache show php-cli

その他の豊富な情報とともに、次のような情報が見つかります。

Output
…
Description-en: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
.
This package is a dependency package, which depends on Debian’s default
PHP version (currently 7.0).
…

調査後にパッケージをインストールすることに決めた場合は、他のソフトウェアの場合と同様に、apt-get install コマンドを使用してインストールできます。.

php-cli が必要だと判断した場合は、次のように入力します。

$  sudo apt-get install php-cli

複数のモジュールをインストールする場合は、次のように、各モジュールをスペースで区切ってリストし、その後に apt-get install コマンドを実行します。

$   sudo apt-get install package1 package2 …

この時点で、LAMPフレームワークのインストールと設定は完了です。PHPのテストはまだ必要です。.

ステップ4 – ウェブサーバー上でPHP処理をテストする

システムが PHP 用に適切に設定されているかどうかをテストするには、非常に基本的な PHP スクリプトを作成します。.

このスクリプトをinfo.phpと呼びます。Apacheがこのファイルを見つけて正しく処理できるようにするには、Webルートと呼ばれる特別なフォルダに保存する必要があります。.

Ubuntu 16.04では、このディレクトリは/var/www/html/にあります。以下のコマンドを入力すると、その場所にファイルを作成できます。

$  sudo nano /var/www/html/info.php

空のファイルが開きます。このファイルには、有効なPHPコードである以下のテキストを入力します。

info.php

<?php
phpinfo();
?>

完了したら、ファイルを保存して閉じます。.

これで、PHPスクリプトによって生成されたコンテンツをWebサーバーが適切に表示できるかどうかをテストできます。テストするには、Webブラウザでこのページにアクセスするだけです。ここでも、サーバーのパブリックIPアドレスが必要になります。.

訪問したい住所は次の通りです:

http://your_server_IP_address/info.php

表示されるページは次のようになります。

表示されるページは次のようになります。

このページでは、PHPの観点からサーバーに関する情報を提供します。デバッグや設定が正しく適用されているかの確認に役立ちます。.

これが成功した場合、PHP は期待どおりに動作します。.

この実験の後は、このファイルを削除することをお勧めするでしょう。サーバーに関する情報が不正なユーザーに漏洩する可能性があるためです。削除するには、次のコマンドを入力してください。

$  sudo rm /var/www/html/info.php

情報に再度アクセスする必要がある場合は、いつでもこのページを再作成できます。.

2コメント
  1. ブログ運営に関して専門家の意見が必要なら、私はこうアドバイスします。
    このウェブページにちょっとアクセスして、良い仕事を続けてください。.

コメントを残す

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

あなたも気に入るかもしれない