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

推薦する

金融グレードのクラウドネイティブアプリケーションのアーキテクチャと進化について語る

デジタル時代の到来に伴い、銀行のコアシステム構築における主流の技術アーキテクチャは、集中型アーキテク...

SEOウェブサイト最適化オペレーション市場ポジショニングの簡単な分析

ウェブサイト構築の初期段階では、どのようなサイトを作るにしても、サイトの位置づけを明確にする必要があ...

ウォルト・ディズニーが AWS を優先パブリッククラウドインフラストラクチャプロバイダーとして選択

[51CTO.com オリジナル記事] 2017 年 11 月 29 日、AWS は本日、ディズニー...

RocketMQはKosmosをベースにAZレベルの高可用性を実現

1. 背景RocketMQ がマスター/スレーブ モードを採用するか、Dledger マルチコピー ...

Linode - 20ドルで簡単なチュートリアルを入手

今日はアメリカの独立記念日です。多くの企業がプロモーションを行っていますが、どれもいつもと同じ手法で...

一人のSEO、死ぬまで働いても誰も同情しない

SEO 業界では、一人で取り組むことは珍しいことではありません。多くのウェブマスターが複数の役割を担...

Webmaster.com からの毎日のレポート: Sina Weibo はどこへ向かうのか? Apple と Samsung が法廷で対決

1. Sina Weiboはどこへ向かうのか?新たな始まりだったかもしれないが、元に戻るのは難しいW...

Baidu 製品を使用してウェブサイトの重みと評判を向上させることについて説明します

実際、多くの友人のサイトのトラフィックは主に百度に依存していることは誰もが知っているので、百度でのラ...

検索マーケティングのトレンドを理解し、ウェブサイトの最適化の方向性を見つける

検索エンジンの出現により、ユーザーのインターネット アクセスの効率が効果的に向上し、人々のインターネ...

IBM Zでハイブリッドクラウドの可能性を解き放つ

COVID-19 パンデミックの重要な影響の 1 つは、ほとんどの経営幹部がデジタル変革のペースが加...

Webmaster.com の日刊レポート: 共同購入サイトの 60% が廃止され、Facebook ユーザー数も減少

1. 福建省通信管理局は226の違法・不法ウェブサイトを閉鎖し、78,900件の登録情報を抹消した。...

オンライン融資のグレーゲーム:年率収益は30%を超える

オンライン融資プラットフォームが自らに描いた究極の青写真は、民間融資を透明化することである。しかし、...

数秒で百度に集められる高品質なオリジナル記事の書き方

高品質のオリジナル記事を書いて、百度に数秒で集めてもらう方法について言えば、これは多くのウェブマスタ...

便利な Markdown エディタのリスト

Markdown はシンプルで軽量なマークアップ構文です。ユーザーは * # などの単純なマークアッ...