サーバー設定 · 2 min read · Oct 31, 2025

Ubuntu 16.04 LTSにPHP 7(PHP-FPM)とMySQL 5.7を使用してLighttpdをインストールする

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

1 前提条件

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

私はこのチュートリアルのすべての手順をroot権限で実行していますので、rootとしてログインしていることを確認してください:

sudo -s

2 MySQL 5.7のインストール

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

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

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

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

MySQLパスワードを入力します。

インストーラーはMySQLのrootパスワードを設定しましたが、安全なMySQLインストールのために変更すべき設定がいくつかあります。これはmysql_secure_installationコマンドで行うことができます。

mysql_secure_installation

コマンドは対話式です:

root@server1:~# mysql_secure_installation
MySQLサーバーのデプロイメントを保護しています。
ユーザーrootのパスワードを入力してください: <-- MySQLのrootパスワードを入力
VALIDATE PASSWORD PLUGINを使用してパスワードをテストし、セキュリティを向上させることができます。パスワードの強度をチェックし、ユーザーが十分に安全なパスワードのみを設定できるようにします。VALIDATE PASSWORDプラグインを設定しますか?
y|Yを押してはい、他のキーを押していいえ: <-- この機能を希望する場合はyを押すか、そうでない場合はEnterを押します。  
既存のパスワードを使用しています。  
rootのパスワードを変更しますか? ((y|Yを押してはい、他のキーを押していいえ): <-- Enterを押す
... スキップ中。  
デフォルトでは、MySQLインストールには匿名ユーザーが含まれており、誰でもユーザーアカウントを作成せずにMySQLにログインできます。これはテスト用にのみ意図されており、インストールを少しスムーズにするためのものです。  
本番環境に移行する前に、これらを削除する必要があります。
匿名ユーザーを削除しますか? (y|Yを押してはい、他のキーを押していいえ): <-- y  
成功。

通常、rootは'localhost'からのみ接続を許可されるべきです。これにより、誰かがネットワークからrootパスワードを推測できないようになります。
リモートでのrootログインを禁止しますか? (y|Yを押してはい、他のキーを押していいえ): <-- y  
成功。
デフォルトでは、MySQLには誰でもアクセスできる'test'という名前のデータベースが含まれています。これもテスト用にのみ意図されており、本番環境に移行する前に削除する必要があります。

テストデータベースとそのアクセスを削除しますか? (y|Yを押してはい、他のキーを押していいえ): <-- y  
- テストデータベースを削除中...  
成功。
- テストデータベースの権限を削除中...  
成功。
権限テーブルを再読み込みすることで、これまでに行ったすべての変更が即座に有効になります。
権限テーブルを今すぐ再読み込みしますか? (y|Yを押してはい、他のキーを押していいえ): <-- y  
成功。
すべて完了!

3 Lighttpdのインストール

LighttpdはUbuntuパッケージとして利用可能です。したがって、Ubuntu Xenial Xerusパッケージリポジトリからaptを使用して直接インストールできます:

apt-get -y install lighttpd

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

Ubuntu 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 7.0のインストール

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

apt-get -y install php7.0-fpm php7.0

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

5 LighttpdとPHP 7.0の設定

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

nano /etc/php/7.0/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
[...]

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

cd /etc/lighttpd/conf-available/  
cp 15-fastcgi-php.conf 15-fastcgi-php.conf.bak  
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サーバーを開始します(php7.0-cgiパッケージが必要)
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/var/run/php/php7.0-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 Apr 27 11:26 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf  
lrwxrwxrwx 1 root root 37 Apr 27 11:26 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf  
lrwxrwxrwx 1 root root 42 Apr 21 11:10 90-javascript-alias.conf -> ../conf-available/90-javascript-alias.conf  
root@server1:/etc/lighttpd/conf-available#

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

service lighttpd force-reload

注意: ロケールエラーが発生した場合は、次のコマンドを使用してエラーを削除できます。

apt-get -y install language-pack-en-base  

dpkg-reconfigure locales

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

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

nano /var/www/html/info.php

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

Lighttpd上のPHP情報。

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

7 PHPでMySQLサポートを取得

PHPでMySQLサポートを取得するには、php7.0-mysqlパッケージをインストールできます。アプリケーションに必要な他のPHPモジュールもインストールすることをお勧めします。利用可能なPHPモジュールを次のように検索できます:

apt-cache search php7.0

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

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache  php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext

APCuは、PHP 7に付属するPHP Opcacheモジュールの拡張機能で、APCキャッシュをサポートするソフトウェア(例: Wordpressキャッシュプラグイン)に対していくつかの互換性機能を追加します。

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

apt-get -y install php-apcu

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

service php7.0-fpm reload

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

8 phpMyAdmin

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

apt-get -y install phpmyadmin

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

自動的に再構成するWebサーバー: <-- lighttpd  
phpmyadminのためにdbconfig-commonでデータベースを構成しますか? <-- はい  
phpmyadminのためのMySQLアプリケーションパスワード: <-- Enterを押す

次のエラーが表示された場合:

変更を有効にするには/etc/init.d/lighttpd force-reloadを実行してください  
dpkg: phpmyadminパッケージの処理中にエラーが発生しました (--configure):  
インストールされたpost-installationスクリプトがエラー終了ステータス2を返しました  
E: サブプロセス/usr/bin/dpkgがエラーコード(1)を返しました

次のコマンドを実行してください:

/etc/init.d/lighttpd force-reload  
apt-get -y install phpmyadmin

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

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

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

nano /etc/php/7.0/fpm/pool.d/www.conf

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

[...]
;listen = /var/run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000
[...]

これにより、PHP-FPMはIP 127.0.0.1(localhost)のポート9000でリッスンします。システムで使用されていないポートを使用してください。

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

service php7.0-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サーバーを開始します(php7.0-cgiパッケージが必要)
fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

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

service lighttpd force-reload

10 リンク

Share: X/Twitter LinkedIn

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

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