CentOS 7にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法

前書き

「LAMP」スタックは、サーバーが動的なWebサイトやWebアプリをホストできるようにするために通常一緒にインストールされるオープンソースソフトウェアのグループです。 この用語は、実際にはLinuxオペレーティングシステムとApacheWebサーバーを表す頭字語です。 サイトデータは(MariaDBを使用して)MySQLデータベースに保存され、動的コンテンツはPHPによって処理されます。

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

[.note]#Note: LAMPスタックは、起動時にユーザーデータにthis scriptを追加することで、Dropletに自動的にインストールできます。 ドロップレットユーザーデータの詳細については、this tutorialを確認してください。

前提条件

このガイドを開始する前に、サーバーに別の非ルートユーザーアカウントを設定する必要があります。 initial server setup for CentOS 7のステップ1〜4を完了することで、これを行う方法を学ぶことができます。

[[step-one -—- install-apache]] ==ステップ1—Apacheをインストールします

Apache Webサーバーは現在、世界で最も人気のあるWebサーバーであり、Webサイトをホストするためのデフォルトの選択肢として最適です。

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

目的のために、次のコマンドを入力して開始できます。

sudo yum install httpd

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

その後、Webサーバーがインストールされます。

インストールしたら、VPSでApacheを起動できます。

sudo systemctl start httpd.service

WebブラウザーでサーバーのパブリックIPアドレスにアクセスすることで、すぐにスポットチェックを実行して、すべてが計画どおりに行われたことを確認できます(この情報がない場合は、パブリックIPアドレスが何であるかを確認するために次の見出しの下のメモを参照してください)既に):

http://your_server_IP_address/

デフォルトのCentOS 7 Apache Webページが表示されます。これは、情報提供およびテスト目的で表示されます。 これは次のようになります。

CentOS 7 Apache default

このページが表示された場合、Webサーバーは正しくインストールされています。

最後にしたいことは、Apacheが起動時に起動できるようにすることです。 これを行うには、次のコマンドを使用します。

sudo systemctl enable httpd.service

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

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

コマンドラインから、これをいくつかの方法で見つけることができます。 まず、iproute2ツールを使用して、次のように入力して住所を取得できます。

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

これにより、1つまたは2つの行が返されます。 どちらも正しいアドレスですが、お使いのコンピューターはどちらか一方しか使用できない可能性がありますので、それぞれを試してみてください。

別の方法は、外部の関係者を使用して、itがサーバーをどのように認識しているかを通知することです。 これを行うには、特定のサーバーにIPアドレスを尋ねます。

curl http://icanhazip.com

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

[[step-two --- install-mysql-mariadb]] ==ステップ2— MySQL(MariaDB)をインストールします

Webサーバーが稼働しているので、次はMySQLのドロップイン代替品であるMariaDBをインストールします。 MariaDBは、コミュニティが開発したMySQLリレーショナルデータベース管理システムのフォークです。 基本的に、サイトが情報を保存できるデータベースを整理し、アクセスを提供します。

ここでも、yumを使用してソフトウェアを取得してインストールできます。 今回は、コンポーネントが相互に通信できるようにする他の「ヘルパー」パッケージもインストールします。

sudo yum install mariadb-server mariadb

インストールが完了したら、次のコマンドでMariaDBを起動する必要があります。

sudo systemctl start mariadb

MySQLデータベースが実行されたので、危険なデフォルトを削除し、データベースシステムへのアクセスを少し制限する簡単なセキュリティスクリプトを実行します。 次を実行して、インタラクティブスクリプトを開始します。

sudo mysql_secure_installation

プロンプトが表示され、現在のルートパスワードが求められます。 MySQLをインストールしたばかりなので、おそらくMySQLがないので、Enterキーを押して空白のままにします。 次に、rootパスワードを設定するかどうかを尋ねるプロンプトが表示されます。 先に進み、Yと入力して、次の手順に従います。

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 authorization.

New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
 ... Success!

残りの質問については、各プロンプトで「ENTER」キーを押してデフォルト値を受け入れる必要があります。 これにより、一部のサンプルユーザーとデータベースが削除され、リモートルートログインが無効になり、これらの新しいルールがロードされるため、MySQLはすぐに変更を反映します。

