#freeze
#author("2016-10-10T10:30:23+09:00","","")
**他設定 [#r32804ea]
#contents
----
***mod_proxy_fcgi [#lf17eb22]
PHP-FPMと組み合わせる場合。~
いくつか書き方があるというかシチュエーションによるというか~
なんか面倒くさい(´・ω・`)
・前提
Directoryディレクティブ内には書けない(マニュアル直ってない)
VirtualHostはVirturalHostごとに書く
さらに必要ならLocationごとに書く
・最近の基本
2.4.7からSocket可。2.4.10から下記書式可。直感的にわかりやすくなった。
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
#SetHandler "proxy:fcgi://127.0.0.1:9000/"
</FilesMatch>
<Proxy "fcgi://localhost/" enablereuse=Off>
#<Proxy "fcgi://127.0.0.1:9000/" enablereuse=Off>
# URIはSetHandlerのパイプ先と同値であること。任意の文字列でよい。
# enablereuse は 2.4.11 から。それ以前は disablereuse=On で同等。
# 規定値はreuseしないので書かなくてもよい。
# CentOS7のRPM版(2.4.6)は(dis|en)ablereuseを設定出来るが効かず、常にreuseしないぽい。
# reuseするとPHP側のプロセス数に余りがあっても2回目以降接続できなくなってしまったので
# reuseしない方がよさそう。
</Proxy>
<Proxy>ディレクティブはスキーマへの設定値を入れるためにある様子。
・基本
<LocationMatch "^/.*\.php$">
ProxyPass fcgi://127.0.0.1:9000/usr/local/apache2/htdocs/
</LocationMatch>
ドキュメントルートなどまで指定する。
・基本2
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/usr/local/apache2/htdocs/$1
基本と同じ意味。
・Alias切ってる
Alias /xxxxx /path/to/xxxxx
ProxyPassMatch ^/xxxxx\/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/xxxxx/$1
%%など。socketはpatchをあてないとダメみたい。%% 2.4.7から可能。
***mod_cidr_lookup [#yd012948]
2.4でAPIの変更があり、そのままではmakeが通らないので修正する。
mod_cidr_lookup.c:371: error: 'conn_rec' has no member named 'remote_addr'
というエラー。
mod_cidr_lookup.c 371行目
sockaddr = r->connection->remote_addr;
↓
sockaddr = r->connection->client_addr;