サーバー設定 · 3 min read · Jan 05, 2026

Debian 8 に Nginx (PHP-FPM として) と MariaDB (LEMP) をインストールする

このチュートリアルでは、Debian 8 に Nginx ウェブサーバーをインストールする方法を示します。Nginx(発音は「エンジンエックス」)は、無料でオープンソースの高性能 HTTP サーバーです。Nginx は、その安定性、豊富な機能セット、シンプルな設定、低リソース消費で知られています。このチュートリアルでは、PHP サポート(PHP-FPM を通じて)と MySQL の代替としての MariaDB を使用して Nginx をインストールする方法を示します。このセットアップは、LEMP = Linux + nginx(発音は「 e ngine x」) + MySQL + PHP)と呼ばれることがよくあります。

前提条件

このチュートリアルでは、ホスト名 server1.example.com と IP アドレス 192.168.1.100 を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。Debian 8 サーバーを持っている必要があります。私はこのチュートリアルの基本システムとして Debian ミニマルサーバーを使用します。

システムの更新

Nginx のセットアップを開始する前に、パッケージリストを更新し、保留中の更新をインストールすることをお勧めします。以下のコマンドを実行して、保留中の更新をインストールします。

apt-get update  
apt-get upgrade -y

後で設定ファイルを編集するために nano エディタを使用します。Nano は次のコマンドでインストールできます:

apt-get -y install nano  

MariaDB のインストール (MySQL の代替として)

MariaDB をインストールするために、次のコマンドを実行します:

apt-get -y install mariadb-server mariadb-client

MariaDB の root ユーザーのパスワードを提供するように求められます。このパスワードは、ユーザー root@localhost および [email protected] に対して有効ですので、後で手動で MariaDB の root パスワードを指定する必要はありません:

MariaDB “root” ユーザーの新しいパスワード: <– yourrootsqlpassword
MariaDB “root” ユーザーのパスワードを再入力してください: <– yourrootsqlpassword

MariaDB root ユーザーのパスワードを入力します。

Nginx のインストール

Nginx は Debian Jessie 用のパッケージとして利用可能で、次のようにインストールできます:

apt-get -y install nginx

その後、Nginx を起動します:

systemctl start nginx.service

