サーバー設定 · 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 /tmpwget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.debwget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.debsudo 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.listapt を更新します。
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”( )を使用している場合は、php.ini ファイル(fpm と cli の両方)でそれらを有効にする必要があります。これを変更しないと、コードがプレーンテキストで表示されます!
ステップ 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.logphp.ini を変更した場合は、php5-fpm を再起動する必要があることを忘れないでください。nginx を再起動する必要はありません。
私の例の設定では、fastcgi エラーのインターセプトを有効にしています。深刻なエラーが発生した場合(たとえば「クラス xyz を再宣言できません」)、nginx はこのページをキャッチして、何かが間違っていることを示す「良い」エラーページを表示できます。この方法では、何かが深刻に間違っている場合に提供される情報が少なくなります。
これが気に入らない場合は、オフにすることができます。
php5-fpm が実行されていない場合、PHP ファイルは解析されず、nginx はユーザーにエラーページを表示します。
さて、これで完了です。新しい nginx ベースのウェブサーバーで PHP を提供できるようになりました。Nginx は非常に優れており、多くの設定が可能です。リライトが必要な場合、nginx は .htaccess ファイルでは動作しないことに注意してください。リライトが機能するように vhost 設定を変更する必要があります。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。