Webサーバー · 2 min read · Dec 23, 2025

Ubuntu 15.04におけるPHP(PHP-FPMモード)とMySQLまたはMariaDBを使用したLighttpdのインストール

Lighttpdは、安全で高速、標準準拠のウェブサーバーで、速度が重要な環境向けに設計されています。このチュートリアルでは、PHPサポート(PHP-FPMを通じて)とMySQLを使用して、Ubuntu 15.04サーバーにLighttpdをインストールする方法を示します。PHP-FPM(FastCGIプロセスマネージャー)は、特に忙しいサイトに便利な追加機能を持つ代替PHP FastCGI実装です。このチュートリアルでは、Lighttpdのspawn-fcgiの代わりにPHP-FPMを使用します。

1 前提条件

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

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

sudo su

2 MySQL / MariaDBのインストール

Ubuntuは、オリジナルのMySQLデータベースサーバー(MySQL 5.6)とMySQLのフォークであるMariaDB(10)のパッケージを提供しています。今日ではほとんどのユーザーがMariaDBを使用しています。MariaDBはMySQLよりも少し速く、開発が進んでいるためです。ここで何をインストールするかの決定はあなたに任せます。2.1または2.2のいずれかの手順に従ってください。

2.1 MySQLのインストール

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

apt-get -y install mysql-server-5.6 mysql-client-5.6

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

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

2.2 MariaDBのインストール

MariaDBを次のようにインストールします:

apt-get -y install mariadb-server mariadb-client

次に、MariaDBのrootパスワードを設定します。

mysql_secure_installation

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

Enter current password for root (enter for none): <-- press enter  
Set root password? [Y/n] <-- y  
New password: <-- Enter the new MariaDB root password here  
Re-enter new password: <-- Repeat the password  
Remove anonymous users? [Y/n] <-- y  
Disallow root login remotely? [Y/n] <-- y  
Reload privilege tables now? [Y/n] <-- y

3 Lighttpdのインストール

LighttpdはUbuntuパッケージとして利用可能ですので、次のようにインストールできます:

apt-get -y install lighttpd

ブラウザをhttp://192.168.1.100/index.lighttpd.htmlに向けると、Lighttpdのプレースホルダーページが表示されるはずです:

LighttpdのデフォルトのドキュメントルートはUbuntuでは/var/www/htmlで、設定ファイルは/etc/lighttpd/lighttpd.confです。追加の設定は/etc/lighttpd/conf-availableディレクトリ内のファイルに保存されており、これらの設定はlighttpd-enable-modコマンドを使用して有効にできます。このコマンドは、/etc/lighttpd/conf-enabledディレクトリから/etc/lighttpd/conf-available内の適切な設定ファイルへのシンボリックリンクを作成します。lighttpd-disable-modコマンドを使用して設定を無効にすることもできます。

4 PHP 5のインストール

PHP5をLighttpdで動作させるために、次のようにPHP-FPMをインストールします:

apt-get -y install php5-fpm php5

PHP-FPMは、/var/run/php5-fpm.sockソケット上でFastCGIサーバーを実行するデーモンプロセスです(initスクリプトは/etc/init.d/php5-fpmです)。

5 LighttpdとPHP 5の設定

LighttpdでPHP5を有効にするには、/etc/php5/fpm/php.iniを修正し、cgi.fix_pathinfo=1の行のコメントを外す必要があります:

nano /etc/php5/fpm/php.ini
[...]
; cgi.fix_pathinfoはCGIのための*実際の* PATH_INFO/PATH_TRANSLATEDサポートを提供します。PHPの以前の動作は、PATH_TRANSLATEDをSCRIPT_FILENAMEに設定し、PATH_INFOが何であるかを理解しないことでした。PATH_INFOの詳細については、cgi仕様を参照してください。これを1に設定すると、PHP CGIは仕様に従ってパスを修正します。ゼロに設定すると、PHPは以前のように動作します。デフォルトは1です。スクリプトをSCRIPT_FILENAMEを使用するように修正する必要があります。
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]

PHP用のLighttpd設定ファイル/etc/lighttpd/conf-available/15-fastcgi-php.confはspawn-fcgiと一緒に使用するのに適していますが、PHP-FPMを使用したいので、ファイルのバックアップ(15-fastcgi-php-spawnfcgi.confという名前)を作成し、15-fastcgi-php.confを次のように修正します:

