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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

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

Q&A

1回答

1059閲覧

CentOS7にモジュール版のPHP7とCGI版のPHP5を共存させる

tesopgmh

総合スコア146

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

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

0グッド

0クリップ

投稿2022/12/20 04:07

編集2022/12/20 06:59

前提

CentOS7にyumでモジュール版のPHP7をインストールし
成功しました

php -v PHP 7.4.28 (cli) (built: Feb 15 2022 13:23:10) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies

次に以下の記事を参考にし
CGI版のPHP5をインストールまでは恐らく成功しました
https://zenn.dev/ciloholic/articles/7efdf77fc12375

/usr/local/src/php-5.6.32/maked/bin/php -v PHP 5.6.32 (cli) (built: Dec 20 2022 11:25:28) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

しかし、このCGI版のPHP5をapacheに読み込ませ
特定のフォルダだけPHP5を動かしたいのですが
それが出来ませんでした

1.httpd.conf の ScriptAlias /cgi-bin/ は以下の通りです

<IfModule alias_module> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" </IfModule>

2.cgi-binディレクトリ直下にPHP5.6のインストール先のシンボリックリンクを作成します。

# ln -s /usr/local/src/php-5.6.32/maked/bin/php-cgi /var/www/cgi-bin/php-cgi

3.Apacheがcgi-bin配下のシンボリックリンクを辿るように設定

# vi /etc/httpd/conf/httpd.conf <Directory "/var/www/cgi-bin"> AllowOverride All Options FollowSymLinks Require all granted </Directory>

4.Apacheのバーチャルホスト設定

vi /etc/httpd/conf/httpd.conf <VirtualHost *:80> ServerName php56.mydomain.com DocumentRoot "/var/www/html/php56" Action php56 /cgi-bin/php-cgi AddHandler php56 .php <Directory "/var/www/html/php56"> AllowOverride All Require all granted </Directory> </VirtualHost>

5 . /var/www/html/php56にphpinfoを配置しアクセス
CGI版が効いていない

http://php56.mydomain.com/info.php PHP Version 7.4.28

Actionをフルパスにしてみたり
AddHandler をSetHandlerに変更してみたり
Options FollowSymLinks を Options +FollowSymLinks
にしてみたり様々な組み合わせを試しましたがうまくいきません

私の設定でなにか不備が分かる方いましたらお教え下さいませ
どうぞよろしくお願い致します

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

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

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

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

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

yambejp

2022/12/20 04:15

なんのために共存が必要なのでしょうか?上位バージョンを使用しているなら下位バージョンは不要です。
otn

2022/12/20 05:06

リライト記述がどこかにあるのでは?
tesopgmh

2022/12/20 05:39

>yambejp テスト環境で、古いメンテナンスされていないphp5コードを実行させる必要があります 共存は可能ではあるはずなので私はこの手法を選択しました >otn 仰る通りで、試行錯誤のhtaccessが残っておりました 質問文を少し修正いたします
arcxor

2022/12/20 06:30

httpd.conf の ScriptAlias /cgi-bin/ はどのような記述になっているのでしょうか。
tesopgmh

2022/12/20 06:57

>arcxor ありがとうございます 以下のようになっております <IfModule alias_module> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" </IfModule> どうぞ、よろしくお願いいたします
arcxor

2022/12/20 07:09

念の為お聞きしますが、httpd.conf 編集後は apache を再起動しているのですよね。参考記事を見比べても不備が見当たらないように見えますね。
tesopgmh

2022/12/20 07:20

はい、しております httpd.conf のシンタックスチェックも念のためしましたが OK でした
guest

回答1

0

おそらく、".php" 用の SetHandler が既に定義されていて、そちらが優先されているのだと思います。
一度 RemoveHandler で削除した後、SetHandler します。

RemoveHandler .php .phps <FilesMatch \.phps?$> SetHandler php56 </FilesMatch> Action php56 /cgi-bin/php-cgi

投稿2022/12/20 08:44

TaichiYanagiya

総合スコア12146

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問