Image

(最終更新日: 19.09.2024)
このガイドでは、Debian 12 に LEMP スタック (Nginx、MariaDB、PHP-8.2) をインストールする方法を示します。ソフトウェアスタックは、統合されたソフトウェアツールのセットです。LEMP は、Linux、Nginx (Engine-X)、MariaDB/MySQL、および PHP を意味し、すべてオープンソースであり、無料で使用できます。これは、動的な Web サイトや Web アプリケーションをサポートするための最も一般的なソフトウェアスタックです。Linux はオペレーティングシステムです。Nginx は Web サーバーです。MariaDB/MySQL はデータベース サーバーであり、PHP は動的な Web ページを作成するサーバー側スクリプト言語です。このガイドでは、root ユーザーとしてインストールを行いますが、通常のユーザーである場合は sudo コマンドを使用してください。


よくある質問:

  • 私たちはすべてのデータを手元に置きたいと考えています。これらのセットアップをすべて当社の機器で行っていただけますか?

    はい、この構成のインストールと構成は、リンク


事前構成済みサーバーの設定は注文フォームで利用可能です。

1. ソフトウェアパッケージを更新する

LEMP スタックをインストールする前に、リポジトリとソフトウェア パッケージを更新することをお勧めします。Debian 12 オペレーティング システムで次のコマンドを実行します。

apt update
apt upgrade

2. Nginx Web サーバーをインストールする

Nginx は、今日非常に人気のある高性能 Web サーバーです。また、リバース プロキシ サーバーおよびキャッシング サーバーとしても使用できます。Web サーバー Nginx をインストールするには、次のコマンドを入力します。

apt install nginx

インストール後、次のコマンドを実行して、起動時に Nginx の自動起動を有効にします。

systemctl enable nginx

次に、次のコマンドで Nginx を起動します。

systemctl start nginx

次に、状態を確認します。

systemctl status nginx

次に、Debian 12 サーバーの公開 IP アドレスをブラウザーのアドレスバーに入力します。「Welcome to Nginx」という Web ページが表示されれば、Nginx Web サーバーが正しく動作していることを意味します。Debian 12 をローカル コンピュータにインストールしている場合は、ブラウザのアドレス バーに 127.0.0.1 または localhost と入力してください。

接続が拒否された場合、または確立できない場合は、ファイアウォールが TCP ポート 80 への着信要求をブロックしている可能性があります。iptables ファイアウォールを使用している場合は、次のコマンドを実行して TCP ポート 80 を開く必要があります。

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

UFW ファイアウォールを使用している場合は、このコマンドを実行して TCP ポート 80 を開きます。

ufw allow http

次に、www-data (Nginx のユーザー) を Web ディレクトリの所有者にする必要があります。デフォルトでは、root ユーザーが所有しています。

chown www-data:www-data /usr/share/nginx/html -R

3. MariaDB データベース サーバーをインストールする

MariaDB は MySQL の代替品です。MariaDB は、Oracle が MySQL をクローズド ソース製品にする可能性を懸念している MySQL チームの元メンバーによって開発されました。Debian 12 に MariaDB をインストールするには、次のコマンドを入力します。

apt install mariadb-server mariadb-client

インストール後、MariaDB サーバーは自動的に起動するはずです。systemctl を使用して状態を確認します。

systemctl status mariadb

起動していない場合は、次のコマンドで起動します。

systemctl start mariadb

起動時に MariaDB の自動起動を有効にするには、次のコマンドを実行します。

systemctl enable mariadb

次に、インストール後のセキュリティ スクリプトを実行します。

mysql_secure_installation

MariaDB の root パスワードを入力するよう求められたら、まだ root パスワードが設定されていないため、Enter キーを押します。次に、y と入力して MariaDB サーバーの root パスワードを設定します。

次に、匿名ユーザーを削除し、root のリモート ログインを無効にし、テスト データベースを削除するには、残りの質問すべてに Enter キーを押して回答できます。この手順は、MariaDB データベースを安全に保つための主な要件です。 (デフォルトの回答は「Y」であるため、大文字の Y と表示されます。)

