![]() | 新品価格 |

以下のQiitaで
さくらインターネットでは
ディレクトリごとにPHPのバージョンを変えれることがわかった
https://qiita.com/akspect/items/3231a957f7af8471efb7
メンテしてないサービスと
メンテしてるサービスが共存してるので
古いPHPのバージョンが使えると非常に助かる
そんなわけで、この方法をPHPのフレームワークで使ってみた
・.htaccessに書くこと
.htmlをphpにする必要はないから以下でおk
Action myphp-script /php.cgi
AddHandler myphp-script .php
・plainなPHPに試してみた
plainなPHPに対して.htaccessに書いてみたけど、以下のエラーが出た。
調べてみたところ、該当のフォルダを755のパーミッションにする必要があった
[cgi:error] [pid 40989] [client 126.114.224.47:54271] AH01215: suexec policy violation: see suexec log for more details: /ほげほげ/php.cgi,
[Thu Feb 01 22:38:51.992154 2018] [cgi:error] [pid 40989] [client 126.114.224.47:54271] End of script output before headers: php.cgi,
・フレームワークに対して試して見た
次にPHPのフレームワークについて試してみた
フレームワークはディレクトリのトップに.htaccessがあるのでこれと共存させないといけない
最初試すといつものエラーが出た
[core:error] [pid 40950] [client 5.9.144.195:0] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
このエラーに対して以下の対応でうまくいきました
redirectループから外し、直アクセスを拒否する
ぐらいで大丈夫かな
Action myphp-script /php.cgi
AddHandler myphp-script .php
RedirectMatch 404 php\.cgi$
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(ほげほげ|php\.cgi)
RewriteRule ^(.*)$ index.php?/$1 [L]
これで古いPHPを一部のディレクトリには適応できました
参考
https://blog.bgbgbg.net/archives/3625