Debian 8でNGINX、PHP-FPM、およびMariaDBをセットアップする

このガイドでは、NGINX、PHP Fast Process Manager、およびMariaDBを利用して、「代替」LAMPスタックをDebian 8に正しくインストールおよび構成する方法を示します。

NGINX

NGINXは「最初にリバースプロキシ、2番目にWebサーバー」です。これは、Apacheに代わる人気があり、成長している代替手段であり、多くのインスタンスで柔軟性とパフォーマンスが向上しています。このチュートリアルでは、それをWebサーバーとして使用します。

お気に入りのSSHクライアントを起動して、サーバーにログインします。Windowsユーザーの場合、「PuTTY」は無料で軽量なSSHクライアントです。LinuxおよびMacユーザーは、オペレーティングシステムにデフォルトで含まれているターミナルを使用できます。このチュートリアルでは、「root」ユーザーとしてサーバーにログインしていると想定します。

まず、すべてが最新であることを確認しましょう。次のように入力して、アップデートを確認してインストールします。

apt-get update && apt-get upgrade

vimで設定ファイルを編集します。Vimはデフォルトではインストールされないので、インストールしましょう!

apt-get install vim

NGINXをインストールします。NGINXの公式リポジトリから最新バージョンのNGINXをインストールしたいと思います。

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
echo 'deb http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
echo 'deb-src http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
apt-get update && apt-get install nginx

ここで、NGINX構成をいくつか調整する必要があります。構成ディレクトリに移動します。

cd /etc/nginx

簡単なvimレッスン

矢印キーを使用して、テキストドキュメント内を移動します。編集を開始するには、キーボードの「挿入」ボタンを押します。キーボードに挿入ボタンがない場合は、「i」キーを押します。vimの下部に向かって、「INSERT」と表示されていることに気づくでしょう。挿入モードでは、バックスペースで削除したり、入力して新しい文字を挿入したりできます。

私たちnginx.confを開いて見てみましょう:

vi nginx.conf

デフォルトのユーザーを変更して、ワーカープロセスの数を確認し、アクセスログをオフにします。

ディレクティブ「user」と「worker_processes」は上部にあります。以下の値を試してください。

「worker_processes」を、サーバーで使用可能なCPUコアの数に設定する必要があることに注意してください。この例では、NGINXのデフォルトである1があります。

user www-data;
worker_processes 1;

また、I / Oパフォーマンスを向上させるために、アクセスログを無効にすることもできます。「access_log」が見つかるまで、矢印キーを使用して下に移動します。次のように変更します。

access_log off;

そして最後に、「client_max_body_size」を設定して、後でPHPに加えられたいくつかの変更に対応させます。面倒を省いて今すぐやりましょう。「access_log」のすぐ下に追加:

client_max_body_size 12m;

編集が完了したら、キーボードの「Esc」を押します。Vimはファイルの下部に向かって「挿入」と言うことはもうありません。

変更を保存してvimを終了するには、次のキーシーケンスを押します。

SHIFT :(colon)
wq
Press "Enter"

上記のvim kung fuは、変更をディスクに書き込んでvimを終了し、bashシェルに戻ります。

次に、この例ではサイト固有の構成を作成する必要があります。他の設定例も削除します。以下を試してください:

cd conf.d
rm example_ssl.conf default.conf
vi my_site.conf

www.confデフォルトのNGINX構成に大まかに基づいて、短くて簡単なものにしますが、いくつかの微調整を行います。挿入を押すと、以下の例をコピーして貼り付けることができます。

ウェブサイトのルートディレクトリを指すように「root」ディレクティブを編集し、ドメインに対応するように「server_name」を編集することを忘れないでください。

