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

推薦する

レガシーアプリケーションのモダナイゼーションがクラウドコンピューティングの成功に不可欠な理由

急速に進化する今日のビジネス環境において、クラウド コンピューティングは企業変革の原動力となっていま...

Mafengwo ビッグデータ プラットフォームにおける Kafka クラスターの最適化とアプリケーション拡張

Kafka は人気のあるメッセージ キュー ミドルウェアです。大量のデータをリアルタイムで処理でき、...

#11.11# テンセントクラウド: 年間88元から、3年間利用可能、北京/上海/広州/香港/シンガポール/米国/ドイツ

Tencent Cloudは、毎年恒例の「双十一」特別イベントを開始しました。クラウドサーバーは、年...

外部リンク、プロモーション?ウェブマスター、あなたは間違っています、データ分析もあります

多くのウェブマスターは、自分のウェブサイトが長く発展し、存続することを望んでいます。もちろん、生き残...

若いハッカーがWeiboでプライベートメッセージを送った、周紅一の投資を確保するために

出典:iheima 文/王宇豪(名刺鵬鵬と人人ヘッドハンターの創設者、上海の移民労働者)序文彼はコン...

マレーシアサーバー: zenlayer、30% 割引、クアラルンプールデータセンター、最大 10Gbps の帯域幅、独立したリソースのカスタマイズ

Zenlayerはマレーシアのクアラルンプールに自社データセンターを構え、マレーシア独立サーバー、マ...

推奨: lfchosting-$6.5/月/Xen/4 コア/1g メモリ/15SSD/1T トラフィック

4年後、lfchostingはついにトレンドに従い、新しいSSDハードドライブVPSを導入し、いくつ...

hostkvm: 「618」イベント、VPS 38% 割引、オプション: 香港、日本、米国の高防御

Hostkvm の 618 イベント: (1) シンガポール、日本、米国の場合、プラン 1 で月額支...

テンセントクラウドがローコードクラウド開発プラットフォームを立ち上げ、アプリケーション開発の敷居を大幅に下げる

11月29日に開催された第2回「ミニプログラムクラウド開発」テクノロジーサミットで、テンセントクラウ...

元グーグル幹部の劉軍氏がソーシャル検索会社Yunyunを設立し、新浪から投資を受ける

元グーグル幹部の劉軍氏が創設したソーシャル検索エンジン「YunYun」がテスト運用を開始した。 3月...

spinservers: 米国のハイエンドサーバー、中国の最適化ライン、179ドル、2*e5-2630L v3/256gDDR4/2*1.6T SSD/10Gbps帯域幅

spinserversは、米国西海岸のシリコンバレーデータセンターに、月額179ドルという低価格で超...

Google Analytics の白い画面の問題を解決する方法

3月29日、Google Analyticsにアクセスできなくなり、一部のユーザーがアクセスすると白...

Kubecon 2022 概要: Kubernetes は産業化に向けて前進

クラウドネイティブエコシステムは現在、「産業革命」の真っ只中にあります。最近、Cloud Nativ...

SaaS を実行するときに不安を回避するにはどうすればよいでしょうか?

1. 一生懸命働けば働くほど、不安は増しますか?海外のSaaS市場は急速に発展しており、企業の時価総...

企業がクラウドに移行するときにセキュリティとコンプライアンスを向上させる方法: Amazon Web Services のクラウド セキュリティの概念と実践を分析する記事

クラウドへの移行は一般的な傾向ですが、それは安全でしょうか?クラウド コンピューティングが徐々に普及...