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

Ubuntu 12.04 LTSでApache2とPHP5-FPMを使用する

Ubuntu 12.04 LTSでApache2とPHP5-FPMを使用する

バージョン 1.0
著者: Falko Timme
Twitterでフォローしてください

このチュートリアルでは、PHP5(PHP-FPMを通じて)とMySQLサポートを備えたUbuntu 12.04 LTSサーバーにApache2ウェブサーバーをインストールする方法を示します。PHP-FPM(FastCGIプロセスマネージャー)は、特に忙しいサイトに便利な追加機能を備えた代替PHP FastCGI実装です。

これがあなたにとって機能するという保証はありません!

1 前提条件

このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.0.100を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。

すべての手順をroot権限で実行しているので、rootとしてログインしていることを確認してください:

sudo su

2 MySQL 5のインストール

まず、次のようにMySQL 5をインストールします:

apt-get install mysql-server mysql-client

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

MySQL “root”ユーザーの新しいパスワード: <– yourrootsqlpassword
MySQL “root”ユーザーのパスワードを再入力: <– yourrootsqlpassword

3 Apache2のインストール

Apache2はUbuntuパッケージとして利用可能です。apache2-mpm-workerパッケージが必要で、次のようにインストールできます:

apt-get install apache2-mpm-worker

次に、ブラウザをhttp://192.168.0.100に向けると、Apache2のプレースホルダーページ(動作しています!)が表示されるはずです:

Apacheのデフォルトのドキュメントルートは/var/wwwで、設定ファイルは/etc/apache2/apache2.confです。追加の設定は、/etc/apache2ディレクトリのサブディレクトリに格納されており、/etc/apache2/mods-enabled(Apacheモジュール用)、/etc/apache2/sites-enabled(仮想ホスト用)、/etc/apache2/conf.dにあります。

4 PHP5のインストール

PHP-FPMとApacheのmod_fastcgiモジュールを通じてApache2でPHP5を動作させることができます。次のようにインストールします:

apt-get install libapache2-mod-fastcgi php5-fpm php5

PHP-FPMは、ポート9000でFastCGIサーバーを実行するデーモンプロセスです(initスクリプトは/etc/init.d/php5-fpm)。

次に、以下のApacheモジュールを有効にします…

a2enmod actions fastcgi alias

… そしてApacheを再起動します:

/etc/init.d/apache2 restart

5 Apacheの設定

ApacheがPHP-FPMと連携するようにするために、次の設定が必要です:

| AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization |

(FastCgiExternalServerディレクティブの詳細については、http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServerを参照してください。)

これをグローバルApache設定に配置することができます(すべてのvhostに対して有効にするため)、たとえば/etc/apache2/conf.d/php5-fpm.confに(このファイルは存在しないため、作成する必要があります)、またはPHP-FPMを使用する必要がある各vhostに配置できます。デフォルトのvhostでPHP-FPMを使用したいので、vhost設定ファイル/etc/apache2/sites-available/defaultを開きます…

vi /etc/apache2/sites-available/default

… そして以下のセクションをの間に配置します:

| [...] AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization [...] |

その後、Apacheを再起動します:

/etc/init.d/apache2 restart

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

vi /var/www/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

次に、PHP-FPMを再読み込みします:

/etc/init.d/php5-fpm reload

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

7 phpMyAdmin

phpMyAdminは、MySQLデータベースを管理するためのWebインターフェースです。インストールすることをお勧めします:

apt-get install phpmyadmin

次の質問が表示されます:

自動的に再構成するWebサーバー: <– apache2
phpmyadminのデータベースをdbconfig-commonで構成しますか? <– いいえ

その後、http://192.168.0.100/phpmyadmin/でphpMyAdminにアクセスできます:

8 PHP-FPMをUnixソケットで使用する

デフォルトでは、PHP-FPMは127.0.0.1のポート9000でリッスンしています。TCPオーバーヘッドを回避するために、PHP-FPMをUnixソケットで使用することも可能です。これを行うには、/etc/php5/fpm/pool.d/www.confを開きます…

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

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

| [...] ;listen = 127.0.0.1:9000 listen = /tmp/php5-fpm.sock [...] |

その後、PHP-FPMを再読み込みします:

/etc/init.d/php5-fpm reload

次に、Apacheの設定とすべてのvhostを確認し、行FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header AuthorizationをFastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorizationに変更します。例えば、次のようにします:

vi /etc/apache2/sites-available/default

| [...] AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization [...] |

最後にApacheを再読み込みします:

/etc/init.d/apache2 reload

9 リンク

著者について

Falko TimmeはTimme Hosting(超高速nginxウェブホスティング)のオーナーです。彼はHowtoForgeのリードメンテイナー(2005年から)であり、ISPConfigのコア開発者の一人(2000年から)でもあります。彼はまた、O’Reillyの書籍「Linux System Administration」にも貢献しています。

Share: X/Twitter LinkedIn

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

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