サーバー設定 · 1 min read · Jan 23, 2026

Ubuntu/Debian に PHP 5.3、Nginx および PHP-fpm をインストールする

Ubuntu/Debian に PHP 5.3、Nginx および PHP-fpm をインストールする

バージョン 1.1
Twitterでフォローしてください

Apache はほとんどの場合メモリを多く消費するプロセスであるため、人々はウェブサイトをホストするための異なる方法を探し始めました。Apache は明らかに利用可能な唯一のウェブサーバーではありません。良い例としては lighttpd と nginx があります。このチュートリアルでは、Ubuntu サーバーにそれをインストールする方法を示します。このチュートリアルは Debian にも適用されますが、非常に小さな違いがあります。

準備はいいですか?始めましょう。

ステップ 0 - 前提条件

このチュートリアルを完了するためには、Debian または Ubuntu のベースシステムをインストールしていることを前提としています。これがどのように行われるかは、さまざまなチュートリアルで読むことができます。このチュートリアルは、あまり手間をかけずに nginx+php を実行することに焦点を当てています。

ステップ 1 - Nginx

Nginx をインストールすることが最初のステップです。これはリポジトリから簡単にダウンロードできます。

sudo apt-get install nginx

デフォルトの vhost は正しく動作するように変更する必要があります。

sudo vim /etc/nginx/sites-available/default

設定の良い出発点は次のとおりです。

server {
    listen   80;
    server_name  localhost;
    access_log  /var/log/nginx/localhost.access.log;

## デフォルトの場所
    location / {
        root   /var/www;
        index  index.php;
    }

## 画像と静的コンテンツは異なる扱いをされる
    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
      access_log        off;
      expires           30d;
      root /var/www;
    }

## /var/www ディレクトリ内のすべての .php ファイルを解析する
    location ~ .php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }

## .htaccess と .htpassword の表示を無効にする
    location ~ /\.ht {
        deny  all;
    }
}  
upstream backend {  
        server 127.0.0.1:9000;  
}  
 

さて、これで完了です。次に PHP に必要なファイルをインストールします。

ステップ 2 - PHP のインストール

多くのサイトは、ウィキ、フォーラムソフトウェア、ウェブログ、またはまったく異なる何かを提供するために PHP に依存しています。

Ubuntu を実行している場合、まず dotdeb パッケージに必要な 2 つの依存関係を解決する必要があります。amd64 バージョンを実行している場合は、i386 を amd64 に置き換える必要があります。

Debian を実行している場合は、これを行う必要はありません!

cd /tmp
wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb
wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb
sudo dpkg -i *.deb

再度、これは Ubuntu の場合のみ 必要です。

チュートリアルの残りの部分は Ubuntu と Debian の両方に適用されます。

dotdeb リポジトリを APT ソースに追加する必要がありますので、PHP 5.3 と php-fpm のパッケージを使用できるようにします。

sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list

apt を更新します。

sudo apt-get update

結果のテキストには dotdeb が含まれているはずです。

次に PHP をインストールします(パート 1):

sudo apt-get install php5-cli php5-common php5-suhosin

残りをインストールする前に cli をインストールする必要があります。これを行わないと、後で問題が発生します。

sudo apt-get install php5-fpm php5-cgi

データベースを使用する予定がある場合や、特定のモジュール(mcrypt、ldap、snmp など)が必要な場合は、それらもインストールできます。

さて、これで nginx と PHP がインストールされました。

1 つの小さな注意点:”php short tags”(

ステップ 3 - 最終調整

以前に行った設定変更を反映させるために nginx を再起動します。

sudo /etc/init.d/nginx restart

再起動は問題なく行われるはずです。

php5-fpm をインストールした後、起動しているはずです。php.ini ファイルを変更した場合は、php5-fpm を再起動する必要があります。

sudo /etc/init.d/php5-fpm restart

すべて順調です。両方とも今は動作しているはずです。

ステップ 4 - テスト

PHP の実行が機能しているかどうかをテストするために、/var/www に次の内容の index.php ファイルを作成します。

ウェブサーバーにアクセスすると、生成された phpinfo が表示されるはずです。表示されない場合は、何かがうまくいっていません。

ステップ 5 - トラブルシューティングと最終注意事項

phpinfo が表示されない場合、何かが間違っている可能性があります。何が間違っているかを追跡するために、nginx エラーログを確認できます。

sudo tail /var/log/nginx/error.log

php.ini を変更した場合は、php5-fpm を再起動する必要があることを忘れないでください。nginx を再起動する必要はありません。

私の例の設定では、fastcgi エラーのインターセプトを有効にしています。深刻なエラーが発生した場合(たとえば「クラス xyz を再宣言できません」)、nginx はこのページをキャッチして、何かが間違っていることを示す「良い」エラーページを表示できます。この方法では、何かが深刻に間違っている場合に提供される情報が少なくなります。

これが気に入らない場合は、オフにすることができます。

php5-fpm が実行されていない場合、PHP ファイルは解析されず、nginx はユーザーにエラーページを表示します。

さて、これで完了です。新しい nginx ベースのウェブサーバーで PHP を提供できるようになりました。Nginx は非常に優れており、多くの設定が可能です。リライトが必要な場合、nginx は .htaccess ファイルでは動作しないことに注意してください。リライトが機能するように vhost 設定を変更する必要があります。

Share: X/Twitter LinkedIn

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

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