Linux、Nginx、MySQL、PHP(LEMPスタック)をDebian9にインストールする方法
序章
LEMPソフトウェアスタックは、動的WebページおよびWebアプリケーションを提供するために使用できるソフトウェアのグループです。 これは、NginxWebサーバーを備えたLinuxオペレーティングシステムを表す頭字語です。 バックエンドデータはMySQLデータベースに保存され、動的処理はPHPによって処理されます。
このガイドでは、オペレーティングシステムが提供するパッケージを使用して、DebianサーバーにLEMPスタックをインストールします。
前提条件
このガイドを完了するには、root以外のユーザーがいるDebian9サーバーが必要です。 sudo
特権。 これらの権限を持つユーザーは、Debian9ガイドの初期サーバーセットアップでセットアップできます。
ステップ1—NginxWebサーバーをインストールする
サイト訪問者にWebページを表示するために、最新の効率的なWebサーバーであるNginxを採用します。
この手順で使用するすべてのソフトウェアは、Debianのデフォルトのパッケージリポジトリから直接提供されます。 これは、 apt
インストールを完了するためのパッケージ管理スイート。
初めて使うので apt
このセッションでは、ローカルパッケージインデックスを更新することから始める必要があります。 次に、サーバーをインストールできます。
- sudo apt update
- sudo apt install nginx
Debian 9では、Nginxはインストール時に実行を開始するように構成されています。
あなたが持っている場合 ufw
ファイアウォールが実行されている場合は、Nginxへの接続を許可する必要があります。 必要なトラフィックを引き続き許可する最も制限の厳しいプロファイルを有効にする必要があります。 サーバーにSSLをまだ構成していないため、このガイドでは、ポートでのトラフィックのみを許可する必要があります。 80
.
これを有効にするには、次のように入力します。
- sudo ufw allow 'Nginx HTTP'
次のように入力して、変更を確認できます。
- sudo ufw status
表示された出力に許可されたHTTPトラフィックが表示されます。
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
次に、Webブラウザでサーバーのドメイン名またはパブリックIPアドレスにアクセスして、サーバーが稼働しているかどうかをテストします。 サーバーを指すドメイン名がなく、サーバーのパブリックIPアドレスがわからない場合は、端末に次のいずれかを入力してドメイン名を見つけることができます。
- ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
これにより、いくつかのIPアドレスが出力されます。 Webブラウザでそれぞれを順番に試すことができます。
Webブラウザで受け取ったアドレスの1つを入力します。 Nginxのデフォルトのランディングページに移動するはずです:
http://your_domain_or_IP
上記のページが表示されている場合は、Nginxが正常にインストールされています。
ステップ2—サイトデータを管理するためのMySQLのインストール
Webサーバーができたので、データベース管理システムであるMySQLをインストールして、サイトのデータを保存および管理する必要があります。
次のように入力すると、これを簡単にインストールできます。
- sudo apt install mysql-server
注: Debian 9では、MySQLプロジェクトのコミュニティフォークであるMariaDBがデフォルトのMySQLバリアントとしてパッケージ化されています。 MariaDBはほとんどの場合うまく機能しますが、OracleのMySQLにのみ見られる機能が必要な場合は、MySQL開発者が管理するリポジトリからパッケージをインストールして使用できます。 公式MySQLサーバーをインストールするには、チュートリアル Debian9に最新のMySQLをインストールする方法を使用してください。
これでMySQLデータベースソフトウェアがインストールされましたが、その構成は完了していません。
インストールを保護するために、安全でないデフォルトを変更するかどうかを尋ねるセキュリティスクリプトを実行できます。 次のように入力してスクリプトを開始します。
- sudo mysql_secure_installation
MySQL rootアカウントのパスワードを入力するように求められます。 まだ設定していないので、 ENTER
. 次に、そのパスワードを設定するかどうかを尋ねられます。 入力する必要があります y
次に、rootパスワードを設定します。
スクリプトが尋ねる残りの質問については、を押す必要があります y
、続いて ENTER
各プロンプトでキーを押します。 これにより、一部の匿名ユーザーとテストデータベースが削除され、リモートルートログインが無効になり、これらの新しいルールが読み込まれるため、MySQLは行った変更をすぐに尊重します。
この時点で、データベースシステムがセットアップされ、保護されています。 PHPを設定しましょう。
ステップ3—処理のためのPHPのインストール
これで、ページを提供するためにNginxがインストールされ、データを保存および管理するためにMySQLがインストールされました。 ただし、動的コンテンツを生成できるものはまだありません。 そこでPHPが登場します。
Nginxには他のWebサーバーのようなネイティブPHP処理が含まれていないため、インストールする必要があります fpm
、「fastCGIプロセスマネージャー」の略です。 処理のためにこのソフトウェアにPHPリクエストを渡すようにNginxに指示します。 PHPがMySQLデータベースバックエンドと通信できるようにする追加のヘルパーパッケージもインストールします。 インストールは、それを機能させるために必要なPHPコアファイルをプルします。
次に、をインストールします php-fpm
と php-mysql
パッケージ:
- sudo apt install php-fpm php-mysql
これで、PHPコンポーネントがインストールされました。 次に、それらを使用するようにNginxを構成します。
ステップ4—PHPプロセッサを使用するようにNginxを構成する
これで、必要なすべてのコンポーネントがインストールされました。 まだ必要な唯一の構成変更は、動的コンテンツにPHPプロセッサを使用するようにNginxに指示することです。
これはサーバーブロックレベルで行います(サーバーブロックはApacheの仮想ホストに似ています)。 デフォルトのNginx構成をそのままにして、代わりにPHPファイルを保持するための新しい構成ファイルと新しいWebルートディレクトリを作成します。 サーバーが応答するドメイン名またはホスト名にちなんで、構成ファイルとディレクトリに名前を付けます。
まず、に新しいディレクトリを作成します /var/www
PHPサイトを保持するには:
- sudo mkdir /var/www/your_domain
次に、Nginxの新しい構成ファイルを開きます sites-available
ディレクトリ:
- sudo nano /etc/nginx/sites-available/your_domain
これにより、新しい空白のファイルが作成されます。 次の必要最低限の構成で貼り付けます。
server {
listen 80;
listen [::]:80;
root /var/www/your_domain;
index index.php index.html index.htm;
server_name your_domain;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
}
これは、ポート80でリッスンし、作成したWebルートからファイルを提供する非常に基本的な構成です。 後に提供された名前へのリクエストにのみ応答します server_name
、およびで終わるファイル .php
によって処理されます php-fpm
Nginxが結果をユーザーに送信する前に処理します。
カスタマイズが完了したら、ファイルを保存して閉じます。
Nginxから構成ファイルにリンクして構成をアクティブ化します sites-enabled
ディレクトリ:
- sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/
これにより、次にリロードされるときに構成を使用するようにNginxに指示されます。 まず、次のように入力して、構成の構文エラーをテストします。
- sudo nginx -t
エラーが報告された場合は、続行する前に戻ってファイルを再確認してください。
準備ができたら、Nginxをリロードして変更を加えます。
- sudo systemctl reload nginx
次に、新しいWebルートディレクトリにファイルを作成して、PHP処理をテストします。
ステップ5—構成をテストするためのPHPファイルを作成する
これで、LEMPスタックが完全にセットアップされました。 Nginxが正しく処理できることを検証するためにテストできます .php
PHPプロセッサにファイルを送信します。
これを行うには、ドキュメントルートにテストPHPファイルを作成します。 と呼ばれる新しいファイルを開きます info.php
テキストエディタのドキュメントルート内:
- sudo nano /var/www/your_domain/info.php
次の行を入力するか、新しいファイルに貼り付けます。 これは、サーバーに関する情報を返す有効なPHPコードです。
<?php
phpinfo();
?>
終了したら、ファイルを保存して閉じます。
これで、サーバーのドメイン名またはパブリックIPアドレスにアクセスしてから、Webブラウザーでこのページにアクセスできます。 /info.php
:
http://your_domain/info.php
サーバーに関する情報を含むPHPによって生成されたWebページが表示されます。
このようなページが表示された場合は、Nginxを使用してPHP処理を正常に設定しています。
Nginxがページを正しくレンダリングすることを確認した後、作成したファイルを削除することをお勧めします。これにより、許可されていないユーザーに、侵入を試みるのに役立つ構成に関するヒントが実際に与えられる可能性があります。
今のところ、次のように入力してファイルを削除します。
- sudo rm /var/www/html/info.php
後で必要になった場合は、いつでもこのファイルを再生成できます。
結論
これで、DebianサーバーにLEMPスタックが構成されているはずです。 これにより、訪問者にWebコンテンツを提供するための非常に柔軟な基盤が提供されます。