Nginx インストール · 2 min read · Jan 23, 2026
Debian Wheezy における PHP5 (および PHP-FPM) と MySQL サポート (LEMP) を使用した Nginx のインストール
Nginx (発音は「エンジン エックス」) は、無料でオープンソースの高性能 HTTP サーバーです。Nginx は、その安定性、豊富な機能セット、シンプルな設定、低リソース消費で知られています。このチュートリアルでは、PHP5 サポート (PHP-FPM 経由) と MySQL サポート (LEMP = Linux + nginx (発音は「 e ngine x」) + MySQL + PHP) を備えた Debian Wheezy サーバーに Nginx をインストールする方法を示します。
私はこれがあなたにとって機能するという保証はしません!
1 前提条件
このチュートリアルでは、ホスト名 server1.example.com と IP アドレス 192.168.0.100 を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換える必要があります。
2 MySQL 5 のインストール
MySQL をインストールするために、次のコマンドを実行します。
apt-get install mysql-server mysql-clientMySQL の root ユーザーのパスワードを提供するように求められます。このパスワードは、ユーザー root@localhost および [email protected] に対して有効ですので、後で手動で MySQL の root パスワードを指定する必要はありません。
MySQL “root” ユーザーの新しいパスワード: <– yourrootsqlpassword
MySQL “root” ユーザーのパスワードを再入力してください: <– yourrootsqlpassword
3 Nginx のインストール
Nginx は Debian Wheezy 用のパッケージとして利用可能で、次のようにインストールできます。
apt-get install nginxその後、nginx を起動します。
/etc/init.d/nginx startブラウザにウェブサーバーの IP アドレスまたはホスト名を入力します (例: http://192.168.0.100)、次のページが表示されるはずです。

Debian Wheezy のデフォルトの nginx ドキュメントルートは /usr/share/nginx/www です。
4 PHP5 のインストール
PHP-FPM (PHP-FPM (FastCGI Process Manager) は、あらゆる規模のサイト、特に忙しいサイトに役立つ追加機能を備えた代替 PHP FastCGI 実装) を通じて nginx で PHP5 を動作させることができます。次のようにインストールします。
apt-get install php5-fpmPHP-FPM は、ソケット /var/run/php5-fpm.sock で FastCGI サーバーを実行するデーモンプロセスです (init スクリプトは /etc/init.d/php5-fpm です)。
5 nginx の設定
nginx の設定は /etc/nginx/nginx.conf にあり、これを開きます。
vi /etc/nginx/nginx.conf設定は理解しやすいです (詳細については、こちらを参照してください: http://wiki.nginx.org/NginxFullExample およびこちら: http://wiki.nginx.org/NginxFullExample2)
まず (これはオプションです)、ワーカープロセスの数を調整し、keepalive_timeout を適切な値に設定します。
| [...] worker_processes 4; [...] keepalive_timeout 2; [...] |
仮想ホストは server {} コンテナ内で定義されます。デフォルトの vhost は /etc/nginx/sites-available/default ファイルで定義されています - 次のように修正します。
vi /etc/nginx/sites-available/default| [...] server { listen 80; ## listen for ipv4; this line is default and implied listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /usr/share/nginx/www; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; allow ::1; deny all; } # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests #location /RequestDenied { # proxy_pass http://127.0.0.1:8080; #} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: #fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } [...] |
両方の listen 行のコメントを解除して、nginx がポート 80 の IPv4 および IPv6 をリッスンするようにします。
servername ; は、これをデフォルトのキャッチオール vhost にします (もちろん、ここに www.example.com のようなホスト名を指定することもできます)。
index.php を index 行に追加しました。root /usr/share/nginx/www; は、ドキュメントルートが /usr/share/nginx/www ディレクトリであることを意味します。
PHP にとって重要な部分は location ~ .php$ {} ステanza です。これを有効にするためにコメントを解除してください。ゼロデイ攻撃を防ぐために try_files $uri =404; 行を追加したことに注意してください (http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP および http://forum.nginx.org/read.php?2,88845,page=3 を参照)。
ファイルを保存して nginx をリロードします。
/etc/init.d/nginx reload次に、/etc/php5/fpm/php.ini を開きます…
vi /etc/php5/fpm/php.ini… そして cgi.fix_pathinfo=0 を設定します。
| [...] ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |
PHP-FPM をリロードします。
/etc/init.d/php5-fpm reload次に、ドキュメントルート /usr/share/nginx/www に次の PHP ファイルを作成します。
vi /usr/share/nginx/www/info.php| |
次に、そのファイルをブラウザで呼び出します (例: http://192.168.0.100/info.php):

ご覧のとおり、PHP5 は動作しており、FPM/FastCGI を通じて動作しています。Server API 行に示されています。さらに下にスクロールすると、すでに PHP5 で有効になっているすべてのモジュールが表示されます。MySQL はそこにリストされていないため、PHP5 にはまだ MySQL サポートがありません。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。