mod_fastcgi
とphp-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を同じに保つ方法を探しています。
少し検索したところ、使用できる「Define」ディレクティブがあることがわかりました。
私はfcgi.conf(httpd.confに含まれる)に以下を追加しました:
Define php70 "proxy:unix:/var/run/php70.sock|fcgi://localhost"
その後、.htaccess
のAddHandler
に定義された「php70」を使用しました。
AddHandler ${php70} .php
それは私が何とか見つけた最も近いものです。それが誰かを助けることを願っています。