最後にしたいことは、MariaDBを起動時に起動できるようにすることです。 これを行うには、次のコマンドを使用します。

sudo systemctl enable mariadb.service

この時点で、データベースシステムがセットアップされ、先に進むことができます。

[[step-three --- install-php]] ==ステップ3—PHPをインストールします

PHPは、動的コンテンツを表示するコードを処理するセットアップのコンポーネントです。 スクリプトを実行し、MySQLデータベースに接続して情報を取得し、処理されたコンテンツをWebサーバーに渡して表示できます。

もう一度、yumシステムを利用してコンポーネントをインストールできます。 php-mysqlパッケージも含めます。

sudo yum install php php-mysql

これにより、PHPが問題なくインストールされます。 PHPで動作するようにApache Webサーバーを再起動する必要があります。 これを行うには、次のように入力します。

sudo systemctl restart httpd.service

PHPモジュールのインストール

PHPの機能を強化するために、オプションでいくつかの追加モジュールをインストールできます。

PHPモジュールおよびライブラリで利用可能なオプションを確認するには、システムにこれを入力できます。

yum search php-

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

php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php-cli.x86_64 : Command-line interface for PHP
php-common.x86_64 : Common files for PHP
php-dba.x86_64 : A database abstraction layer module for PHP applications
php-devel.x86_64 : Files needed for building PHP extensions
php-embedded.x86_64 : PHP library for embedding in applications
php-enchant.x86_64 : Enchant spelling extension for PHP applications
php-fpm.x86_64 : PHP FastCGI Process Manager
php-gd.x86_64 : A module for PHP applications for using the gd graphics library
. . .

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

yum info package_name

モジュールが提供する機能のより長い説明があるDescriptionと呼ばれる1つのフィールドで、多くの出力があります。

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

yum info php-fpm

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

. . .
Summary     : PHP FastCGI Process Manager
URL         : http://www.php.net/
License     : PHP and Zend and BSD
Description : PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI
            : implementation with some additional features useful for sites of
            : any size, especially busier sites.

調査の結果、パッケージをインストールすることにした場合は、他のソフトウェアで行っているように、yum installコマンドを使用してインストールできます。

php-fpmが必要であると判断した場合は、次のように入力できます。

sudo yum install php-fpm

複数のモジュールをインストールする場合は、次のように、yum installコマンドに従って、スペースで区切って各モジュールをリストすることでインストールできます。

sudo yum install package1 package2 ...

この時点で、LAMPスタックがインストールおよび構成されます。 それでも、PHPをテストする必要があります。

[[step-four -—- test-php-processing-on-your-web-server]] ==ステップ4-WebサーバーでPHP処理をテストする

システムがPHP用に適切に構成されていることをテストするために、非常に基本的なPHPスクリプトを作成できます。

このスクリプトをinfo.phpと呼びます。 Apacheがファイルを見つけてそれを正しく提供するためには、「webルート」と呼ばれる非常に特定のディレクトリに保存する必要があります。

CentOS 7では、このディレクトリは/var/www/html/にあります。 次のように入力して、その場所にファイルを作成できます。

sudo vi /var/www/html/info.php

これにより、空のファイルが開きます。 有効なPHPコードである次のテキストをファイル内に配置します。

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

ファイアウォールを実行している場合は、次のコマンドを実行してHTTPおよびHTTPSトラフィックを許可します。

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

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

訪問するアドレスは次のとおりです。

http://your_server_IP_address/info.php

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

CentOS 7 default PHP info

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

これが成功した場合、PHPは期待どおりに機能しています。

実際にサーバーに関する情報を許可されていないユーザーに提供する可能性があるため、このテスト後にこのファイルを削除することをお勧めします。 これを行うには、次のように入力できます。

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

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

結論

LAMPスタックがインストールされたので、次に何をするかについて多くの選択肢があります。 基本的に、サーバーにほとんどの種類のWebサイトとWebソフトウェアをインストールできるプラットフォームをインストールしました。

Related