ブラウザにウェブサーバーの IP アドレスまたはホスト名を入力します(例:http://192.168.1.100)。次のページが表示されるはずです:

Debian Nginx スタートページ。

Debian 8 のデフォルトの nginx ドキュメントルートは /var/www/html です。

PHP のインストール

PHP5 を nginx で動作させるために、PHP-FPM を次のようにインストールします:

apt-get -y install php5-fpm

PHP-FPM は、/var/run/php5-fpm.sock ソケット上で FastCGI サーバーを実行するデーモンプロセスです(systemd ユニットファイル php5-fpm.service)。

nginx の設定

nginx の設定は /etc/nginx/nginx.conf にあり、今開きます:

nano /etc/nginx/nginx.conf

設定は理解しやすいです(詳細については、こちらを参照してください:http://wiki.nginx.org/NginxFullExample およびこちら:http://wiki.nginx.org/NginxFullExample2)

まず、keepalive_timeout を 2 秒のような妥当な値に設定します:

[...]  
    keepalive_timeout   2;  
[...]  

仮想ホストは server {} コンテナ内で定義されます。デフォルトの vhost は /etc/nginx/sites-available/default ファイルに定義されています。次のように修正します:

nano /etc/nginx/sites-available/default
[...]  
server {  
 listen 80 default_server;  
 listen [::]:80 default_server;  
  
 # SSL 設定  
 #  
 # listen 443 ssl default_server;  
 # listen [::]:443 ssl default_server;  
 #  
 # ssl-cert パッケージによって生成された自己署名証明書  
 # 本番サーバーで使用しないでください!  
 #  
 # include snippets/snakeoil.conf;  
  
 root /var/www/html;  
  
 # PHP を使用している場合は index.php をリストに追加します  
 index index.html index.htm index.nginx-debian.html index.php;  
  
 server_name _;  
  
 location / {  
 # 最初にリクエストをファイルとして提供しようとし、次に  
 # ディレクトリとして、最後に 404 を表示します。  
 try_files $uri $uri/ =404;  
 }  
  
 # 127.0.0.1:9000 で待機している FastCGI サーバーに PHP スクリプトを渡します  
 #  
 location ~ \.php$ {  
 include snippets/fastcgi-php.conf;  
   
 # # php5-cgi のみの場合:  
 # fastcgi_pass 127.0.0.1:9000;  
 # php5-fpm の場合:  
 fastcgi_pass unix:/var/run/php5-fpm.sock;  
 }  
  
 # Apache のドキュメントルートと nginx のドキュメントルートが一致する場合、  
 # .htaccess ファイルへのアクセスを拒否します  
 #  
 location ~ \.ht {  
 deny all;  
 }  
}
[...]  

servername ; はこれをデフォルトのキャッチオール vhost にします(もちろん、ここに www.example.com のようなホスト名を指定することもできます)。

index.php をインデックス行に追加しました。root /var/www/html; はドキュメントルートが /var/www/html ディレクトリであることを意味します。

PHP にとって重要な部分は location ~ .php$ {} スタンスです。上記のようにコメントを外して有効にします。

ファイルを保存して Nginx をリロードします:

systemctl reload nginx.service

次に、/etc/php5/fpm/php.ini を開きます…

nano /etc/php5/fpm/php.ini

… そして cgi.fix_pathinfo=0 を設定します:

[...]  
; cgi.fix_pathinfo は CGI に対して *実際の* PATH_INFO/PATH_TRANSLATED サポートを提供します。PHP の  
; 以前の動作は PATH_TRANSLATED を SCRIPT_FILENAME に設定し、  
; PATH_INFO が何であるかを理解しませんでした。  
; PATH_INFO についての詳細は cgi スペックを参照してください。  
; これを 1 に設定すると、PHP CGI はそのパスを仕様に合わせて修正します。  
; ゼロに設定すると、PHP は以前のように動作します。デフォルトは 1 です。  
; スクリプトを修正して PATH_TRANSLATED ではなく SCRIPT_FILENAME を使用する必要があります。  
; http://php.net/cgi.fix-pathinfo  
cgi.fix_pathinfo=0
[...]  

PHP-FPM をリロードします:

systemctl reload php5-fpm.service

次に、ドキュメントルート /var/www/html/ に次の PHP ファイルを作成します:

nano /var/www/html/info.php

ブラウザでそのファイルを呼び出します(例:http://192.168.1.100/info.php):

PHP 情報。

ご覧の通り、PHP5 は動作しており、FPM/FastCGI を通じて動作しています。サーバー API 行に示されています。さらに下にスクロールすると、PHP5 ですでに有効になっているすべてのモジュールが表示されます。MySQL はそこにリストされていないため、PHP にはまだ MariaDB / MySQL サポートがありません。

PHP で MySQL / MariaDB サポートを取得する

PHP で MySQL サポートを取得するために、php5-mysqlnd パッケージをインストールできます。アプリケーションに必要な他の PHP モジュールもインストールすることをお勧めします。利用可能な PHP モジュールを次のように検索できます:

apt-cache search php5

必要なものを選択して、次のようにインストールします:

apt-get -y install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-intl php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

APCu は、PHP 中間コードをキャッシュおよび最適化するための無料でオープンな PHP オペコードキャッシャーで、PHP opcache を拡張します。APC キャッシュを置き換え、eAccelerator や Xcache などの他の PHP オペコードキャッシャーと似ています。PHP ページの速度を向上させるために、これらのいずれかをインストールすることを強くお勧めします。

APCu は次のようにインストールできます:

apt-get install php5-apcu

次に PHP-FPM をリロードします:

systemctl reload php5-fpm.service

ブラウザで http://192.168.1.100/info.php をリロードし、再度モジュールセクションまでスクロールします。そこには MySQL モジュールを含む多くの新しいモジュールが見つかるはずです:

MySQL を含む PHP 情報。

PHP-FPM を TCP 接続で使用する(オプション)

デフォルトでは、PHP-FPM は /var/run/php5-fpm.sock ソケットで待機しています。PHP-FPM を TCP 接続で使用することも可能です。そのためには、/etc/php5/fpm/pool.d/www.conf を開きます…

nano /etc/php5/fpm/pool.d/www.conf

… そして listen 行を次のようにします:

[...]  
;listen = /var/run/php5-fpm.sock  
listen = 127.0.0.1:9000  
[...]  

これにより、PHP-FPM は IP 127.0.0.1(localhost)のポート 9000 で待機します。システムで使用されていないポートを使用してください。

次に、PHP-FPM をリロードします:

systemctl reload php5-fpm.service

次に、nginx の設定とすべての vhosts を確認し、行 fastcgi_pass unix:/var/run/php5-fpm.sock; を fastcgi_pass 127.0.0.1:9000; に変更します。例えば、次のようにします:

nano /etc/nginx/sites-available/default
[...]  
 location ~ \.php$ {  
   include snippets/fastcgi-php.conf;  
  
   # # php5-cgi のみの場合:  
   # fastcgi_pass 127.0.0.1:9000;  
   # # php5-fpm の場合:  
   # fastcgi_pass unix:/var/run/php5-fpm.sock;  
   fastcgi_pass 127.0.0.1:9000;  
 }
[...]  

最後に、Nginx をリロードします:

systemctl reload nginx.service

仮想マシンイメージ

このチュートリアルは、Howtoforge のサブスクライバー向けに OVA / OVF 形式の使用可能な仮想マシンとして提供されています。VM 形式は VMWare や Virtualbox など、この形式をインポートできる他のツールと互換性があります。ダウンロードリンクは右メニューの上部にあります。ファイル名をクリックしてダウンロードを開始します。

VM のログイン詳細は次のとおりです:

SSH ログイン

ユーザー名:root
パスワード:howtoforge

MariaDB ログイン

ユーザー名:root
パスワード:howtoforge

最初の起動後にパスワードを変更してください。

VM は静的 IP 192.168.1.100 に設定されており、IP は /etc/network/interfaces ファイルで変更できます。

リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。