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

Ubuntu 14.04 のデフォルトの nginx ドキュメントルートは /usr/share/nginx/html です。
4 PHP5 のインストール
PHP-FPM (PHP-FPM (FastCGI プロセスマネージャ) は、あらゆるサイズのサイト、特に忙しいサイトに便利な追加機能を持つ PHP FastCGI の代替実装です) を通じて nginx で PHP5 を動作させることができます。次のようにインストールします:
apt-get install php5-fpm
PHP-FPM は、ソケット /var/run/php5-fpm.sock で FastCGI サーバーを実行するデーモンプロセス (init スクリプト 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 [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; # http://localhost/ からサイトにアクセスできるようにする server_name _; location / { # 最初にリクエストをファイルとして提供しようとし、次に # ディレクトリとして、最後に 404 を表示します。 try_files $uri $uri/ /index.html; # この場所で naxsi を有効にするにはコメントを外します # include /etc/nginx/naxsi.rules } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; allow ::1; deny all; } # nginx-naxsi-ui と一緒に使用される nginx-naxsi のみ: 拒否されたリクエストを処理します #location /RequestDenied { # proxy_pass http://127.0.0.1:8080; #} #error_page 404 /404.html; # サーバーエラーページを静的ページ /50x.html にリダイレクトします # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # PHP スクリプトを 127.0.0.1:9000 でリッスンしている FastCGI サーバーに渡します # location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: php.ini に "cgi.fix_pathinfo = 0;" を設定する必要があります # php5-cgi のみで: #fastcgi_pass 127.0.0.1:9000; # php5-fpm で: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } # Apache のドキュメントルートが nginx のものと一致する場合、.htaccess ファイルへのアクセスを拒否します # location ~ \/\.ht { deny all; } } [...] |
両方の listen 行のコメントを外して、nginx がポート 80 の IPv4 および IPv6 をリッスンするようにします。
servername ; は、これをデフォルトのキャッチオール vhost にします (もちろん、ここに www.example.com のようなホスト名を指定することもできます)。
index.php を index 行に追加しました。root /usr/share/nginx/html; は、ドキュメントルートが /usr/share/nginx/html ディレクトリであることを意味します。
PHP にとって重要な部分は location ~ .php$ {} スタンスです。これを有効にするためにコメントを外してください。ゼロデイ攻撃を防ぐために、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 をリロードします:
service nginx reload
次に、/etc/php5/fpm/php.ini を開きます…
vi /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 がそのパスをスペックに従って修正します。0 に設定すると、PHP は以前のように動作します。デフォルトは 1 です。スクリプトを修正して SCRIPT_FILENAME を使用する必要があります。 ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |
PHP-FPM をリロードします:
service php5-fpm reload
次に、ドキュメントルート /usr/share/nginx/html に次の PHP ファイルを作成します:
vi /usr/share/nginx/html/info.php
| |
ブラウザでそのファイルを呼び出します (例: http://192.168.0.100/info.php):

ご覧の通り、PHP5 は動作しており、FPM/FastCGI 経由で動作しています。サーバー API 行に示されています。さらに下にスクロールすると、PHP5 ですでに有効になっているすべてのモジュールが表示されます。MySQL はそこにリストされていないため、PHP5 にはまだ MySQL サポートがありません。
6 PHP5 に MySQL サポートを追加する
PHP に MySQL サポートを追加するには、php5-mysql パッケージをインストールします。また、アプリケーションに必要な他の PHP5 モジュールもインストールすることをお勧めします。次のようにして利用可能な PHP5 モジュールを検索できます:
apt-cache search php5
必要なものを選択し、次のようにインストールします:
apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
APC は、PHP 中間コードをキャッシュおよび最適化するための無料でオープンな PHP オペコードキャッシャーです。他の PHP オペコードキャッシャー、eAccelerator や Xcache と似ています。PHP ページの速度を上げるために、これらのいずれかをインストールすることを強くお勧めします。
APC は次のようにインストールできます:
apt-get install php-apc
次に PHP-FPM をリロードします:
service php5-fpm reload
ブラウザで http://192.168.0.100/info.php をリロードし、再度モジュールセクションまでスクロールします。そこには、MySQL モジュールを含む多くの新しいモジュールが見つかるはずです:
7 PHP-FPM を TCP 接続で使用する
デフォルトでは、PHP-FPM はソケット /var/run/php5-fpm.sock でリッスンしています。また、PHP-FPM を TCP 接続で使用することも可能です。そのためには、/etc/php5/fpm/pool.d/www.conf を開きます…
vi /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 をリロードします:
php5-fpm reload
次に、nginx の設定とすべての vhost を確認し、行 fastcgi_pass unix:/var/run/php5-fpm.sock; を fastcgi_pass 127.0.0.1:9000; に変更します。例えば、次のようにします:
vi /etc/nginx/sites-available/default
| [...] location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: php.ini に "cgi.fix_pathinfo = 0;" を設定する必要があります # php5-cgi のみで: fastcgi_pass 127.0.0.1:9000; # php5-fpm で: #fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } [...] |
最後に nginx をリロードします:
service nginx reload
8 CGI/Perl スクリプト
nginx で CGI/Perl スクリプトを提供したい場合は、次のチュートリアルをお読みください: Debian Squeeze/Ubuntu 11.04 での CGI スクリプトの提供
推奨される方法は fcgiwrap を使用することです (第 4 章)。
9 リンク
- nginx: http://nginx.net/
- nginx Wiki: http://wiki.codemongers.com/Main
- PHP: http://www.php.net/
- PHP-FPM: http://php-fpm.org/
- MySQL: http://www.mysql.com/
- Ubuntu: http://www.ubuntu.com/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。