web-dev-qa-db-ja.com

php-fpmバージョン変更のためにhttpd2.4でAddHandlerを使用する方法

mod_fastcgiphp-fpmを使用したhttpd 2.2(CentOS 6)の次の設定があります。

LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
AddHandler application/x-httpd-php71 .php
Action application/x-httpd-php71 /php71-fcgi
Alias /php71-fcgi /usr/lib/cgi-bin/php71-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php71-fcgi -socket /var/run/php71.sock -pass-header Authorization

Action application/x-httpd-php72 /php72-fcgi
Alias /php72-fcgi /usr/lib/cgi-bin/php72-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php72-fcgi -socket /var/run/php72.sock -pass-header Authorization
</IfModule>
<Directory /usr/lib/cgi-bin>
    Order allow,deny
    Allow from all
</Directory>

しかし、httpd 2.4(CentOS 7)にはmod_proxy_fcgiがあり、mod_fastcgiが利用できないため、FastCgiExternalServerがありません。次のようなことを試みています。

AddHandler application/x-httpd-php70 .php
Action application/x-httpd-php70 /php70-fpm virtual
Alias /php70-fpm /php70-fpm
ProxyPassMatch "/php70-fpm" "unix:/var/run/php70.sock|fcgi://localhost"

Action application/x-httpd-php72 /php72-fpm virtual
Alias /php72-fpm /usr/local/php-fpm/php72-fpm
ProxyPass "/usr/local/php-fpm/php72-fpm" 
"unix:/var/run/php72.sock|fcgi://localhost"

<Directory /usr/local/php-fpm>
    Require all granted
</Directory>

私はそれが間違っている(そして機能していない...)ことを知っていますが、現時点では(ある場合)AddHandler application/x-httpd-phpXX .php.htaccessをCentOS7のバージョン変更に使用し続ける方法を見つけることができません/ Apache 2.4。私は使用できることを知っています:

<FilesMatch "\.php$">
    SetHandler  "proxy:unix:/var/run/php70.sock|fcgi://localhost/"
</FilesMatch>

しかし、私は自分の.htaccessを同じに保つ方法を探しています。

2
plamer

少し検索したところ、使用できる「Define」ディレクティブがあることがわかりました。

私はfcgi.conf(httpd.confに含まれる)に以下を追加しました:

Define php70 "proxy:unix:/var/run/php70.sock|fcgi://localhost"

その後、.htaccessAddHandlerに定義された「php70」を使用しました。

AddHandler ${php70} .php

それは私が何とか見つけた最も近いものです。それが誰かを助けることを願っています。

2
plamer