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

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

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1165閲覧

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

shic00

総合スコア12

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2018/11/29 04:48

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内でなんとか設定ができないかと思い質問いたしました。
どうぞ宜しくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/11/29 05:27 編集

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

回答2

0

ベストアンサー

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 06:44

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shic00

2018/11/29 09:31

CHERRY様 丁寧にご回答いただきましてありがとうございます。 CPIの共用レンタルサーバーです。 やはり無理なんですね。 できるのかどうかもわからなかったので大変勉強になりました。 CGI版での動作は大丈夫なのですが、やはり遅くなってしまうので他の方法で検討してみます。
guest

0

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

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

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

投稿2018/11/29 05:46

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shic00

2018/11/29 09:33

m6u様 やはり同じ.htaccess内でというのは難しいんですね… ありがとうございました。
退会済みユーザー

退会済みユーザー

2018/11/29 11:33

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問