cd /etc/lighttpd/conf-available/  
cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf  
nano 15-fastcgi-php.conf
# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## PHP用のFastCGIサーバーを開始します(php5-cgiパッケージが必要です)
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/var/run/php5-fpm.sock",
                "broken-scriptfilename" => "enable"
        ))
)

fastcgi設定を有効にするには、次のコマンドを実行します:

lighttpd-enable-mod fastcgi  
lighttpd-enable-mod fastcgi-php

これにより、/etc/lighttpd/conf-enabled/10-fastcgi.confが/etc/lighttpd/conf-available/10-fastcgi.confを指すシンボリックリンクとして作成され、/etc/lighttpd/conf-enabled/15-fastcgi-php.confが/etc/lighttpd/conf-available/15-fastcgi-php.confを指すシンボリックリンクとして作成されます:

ls -l /etc/lighttpd/conf-enabled
root@server1:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled  
total 0  
lrwxrwxrwx 1 root root 33 Sep 29 18:28 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf  
lrwxrwxrwx 1 root root 37 Sep 29 18:28 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

次にLighttpdを再読み込みします:

service lighttpd force-reload

6 PHP5のテスト / PHP5インストールの詳細を取得

デフォルトのウェブサイトのドキュメントルートは/var/www/htmlです。今、そのディレクトリに小さなPHPファイル(info.php)を作成し、ブラウザで呼び出します。このファイルは、インストールされているPHPバージョンなど、PHPインストールに関する多くの有用な詳細を表示します。

nano /var/www/html/info.php

今、そのファイルをブラウザで呼び出します(例:http://192.168.1.100/info.php):

ご覧の通り、PHP 5.6が動作しており、Server API行に示されているようにFPM/FastCGIを介して動作しています。さらに下にスクロールすると、PHP5で既に有効になっているすべてのモジュールが表示されます。MySQLはそこにリストされていないため、PHPにはまだMySQLサポートがありません。

7 PHP5でのMySQLサポートの取得

PHPでMySQLサポートを得るために、php5-mysqlndパッケージをインストールできます。これは、MySQLとMariaDBの両方をサポートする新しいMySQLドライバーを含んでいるため、php5-mysqlパッケージよりも推奨されます。また、アプリケーションに必要な他のPHP5モジュールもインストールすることをお勧めします。利用可能なPHP5モジュールを次のように検索できます:

apt-cache search php5

必要なものを選択し、次のようにインストールします:

apt-get -y install php5-mysqlnd 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

Xcacheは、PHP中間コードをキャッシュおよび最適化するための無料でオープンなPHPオペコードキャッシャーです。他のPHPオペコードキャッシャー(eAcceleratorやAPCなど)と似ています。PHPページの速度を向上させるために、これらのいずれかをインストールすることを強くお勧めします。

Xcacheは次のようにインストールできます:

apt-get -y install php5-xcache

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

service php5-fpm reload

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

8 phpMyAdmin

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

apt-get -y install phpmyadmin

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

自動的に再構成するウェブサーバー: <– lighttpd
phpmyadminのためにdbconfig-commonでデータベースを構成しますか? <– yes

データベースの管理ユーザーのパスワード: <-- MySQL/MariaDBのrootパスワードを入力  
phpmyadminのMySQLアプリケーションパスワード: <-- ENTERを押す  

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

9 PHP-FPMをTCP接続で使用する(オプション)

デフォルトでは、PHP-FPMはソケット/var/run/php5-fpm.sockでリッスンしています。PHP-FPMをTCP接続で使用することも可能です。これを行うには、/etc/php5/fpm/pool.d/www.confを開きます…

nano /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を再読み込みします:

service php5-fpm reload

次に、LighttpdのPHP設定ファイル/etc/lighttpd/conf-available/15-fastcgi-php.confを開き、ソケット行をホストおよびポート行に置き換えます:

nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## PHP用のFastCGIサーバーを開始します(php5-cgiパッケージが必要です)
fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

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

service lighttpd force-reload

10 リンク

Share: X/Twitter LinkedIn

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

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