Web Server · 3 min read · Jan 27, 2026

Fedora 18 における PHP5 (PHP-FPM) と MySQL サポートを持つ Lighttpd のインストール

Fedora 18 における PHP5 (PHP-FPM) と MySQL サポートを持つ Lighttpd のインストール

Version 1.0
Author: Falko Timme
Follow me on Twitter

Lighttpd は、スピードを重視した環境向けに設計された、安全で高速な標準準拠のウェブサーバーです。このチュートリアルでは、PHP5 サポート (PHP-FPM 経由) と MySQL サポートを持つ Fedora 18 サーバーに Lighttpd をインストールする方法を示します。PHP-FPM (FastCGI Process Manager) は、特に忙しいサイトに便利な追加機能を持つ代替 PHP FastCGI 実装です。このチュートリアルでは、Lighttpd の spawn-fcgi の代わりに PHP-FPM を使用します。

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

1 前提条件

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

2 MySQL 5 のインストール

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

yum install mysql mysql-server

次に、MySQL のシステム起動リンクを作成し (システム起動時に MySQL が自動的に起動するように)、MySQL サーバーを起動します:

systemctl enable mysqld.service  
systemctl start mysqld.service

MySQL ユーザー root のパスワードを作成します (yourrootsqlpassword を使用したいパスワードに置き換えてください):

mysql_secure_installation

[root@server1 ~]# mysql_secure_installation

NOTE: このスクリプトのすべての部分を実行することは、すべての MySQL サーバーで推奨されます。 本番環境で使用する場合は、各ステップを注意深くお読みください!

MySQL にログインしてセキュリティを確保するためには、root ユーザーの現在のパスワードが必要です。 もし MySQL をインストールしたばかりで、まだ root パスワードを設定していない場合、パスワードは空白のままになりますので、ここでは単に Enter を押してください。

Enter current password for root (enter for none): <– ENTER
OK, successfully used password, moving on…

root パスワードを設定することで、適切な認証なしに誰も MySQL root ユーザーにログインできないようにします。

Set root password? [Y/n] <– ENTER
New password: <– yourrootsqlpassword
Re-enter new password: <– yourrootsqlpassword
Password updated successfully!
Reloading privilege tables..
… Success!

デフォルトでは、MySQL インストールには匿名ユーザーがあり、誰でもユーザーアカウントを作成することなく MySQL にログインできます。 これはテスト用にのみ意図されており、インストールを少しスムーズにするためのものです。 本番環境に移行する前に、これらを削除する必要があります。

Remove anonymous users? [Y/n] <– ENTER
… Success!

通常、root は ‘localhost’ からのみ接続を許可されるべきです。 これにより、誰かがネットワークから root パスワードを推測できないようにします。

Disallow root login remotely? [Y/n] <– ENTER
… Success!

デフォルトでは、MySQL には誰でもアクセスできる ‘test’ という名前のデータベースが付属しています。 これもテスト用にのみ意図されており、本番環境に移行する前に削除する必要があります。

Remove test database and access to it? [Y/n] <– ENTER

  • Dropping test database…
    … Success!
  • Removing privileges on test database…
    … Success!

特権テーブルを再読み込みすることで、これまでに行ったすべての変更が即座に反映されることを保証します。

Reload privilege tables now? [Y/n] <– ENTER
… Success!

Cleaning up…

すべて完了しました! 上記のすべてのステップを完了した場合、あなたの MySQL インストールは現在安全であるはずです。

MySQL をご利用いただきありがとうございます!

[root@server1 ~]#

3 Lighttpd のインストール

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

yum install lighttpd

次に、Lighttpd のシステム起動リンクを作成し (システム起動時に Lighttpd が自動的に起動するように)、それを起動します:

systemctl enable lighttpd.service  
systemctl restart lighttpd.service

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

Lighttpd のデフォルトのドキュメントルートは Fedora では /var/www/lighttpd であり、設定ファイルは /etc/lighttpd/lighttpd.conf です。

4 PHP5 のインストール

次のようにして PHP-FPM を通じて Lighttpd で PHP5 を動作させることができます:

yum install php-fpm lighttpd-fastcgi

PHP-FPM はポート 9000 で FastCGI サーバーを実行するデーモンプロセスです。

PHP-FPM のシステム起動リンクを作成し、それを起動します:

systemctl enable php-fpm.service  
systemctl start php-fpm.service

5 Lighttpd と PHP5 の設定

Lighttpd で PHP5 を有効にするためには、/etc/php.ini と /etc/lighttpd/lighttpd.conf の 2 つのファイルを修正する必要があります。まず、/etc/php.ini を開き、行 cgi.fix_pathinfo=1 のコメントを外します:

vi /etc/php.ini

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

次に、/etc/lighttpd/conf.d/fastcgi.conf を開き、「mod_fastcgi」が有効になっていることを確認します:

vi /etc/lighttpd/conf.d/fastcgi.conf

| [...] server.modules += ( "mod_fastcgi" ) [...] |

その後、ファイルの下部に fastcgi.server スタンザがあるので、コメントを外さずに自分の fastcgi.server スタンザを次のように追加します:

| [...] ## ## PHP の例 ## PHP の場合、php.ini で cgi.fix_pathinfo = 1 を設定するのを忘れないでください。 ## ## あなたが得られる php プロセスの数は簡単に計算できます: ## ## num-procs = max-procs * ( 1 + PHP_FCGI_CHILDREN ) ## ## php-num-procs の例では、17*5 = 85 php ## プロセスを得ることを意味します。 あなたの非常に ## 忙しいサイトにはこの高い数が常に必要です。 そして、たくさんの RAM がある場合。 :) ## fastcgi.server += ( ".php" => (( "host" => "127.0.0.1", "port" => "9000", "broken-scriptfilename" => "enable" )) ) #fastcgi.server = ( ".php" => # ( "php-local" => # ( # "socket" => socket_dir + "/php-fastcgi-1.socket", # "bin-path" => server_root + "/cgi-bin/php5", # "max-procs" => 1, # "broken-scriptfilename" => "enable", # ) # ), # ( "php-tcp" => # ( # "host" => "127.0.0.1", # "port" => 9999, # "check-local" => "disable", # "broken-scriptfilename" => "enable", # ) # ), # # ( "php-num-procs" => # ( # "socket" => socket_dir + "/php-fastcgi-2.socket", # "bin-path" => server_root + "/cgi-bin/php5", # "bin-environment" => ( # "PHP_FCGI_CHILDREN" => "16", # "PHP_FCGI_MAX_REQUESTS" => "10000", # ), # "max-procs" => 5, # "broken-scriptfilename" => "enable", # ) # ), # ) ), [...] |

/etc/lighttpd/modules.conf を開きます…

vi /etc/lighttpd/modules.conf

… そして /etc/lighttpd/conf.d/fastcgi.conf ファイルを有効にします:

| [...] ## ## FastCGI (mod_fastcgi) ## include "conf.d/fastcgi.conf" [...] |

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

systemctl restart lighttpd.service
Share: X/Twitter LinkedIn

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

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