2018年02月02日

さくらインターネットで異なるバージョンのPHPをPHPのフレームワークに対して使ってみた

PHP7+MariaDB/MySQLマスターブック

新品価格
¥3,067から
(2018/2/2 08:16時点)



以下の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
タグ:さくら PHP
posted by マスタカ at 08:17 | Comment(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。