VPS サーバー チュートリアル: Debian9 に LEMP スイート コンポーネント (Linux\nginx\mysql\php) をインストールする方法

VPS サーバー チュートリアル: Debian9 に LEMP スイート コンポーネント (Linux\nginx\mysql\php) をインストールする方法

LEMP は Linux、Nginx、MySQL、PHP の略で、Nginx の代わりに Apache を含む LAMP スタックの軽量版です。これは LNMP と書かれるのではなく、Nginx (Engine-X) という単語の発音によるものであることに気づくでしょう。

LEMP は LAMP スタックよりもはるかに少ないリソースを消費するため、安価な VPS マシンやローエンド ボックスに適しています。ベンチマークによると、高負荷時には2.5倍高速になります。また、処理速度を上げるために、MySQL の代わりに MariaDB をインストールします。MariaDB はより高速ですが、元の MySQL と完全に互換性があります。

これから説明する内容 Nginxのインストール
Nginx 設定の基本 ファイアウォール ABC-XYZ の設定
MariaDBのインストールと設定
最新のPHPをインストールする
PHP ファイルを提供するように Nginx を構成する インストールされたスタックをテストする (ドメインを使用) Let’s Encrypt 証明書を使用してサイトを保護する 前提条件 Debian 9 に LEMP スタックをインストールしてセットアップします。

少なくとも512MBのRAMを搭載したクリーンなVPSから始めましょう
15 GB の空きディスク容量。ルート アクセスが必要です。Let’s Encrypt 証明書をインストールするには、VPS を指すようにドメイン (このチュートリアルでは example.com) の DNS レコードを設定する必要があります。ない場合は、代わりに IP アドレスにアクセスし、最後の手順をスキップしてください。

ステップ1: Nginxをインストールする
ABC-XYZ のインストールとファイアウォール設定 まず、root または sudo 権限でサーバーにログインします。 次に、パッケージ マネージャーのキャッシュを更新します。

 sudo apt update

Nginx をインストールするには、次のコマンドを実行します。
sudo apt install nginx -y

Nginxがインストールされました。 ブラウザでドメインにアクセスします (ドメイン名がない場合は IP アドレスにアクセスします)。 デフォルトの Nginx ウェルカム ページが表示されます。

これは、Nginx が正常にインストールされたことを意味します。 systemctl 経由でこれを有効にして、サーバーが起動するたびに起動するようにします。

sudo systemctl nginx を有効にする

セキュリティを最大限に高めるために、ufw (Uncomplicated Firewall ABC-XYZ) をインストールし、HTTP、HTTPS、FTP、SSH 接続を許可し、その他すべてを拒否するように設定します。

sudo apt ufwをインストール -y
sudo ufw allow 'Nginx Full'
sudo ufw OpenSSHを許可する
sudo ufw SSHを許可する
sudo ufw ftpを許可する

次のコマンドを実行して有効にします (アクティブにします)。

sudo ufw を有効にする

尋ねられたら y と答え、ブラウザでサイトを再読み込みします。 それでも同じウェルカム ページが表示される場合は、ファイアウォール ABC-XYZ が正しく設定されています。 エラー(アクセス拒否など)が表示される場合は、ファイアウォール ABC-XYZ を無効にします。

sudo ufw disabled を実行して設定を確認します。

sudo ufw ステータス
有効なプロファイルのリストが表示されます。 上記が表示されない場合は、コマンドを再実行して再度有効にします。

設定ディレクトリ Debian 9 では、Nginx は設定ファイルを /etc/nginx に保存し、静的ファイルを提供するためのデフォルトのディレクトリは /usr/share/nginx/html です。 これは、後の手順で設定を変更して新しいファイルを追加する必要があるときに重要になります。

ステップ2: MariaDBをインストールする
MariaDB をインストールします (apt でデフォルトで利用可能)。

sudo apt install mysql-server -y
インストールが完了したら、起動します。

sudo systemctl でmysqlを起動します
元の MySQL 製品との完全な互換性を維持するために、MariaDB は mysql コマンドに応答します。

MariaDB をインストールした後、データベースを保護するためにスクリプト (mysql_secure_installation という名前) を実行する必要があります。

sudo mysql_secure_installation
現在のルート パスワードの入力を求められた場合は、初めて設定するため Enter キーを押します。 次に、root ユーザーの新しいパスワードを入力し、y と答えて匿名ユーザーを削除します。 サーバーの外部からデータベースにアクセスする予定がない場合は次の質問に答え、そうでない場合は n と入力します。 後続の質問をすべて表示するには、y と入力するか Enter キーを押します。

次のコマンドを実行して接続してみてください。

sudo mysql -u ルート -p

プロンプトが表示されたら、設定したルートパスワードを入力します。

