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

OpenSUSE 12.1でApache2とPHP5-FPMを使用する - ページ2

6 Apacheの設定

ApacheをPHP-FPMと連携させるためには、以下の設定が必要です:

| AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php 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に対して有効)に入れることもできますし、PHP-FPMを使用する各vhostに配置することもできます。私はすべてのvhostでPHP-FPMを使用したいので、/etc/apache2/conf.d/mod_fastcgi.confを開きます…

vi /etc/apache2/conf.d/mod_fastcgi.conf

… そして、次のセクションを最後に追加します:

| [...] AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php 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 |

/usr/lib/cgi-bin/ディレクトリが存在する必要があるので、次のように作成します:

mkdir /usr/lib/cgi-bin/

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

systemctl restart apache2.service

次に、デフォルトのApache vhostのドキュメントルート/srv/www/htdocsに次のPHPファイルを作成します:

vi /srv/www/htdocs/info.php

| |

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

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

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

PHPでMySQLサポートを取得するには、php5-mysqlパッケージをインストールします。アプリケーションに必要になるかもしれない他のPHP5モジュールもいくつかインストールすることをお勧めします:

yast2 -i php5-mysql php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm

次に、PHP-FPMをリロードします:

systemctl reload php-fpm.service

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

8 phpMyAdmin

phpMyAdminは、MySQLデータベースを管理するためのWebインターフェースです。

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

yast2 -i phpMyAdmin

後でISPConfigを通じて作成されたすべてのウェブサイトから/phpmyadmin(例:http://www.example.com/phpmyadmin)および/phpMyAdmin(例:http://www.example.com/phpMyAdmin)を使用してphpMyAdminにアクセスできるようにするために、/etc/apache2/conf.d/phpMyAdmin.confを開きます

vi /etc/apache2/conf.d/phpMyAdmin.conf

… そして、最初に次の2つのエイリアスを追加します:

| Alias /phpMyAdmin /srv/www/htdocs/phpMyAdmin Alias /phpmyadmin /srv/www/htdocs/phpMyAdmin [...] |

Apacheを再起動し、PHP-FPMをリロードします:

systemctl restart apache2.service  
systemctl reload php-fpm.service

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

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

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

vi /etc/php5/fpm/php-fpm.conf

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

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

また、ソケットの所有者、グループ、および権限を次のように設定します:

| [...] ; Unixソケットを使用する場合の権限を設定します。Linuxでは、Webサーバーからの接続を許可するために、読み取り/書き込み権限を設定する必要があります。多くのBSD派生システムでは、権限に関係なく接続が許可されます。 ; デフォルト値:ユーザーとグループは実行中のユーザーに設定されます ; モードは0666に設定されます listen.owner = nobody listen.group = nobody listen.mode = 0666 [...] |

その後、PHP-FPMをリロードします:

systemctl reload php-fpm.service

次に、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/conf.d/mod_fastcgi.conf

| [...] AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php 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をリロードします:

systemctl reload apache2.service

10 リンク

Share: X/Twitter LinkedIn

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

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