デフォルトでは、Debian の MaraiDB パッケージはユーザー認証に unix_socket を使用しています。これは主に、MariaDB コンソールにログインするために OS のユーザー名とパスワードを使用できることを意味します。したがって、次のコマンドを実行して、MariaDB の root パスワードを入力せずにログインできます。

mariadb -u root

終了するには次のコマンドを実行します。

exit;

4. PHP-8.2 をインストールする

PHP-8.2 は Debian 12 リポジトリに含まれており、PHP-7.x に比べてパフォーマンスが若干向上しています。次のコマンドを入力して、PHP-8.2 といくつかの一般的な拡張機能をインストールします。

apt install php php-fpm php-mysql php-common php-cli php-common php-json php-opcache php-readline php-mbstring php-xml php-gd php-curl

PHP 拡張機能は通常、WordPress などのコンテンツ管理システム (CMS) に必要です。たとえば、php8.2-xml がインストールされていない場合、WordPress サイトの一部のページが空白になることがあり、Nginx のエラーログに次のようなエラーが記録される場合があります。

PHP メッセージ: 致命的な PHP エラー: 処理されていないエラー: 定義されていない関数 xml_parser_create() を呼び出しています。

これらの PHP 拡張機能をインストールすると、CMS がスムーズに動作するようになります。次に、php8.2-fpm を起動します。

systemctl start php8.2-fpm
systemctl enable php8.2-fpm

5. Nginx の設定

次に、Nginx を設定して、PHP アプリケーションのリクエストを処理します。たとえば、Nginx サーバー ブロックを次のように構成できます。

nano /etc/nginx/conf.d/php.conf

次の行を貼り付けてください。

server {
listen 80;
server_name www.example.com example.com;

root /usr/share/nginx/html;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}

location ~ /\.ht {
deny all;
}
}

ファイルを保存して終了します。次に、構成エラーがないか確認します。

nginx -t

エラーがない場合は、次のコマンドで Nginx を再起動します。

systemctl reload nginx

6. セルフチェック

次に、PHP をテストして、PHP の情報 ページを作成できます。PHP ファイルを次のコマンドで作成します。

nano /usr/share/nginx/html/info.php

次の行を貼り付けてください。

<?php
phpinfo();
?>

ファイルを保存して閉じてください。次に、ブラウザのアドレスバーに server-ip-address/info.php と入力します。サーバーの IP アドレスを実際の IP アドレスに置き換えてください。このガイドにローカル コンピュータで従っている場合は、127.0.0.1/info.php または localhost/info.php と入力してください。

サーバーの PHP 情報が表示されます。これは、PHP スクリプトが Nginx Web サーバーで正しく動作できることを意味します。

7. Nginx の自動再起動

何らかの理由で Nginx プロセスが停止した場合は、次のコマンドを実行して再起動する必要があります。

systemctl restart nginx

手動でこのコマンドを入力する代わりに、systemd の nginx.service モジュールを編集して、Nginx を自動的に再起動するように設定できます。デフォルトの systemd サービス構成を上書きするには、別のディレクトリを作成します。

mkdir -p /etc/systemd/system/nginx.service.d/

次に、このディレクトリにファイルを作成します。

nano /etc/systemd/system/nginx.service.d/restart.conf

Nginx がクラッシュした後、5 秒後に自動的に再起動するようにするには、次の行をファイルに追加します。デフォルトの RestartSec 値は 100 ミリ秒ですが、これは短すぎます。RestartSec が十分に長くないと、「起動要求が頻繁すぎる」という Nginx のエラーメッセージが表示されることがあります。


[Service]

Restart=always
RestartSec=5s

ファイルを保存して閉じます。その後、systemd を再起動して、変更を反映させます。

systemctl daemon-reload

これが機能するかどうかを確認するには、次のコマンドを使用して Nginx を停止します。

pkill nginx

次に、Nginx のステータスを確認します。Nginx が自動的に再起動されていることがわかるでしょう。

systemctl status nginx

LEMP スタック (Nginx、MariaDB、PHP8.2) は Debian 12 に正常にインストールされました。これらのすべての手順は、VPS サーバーの注文フォームで利用可能な事前構成済みの LEMP Debian 12 にすでに含まれています。




No Comments Yet