mysql プロンプトが表示されます:

これは、MariaDB が正常に動作し、適切に保護されていることを意味します。 コンソールを終了するには、exit と入力します。

ステップ3: PHPをインストールする
これで、Debian 9 でデフォルトで利用可能な PHP 7.0 がインストールされます。

PHP 7.0 をインストールするには、次のコマンドを実行します。

sudo apt インストール php-fpm php-mysql
次に、必要になる可能性が高いその他の PHP 拡張機能をインストールします。

sudo apt install php-mysql php-mbstring php-dev php-gd php-pear php-zip php-xml php-curl -y
インストールした PHP のバージョンをシステム全体のデフォルトとして設定するには、次のコマンドを実行します。

sudo update-alternatives –set php /usr/bin/php7.0
利用可能な PHP バージョンを確認します。

sudo php –バージョン
予想通り、バージョンは 7.0 であることがわかります。

ステップ4: PHPコンテンツを提供するためのNginxの設定
PHP はインストールされ、正常に動作していますが、Apache とは異なり、自動的には実行されないため、Nginx を設定して PHP を使用する必要があります。

ステップ 1 で説明したように、Nginx は設定ファイルを /etc/nginx に保存します。 現在有効になっている構成 (Nginx によって適用されるもの) は、sites-enabled というフォルダーに保存されます。 同様に、利用可能だが有効になっていない (したがってインターネットからアクセスできない) サイトは、sites-available というフォルダーに保存されます。 デフォルトで有効になっているサイトの構成を編集します。

デフォルトの設定ファイルは必要ないので削除します。

rm /etc/nginx/sites-enabled/default
デフォルトのサイト設定のコピーは、/etc/nginx/sites-available/default にあります。

編集する新しい構成ファイルを作成します。

ナノ /etc/nginx/sites-enabled/default
次の行を追加します。

 server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.3-fpm.sock; } location ~ /\.ht { deny all; } }

ファイルを保存して閉じます。

上記の設定の最初の部分では、Nginx がリクエストを HTTP ポート 80 でリッスンするように指定しています。 次に、ファイルを提供するためのルート フォルダーを /var/www/html (Web サイトのファイルを保存する場所) に設定し、Nginx に最初に PHP ファイル (HTML ではなく) を提供するように指示します。

表示されている残りの構成では、要求されたときに PHP を呼び出す方法と、Apache Web サーバーから発信された .htaccess や同様のファイルへのアクセスを拒否する方法を Nginx に指示します。 これらは Nginx では使用されず、機密情報が含まれている可能性があるため、ユーザーに提供しないでください。

変更を有効にするには、Nginx を再起動します。

sudo systemctl nginxを再起動します
ブラウザでサイト(または IP アドレス)を再読み込みしてみてください。 以前と同じ Nginx のデフォルトのウェルカム ページが表示されます。

PHP レンダリングが機能することをテストするには、/var/www/html に PHP ファイルを作成します。

sudo ナノ /var/www/html/index.php
次の内容を入力してください。

<? PHP の

phpinfo();

? >
ファイルを保存して閉じます。

phpinfo() 関数は、PHP インストールに関する非常に詳細な情報を出力します。

ブラウザでサイトを再読み込みしてください。 今回は、すべてがうまくいけば、次のようなページが表示されます。

502 Bad Gateway エラーが表示された場合は、上記の設定の fastcgi_pass 行を確認してください (PHP バージョンが異なる可能性もありますが、その可能性は低いです)。

このファイルには多くの機密情報が含まれているため、すぐに削除してください。

rm /var/www/html/index.php

ステップ 5: Let’s Encrypt でドメインを保護する 完全に登録され、サーバーにポイントされているドメイン名を所有している場合は、無料の Let’s Encrypt TLS 証明書を使用してドメインを保護できます。 これを行う利点は、HTTPS アクセスが可能になり、すべてのブラウザでドメイン名の横に南京錠が表示されることです。

この目的のために作成された無料プログラムである Certbot を使用して、Let’s Encrypt 証明書を生成および構成します。 Let's Encrypt 証明書は 90 日後に期限切れになりますが、Certbot は期限が切れると (デフォルトでは 60 日ごと) 自動的に更新するため、まったく心配する必要はありません。

Certbot をインストールするには、まず次のコマンドを実行して Debian Backports リポジトリを有効にする必要があります。

secho "deb http://ftp.debian.org/debian Stretch-backports メイン" |
sudo tee /etc/apt/sources.list.d/backports.list

パッケージ マネージャー キャッシュを更新します。

sudo aptアップデート

次に、Certbot をインストールします。

sudo apt install certbot python-certbot-nginx -t ストレッチバックポート -y

