質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.60%

同じ.htaccess内で2つのシステムに対してそれぞれ違うバージョンのphpを指定したい

解決済

回答 2

投稿

  • 評価
  • クリップ 1
  • VIEW 2,264

shic00

score 12

WordPressのブログと独自で作った登録システムを同じサーバーで動かしたいです。

しかし、それぞれ違うPHPのバージョンで動いています。
WordPress PHP7.0.27
独自のシステム PHP5.2.8

制作段階では独自で作ったシステムの.htaccessをサーバー直下に
WordPressで作ったブログの.htaccessをwpフォルダ内で動かしておりました。

制作が終わったタイミングでWordPressのトップページをドメイン直下に変更するためにサーバー直下の.htaccessにWordPressで使用する記述を書いたところ、それぞれがうまく動きません。

それぞれに関係する設定を同じ.htaccessに記載したいのですが、一緒に記述するとうまくいきません。

独自のシステムは自分で作ったものではないので.htaccessの階層を変えることができません。
(階層を変えるとエラーが出てしまいますが自分の知識では修正ができません)

PHPのバージョンが違うからなのか、そもそも2つのhtaccess内に書いている内容的に一緒に書けないものなのかがわかりません。

サーバーはNTTコミュニケーションズのCPIというものを使っております。
サーバー自体は1つのサーバーで階層さえかえれば.htaccessを使って異なるバージョンのPHPを使用できます。

両方ともサーバー直下に.htaccessを置きたいのですが、それぞれが影響しないように分岐のようなことはできないでしょうか。


.htaccess

独自システムの.htaccess内記載↓

Options +Includes
AddHandler server-parsed html


AddHandler x-httpd-php528 .php 
suPHP_ConfigPath /usr/home/aaa/php.ini

<Files ~ "^.(htpasswd|htaccess)$">
    deny from all
</Files>

WorsPressの.htaccess内記載↓

AddHandler x-httpd-php70 .php
suPHP_ConfigPath /home/aaa/html/
<FilesMatch "^(\.htaccess|\.htpasswd|php\.ini|.*\.sql|.*\.log|.*\.cron|.*\.inc|.*\.phps|.*\.yml)$">
  Deny from all
</FilesMatch>
Options +SymLinksIfOwnerMatch

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

独自システムはドメイン/system/の中にphpファイルがありますが、インクルードしているファイルなどはサーバー直下に置いてあり、.htaccessの場所を変えるとうまく表示されません。
自分で作ったものではないため、階層を変えると不具合が出る恐れがあるため変えることができず困っております。

同じ.htaccess内でなんとか設定ができないかと思い質問いたしました。
どうぞ宜しくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2018/11/29 13:54 編集

    回答でないのでこちらに記載しますが、7.0と5.2ではさすがにバージョン差異がありすぎて単純に切り分けで同居と言うのは難しいように思います。どうしても同ドメインで運用しなければならない理由がないのでしたらサブドメインでも何でも用意された方が良いように思います。(一番確実なのは独自システムを7.0で動くように書き換えることというのはご理解されているかとは思いますが)

    キャンセル

回答 2

checkベストアンサー

+1

CPIの共用レンタルサーバーでしょうか?

基本的に .htaccess に「AddHandler XXXXXX .php」は、拡張子毎に1つしか書けないので、質問の条件であれば、共存は無理です。


CPI のヘルプを探してみたところ PHP(CGI 版)について がありました。

この記載を見る感じでは、PHP の CGI 版を利用して、PHPスクリプトを CGI として動作させることで、ファイル毎に変更できると思われるので、同じディレクトリで、バージョンの違う PHP を共存させることができそうです。

確認項目としては、お使いの PHP スクリプトが、PHP(CGI版)で動作するように作られているかという点でしょうか。(通常は動くと思います。)

PHP(CGI版)のデメリットとしては、現在お使いのPHP(モジュール版)より、PHPの起動が遅くなるという問題があります。

どのぐらい変わるかは、ケースバイケースですが、さくらインターネットが、レンタルサーバーサービスで「PHPモジュール版」を提供を始めた際の宣伝内容に「01.WordPressが従来より最大16倍に高速化」とあります。(https://www.sakura.ne.jp/speedup/より)
まあ、CGI版からモジュール版に切り替えたら16倍早くなるというのは、極端な例と思いますが...

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/29 18:31

    CHERRY様

    丁寧にご回答いただきましてありがとうございます。
    CPIの共用レンタルサーバーです。
    やはり無理なんですね。

    できるのかどうかもわからなかったので大変勉強になりました。

    CGI版での動作は大丈夫なのですが、やはり遅くなってしまうので他の方法で検討してみます。

    キャンセル

0

cpiってhttpd.confを直接いじれないんでしたっけ?

特定パスの下はすべて特定のphpで動かす、みたいなのは
<VirtualHost>で区切ってしまうか、
<Directory>書いた内側にAddHandlerをかけば良さそうな気もしますが。

「apache php 混在」で検索しても
だいたいそういう情報ばかりで、
ひとつの.htaccessでってのは見つけられず。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/29 18:33

    m6u様

    やはり同じ.htaccess内でというのは難しいんですね…
    ありがとうございました。

    キャンセル

  • 2018/11/29 20:33

    うちも、もともとphp4系だったのをphp5.2系に上げて動作確認、
    さらにphp7.1系に上げて動作確認、
    なんてやってます。
    時間が取れればテスト環境を作ってバージョンアップ対策をしてみてはいかがでしょうか。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る