server {
    listen 80;

    root /path/to/your/website;
    index index.php index.html index.htm;

    server_name mydomainname.com www.mydomainname.com;

    location / {
            try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}

これで、このチュートリアルのNGINX構成セクションが完了しました。PHPをインストールした直後に、NGINXを少しだけ再起動します。

PHP-FPM

PHP-FPMはPHP Fast Process Managerです。Apacheとは異なり、NGINXはモジュールとしてPHPを実行しないため、NGINXを使用するときに必要です。これは、NGINXのメモリフットプリントを削減するために行われました。NGINXが何よりもまずリバースプロキシであることを覚えていますか?ここでそれが出てきます。NGINXに送信されたPHPリクエストは、PHP-FPMに送られ、面倒な作業が行われます。

PHP-FPMをインストールしましょう。

apt-get install php5-fpm php5-mysqlnd

PHPスクリプトの要件によっては、デフォルトでは含まれていない他のPHPモジュールをインストールする必要がある場合があります。人気のものがあるphp5-gdphp5-mcrypt。これらは次のコマンドでインストールできます。

apt-get install php5-module_name_here

PHP-FPMがインストールされたので、簡単な編集をいくつか行って、セキュリティと機能を強化します。

cd /etc/php5/fpm
vi php.ini

別のvimレッスンの時間です!php.iniファイルは絶対に巨大です。いくつかの重要な値を探すには、一日かかります。探しているものがわかっているので、検索します。次のように入力します。

/upload_max_filesize

デフォルトでは、2メガバイトに設定されています。ユーザーが2メガバイトを超えるファイルをPHPアプリケーションにアップロードできるようにする場合は、これを変更する必要があります。今のところ10Mはおそらく安全な賭けですが、より高い値も受け入れられます。この設定は構成によって異なります。チュートリアルのために:

upload_max_filesize = 10M

もう1つ目立つセキュリティの欠陥。少し下にスクロールするか、検索します。「allow_url_fopen」を「オフ」にする必要があります。これにより、REMOTELYでホストされているPHPファイル(RFI(Remote File Inclusion)とも呼ばれる)がPHPで実行されなくなります。多くのサーバーがこのようにハッキングされています。

allow_url_fopen = Off

また、「upload_max_filesize」を変更したため、「post_max_size」を変更する必要があります。PHPで処理されるリクエストに関連するオーバーヘッドを考慮する必要があるため、この値は「upload_max_filesize」より少し大きくする必要があります。

「/ post_max_size」でもう一度検索してみましょう。

post_max_size = 12M

PHPファイルのサイズとしてこれらの例よりも大きい値を使用する場合は、NGINX構成に戻って「client_max_body_size」を編集する必要があることに注意してください。

今のところはこれでおしまいです。「Esc」を押して、編集モードになっていないことを確認します。保存してvimを終了します。

SHIFT :(colon)
wq
Press 'Enter'

PHP-FPMのセットアップが完了しました。

MariaDB

NoSQLやMongoDBへの移行が進んでいる世界でも、MySQLを使い続ける方が簡単だと感じる人もいます。これは、多くのWebアプリケーションに特に当てはまります。幸いなことに、Oracle MySQLの「ドロップイン」代替品が多数存在します。Debian 8には、今までにない人気のMariaDBが含まれています。MariaDBは、バージョン5.5に基づくOracle MySQLのフォークです。MariaDBは、すべての意図と目的から、これをMariaDB 10と呼びます。これは、Oracle MySQLの完全な代替品と見なされます。それを中心にMySQLと考え、Oracleのブランド化といくつかの新機能を省きます。

apt-get install mariadb-server

重要: MariaDBの強力なrootパスワードを選択する必要があります。安全な場所に保存してください。MariaDBのインストール中に2回入力する必要があります。

MariaDBの設定を少し調整してみましょう。ネットワークインターフェイスを介して受信するMariaDBを無効にします。代わりに、以前のPHP-FPMと同様に、UNIXソケットのみを使用します。ほとんどのPHPアプリケーションは、ローカルループバックインターフェイスではなく、UNIXソケットを介したデータベースサーバーへの接続をサポートする必要があります。

cd /etc/mysql
vi my.cnf

「bind-address = 127.0.0.1」を探します。その行をコメントアウトします。その上または下に「スキップネットワーキング」を追加します。

#bind-address = 127.0.0.1
skip-networking

MariaDBはこれで完了です!最終的には、主にMyISAMまたはInnoDBストレージエンジンを使用するかどうか、およびサーバーで使用可能なCPUコアとRAMの数に応じて、MariaDB構成を微調整したい場合があります。デフォルトでは、その間に私たちを稼働させます。

このチュートリアルで構成ファイルが変更された各サービスを再起動してみましょう。

systemctl restart nginx.service
systemctl restart php5-fpm.service
systemctl restart mysql.service

これで完了です。これですべて完了です。この時点で、完全に機能するLNMP(LEMP)サーバーがオンラインになります。

このガイドは、最小限の調整で上記のサービスを開始するための一般的な経験則として機能することでした。詳細については、上記のパッケージのドキュメントをお読みください。この設定例は「そのまま」で問題なく機能するはずですが、ニーズに合わせて調整を行うことができます。

調査する推奨領域:

  • NGINXのキャッシュ制御の利用と変更。
  • PHP-FPMの「静的」、「動的」、または「オンデマンド」のタスクマネージャー設定。
  • データベースサーバーを最大限に活用するためのMariaDBパフォーマンスチューニング。


Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。