完了したら、Certbot を実行します。

sudo certbot –nginx –rsaキーサイズ 4096

確認したいメールアドレスを入力し、A と入力して利用規約に同意します。 EFF のニュースレターを購読する場合は、Y を押してドメイン名を入力してください。次に、Certbot はすべてのトラフィックを HTTPS にリダイレクトするかどうかを尋ねます。リダイレクトする場合は 2 を入力します。

お祝いのメッセージが届きます。これは、Let's Encrypt の無料 HTTPS 証明書でドメインが保護されたことを意味します。ブラウザでドメインを再度更新してください。サイトのアドレスの左側に南京錠が表示され、接続が暗号化されていることを示します。必要に応じて、SSL サーバー テストでサイトを実行し、A 以上の評価が得られるかどうかを確認できます。

次にできること これで、Debian 9 サーバーに LEMP スタックがインストールされ、構成されました。これで、PHP ウェブサイトをホストできるようになり、MariaDB データベースにアクセスできるようになります。たとえば、WordPress、Joomla、Drupal、Moodle、またはデータベースへのアクセスを必要とする可能性のあるその他の PHP アプリケーションをインストールでき、十分な追加構成が使用されます。

<<:  #おすすめ# BandwagonHost: cn2 gia ロープロファイル VPS 補充、公式 WeChat 支払い追加

>>:  servarica: 8T 大容量ハードディスク VPS、8G メモリ、100Mbps 無制限、わずか 20 ドル、カナダのネイティブ IP

推薦する

2020 年のエッジ コンピューティング: これら 10 社の海外スタートアップは新たな波を起こせるか?

ガートナーによると、2025年までに約75%のデータがエッジで分析および処理される必要があり、またガ...

deinserverhost - $4.85/1g メモリ/300g ハードディスク/2T トラフィック/Windows/ドイツ

deinserverhost は 2009 年に設立され、ドメイン名、仮想ホスト、VPS、独立サーバ...

クラウド移行プレイブック: SaaS モデルへの適応

クラウドベースの SaaS モデルでは、システムの構築、セットアップ、管理は必要ありません。企業は必...

アリババクラウドは深夜に再びダウンした。クラウド サービス プロバイダーの 99.99% のセキュリティはどの程度信頼できるのでしょうか?

原題:アリババクラウドが再びダウン、修復はすべて完了したと回答アリババクラウドは補償の詳細を明らかに...

ウェブサイトの観点からインターネットビジネスプランの書き方について簡単に説明します

インターネットの急速な発展により、あらゆる業界で大きな変化が起こっています。中国は現在、インターネッ...

Baidu は知っています、そんなに厳しくしないでください。

最近、新しいウェブサイトを立ち上げ、宣伝を始めました。ご存知のとおり、新しいウェブサイトの宣伝には ...

医療ウェブサイトの編集と執筆の要件

私たちの最終的な目標は、患者さんに治療を受けに来てもらうことです。患者さんに治療を受けてもらうには、...

zji: 香港 VDS (専用リソース)、450 元、16G メモリ/8 コア (Platinum 8352Y)/240g SSD/10M 帯域幅 (cn2+bgp)/無制限トラフィック/2IPv4

zji は、KVM 仮想化と専用リソースに基づく新製品シリーズ「Hong Kong VDS」を発表し...

ラック「言葉では言い表せない」e: 安価なロシアの独立サーバー、および kvm+vmware シリーズ VPS

ロシアのサーバーが必要な場合は、ラックをご覧ください。モスクワ データ センターの独立サーバーは現在...

山達文学の分裂と変化:利益と運命の交差点

中国のインターネット業界で最も経営が難しいこの企業の中核事業とチームはなぜ分裂したのか?これはオンラ...

2019 年の Hyper-V 監視ツールとソフトウェアのトップ 10

仮想化の広範な使用は、エンタープライズ インフラストラクチャにおける最も重要なトレンドの 1 つです...

Kubernetes がネットワーク セキュリティと管理機能を強化する新しいバージョン 1.26 をリリース

Kubernetes 開発者は、Kubernetes ソフトウェア コンテナ管理プラットフォームの...

百度インデックスキーワード作成サービスがひっそりと開始、1単語あたり50元

少し前、百度インデックスは変更を受けました。最初はアカウントが1日に作成できるキーワードが5つに制限...

Java 仮想マシンはクラスをどのようにロードするのでしょうか?

[[258793]]まず、JVM がクラスをロードする一般的なプロセスは、次の 3 つのステップに分...

Dotvps - 1g メモリ/50g ハードディスク/500g トラフィック/2IP/年間 28 ドル/アトランタ

今回お勧めするアトランタ拠点の openvz VPS は Dotvps のものです。独立した IPv...