こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPのインストールについて

RedHat7.3、apache1.3.33です。
php4.3.10をソースからインストールしました。
#cd /usr/src
#tar -zxvf php-4.x.x.tar.gz
#cd php-4.x.x
#./configure
# make
# make install
httpd.confに下の2行を追加
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php
しかし、どうしてもphpが動作しません。
/usr/local/modules/をみてもlibphp4.soがありません。
インストールしたphpはどこにインストールされているのでしょうか?

投稿日時 - 2005-03-09 21:52:38

QNo.1260172

困ってます

質問者が選んだベストアンサー

./configureをオプション指定なしで作成されたApacheに対し、PHPをモジュールとして組み込むのでしたら静的(static)に組み込むにしろ動的に組み込む(DSO)にしろApacheの再作成は避けられません。

LoadModuleディレクティブを使用してモジュールを動的に組み込みたい(DSO)のであればmod_soモジュールがApacheに静的モジュールとして組み込まれている必要があります。
しかし、このmod_soモジュールはデフォルト(./configureでオプション指定なし)では組み込まれません。

-lオプションを指定してhttpd(Apache)を実行すると静的に組み込まれているモジュールの一覧が表示されますので、その表示の中に「mod_so.c」があるか確認してください。

# httpd -l
Compiled-in modules:
http_core.c
<省略>
mod_so.c ←これ
<以下、省略>

もし、ないのでしたら「--enable-module=so」を指定してconfigureを実行してApacheを作り直しインストール後、再度PHPのインストールをしてください。

もし仮に静的モジュールとしてPHPをApacheに組み込みたい場合は、No.1の参考URLの「例 4-2. PHPのインストール手順(Apache用静的モジュールインストール)」を参考にしてください。

投稿日時 - 2005-03-13 06:18:36

お礼

返事が送れて申し訳ないです。Linuxが重かったのです再インストールして時間がかかってしまいました。
今、再度apacheを--enable-module=soを指定して、./confgureしmake,make installしました。
来週頭にはPHPを入れてみます。
すこし返事を待っていてください。

投稿日時 - 2005-03-19 01:02:06

ANo.4

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

補足としてmod_soモジュールですが、

Status: Base (Windows); Experimental (Unix)

となってます。
Statusの意味は下記にある通りで、Windows版Apacheの場合Baseですからデフォルトで組み込まれているのでPHPをインストールして即動作したのしょう。
逆にUnix版Apacheは、Experimentalになっているので自分で有効にしないと機能が働かないという訳です。

-------8<-------8<------
Base
ステータスが "Base" のモジュールは、デフォルトでコンパイルされてわざわざ設定から モジュールを削除していない限り、通常は利用可能です。

Experimental
ステータスが "Experimental" のモジュールは、 Apache 配布物に同梱されていますが、 使用する場合は自己責任で行なう必要があります。 そのモジュールは、ドキュメントも完成に向けて作成中ですし、 サポートされるているとは限りません。
-------8<-------8<------

参考URL:http://www.apache.jp/docs/mod/mod_so.html

投稿日時 - 2005-03-13 06:37:50

お礼

遅くなりましたが、PHPを入れました。
うまくインストールできました。
きちんと動いています。
次はmysqlを入れてみます。

投稿日時 - 2005-03-23 22:21:35

ANo.3

Apache 1.3.33、PHP 4.3.10のソースをダウンロードして確認してみました。
手元にあるUNIXな環境がFreeBSDなのでそこで、現状動作しているApache 2.xに影響がないようにインストール先を指定(--prefix=/tmp/root)して確認してみました。

1. Apacheインストール

# tar xvzof apache_1.3.33.tar.gz
# cd apache_1.3.33
# ./configure --enable-module=so --prefix=/tmp/root ← DSO対応
# make ; make install
# /tmp/root/bin/httpd -l
Compiled-in modules:
http_core.c
<省略>
mod_so.c
<以下、省略>

2. PHPインストール

# bzip2 -d php-4.3.10.tar.bz2
# tar xvof php-4.3.10.tar
# cd php-4.3.10
# ./configure --prefix=/tmp/root --with-apxs=/tmp/root/bin/apxs
# make
# make install
Installing PHP SAPI module: apache
[activating module `php4' in /tmp/root/conf/httpd.conf]
cp libs/libphp4.so /tmp/TEST/root/libexec/libphp4.so
chmod 755 /tmp/root/libexec/libphp4.so
cp /tmp/root/conf/httpd.conf /tmp/root/conf/httpd.conf.bak
cp /tmp/root/conf/httpd.conf.new /tmp/TEST/root/conf/httpd.conf
rm /tmp/TEST/root/conf/httpd.conf.new
Installing PHP CLI binary: /tmp/root/bin/
<以下、省略>

# cd /tmp/root/libexec/
# ls -l
total 3416
-rw-r--r-- 1 root wheel 7587 Mar 11 23:58 httpd.exp
-rwxr-xr-x 1 root wheel 3467366 Mar 12 00:06 libphp4.so

というようにlibphp4.soがモジュールの格納ディレクトリ(今回の場合、/tmp/root/libexec配下)にインストールにされますね。

make installを実行した際に「Installing PHP SAPI module」と表示された後から「Installing PHP CLI binary」が表示されるまでの部分はどのような表示になってますか?

投稿日時 - 2005-03-12 00:45:00

補足

apache1.3.33をインストールする際
./cofigureで
# ./configure --enable-module=so
の--enable-module=so
は指定せず./configureだけでした。これが問題ありですか?再度apacheから入れなおしなのでしょうか?

投稿日時 - 2005-03-13 01:53:46

ANo.2

>このマニュアルはすでに見ているのですが、ここには実際のインストール先が明記されているところがわからなかったです。

貴殿が行ったインストール手順と提示したマニュアルにあるインストール手順に違いがあったの分かりませんか?

PHPのconfigureの実行の際にApacheのモジュールとする指定をしてコンフィグレーションを行えば、Apacheのモジュールの格納場所にインストールされるはずです。

貴殿が提示したconfigureの実行だと最後に

You will be compiling the CGI version of PHP without any redirection checking.

と表示されるはずです。
上記からわかるようにApacheのモジュールではなくCGI版のPHPとしてコンフィグレーションされインストール
されています。
おそらく/usr/localディレクトリ配下を見ればそれらしいファイルが見つかるはずです。

Apacheのモジュールとしてインストールしたいのでしたら、configureの実行時に「--with-apxs」を指定して実行し、その後make ; make install を実行してください。

投稿日時 - 2005-03-10 16:11:10

補足

apxsの場所が/usr/sbin/apxsにあったので、
#./configure --enable-track-vars  (改行せず)
--with-apxs=/usr/sbin/apxs
--enable-mbstring
--enable-mbstr-enc-trans
で#make #meke installしました。
でも動作しません。
やはりlibphp4.soをいうファイルは存在しません。
あと、何がたりないんでしょうか?とほほ・・・
なんでPHPインストールするくらいでこんなにややこしいのでしょうね・・・
Windowsでいれたら即動作したのに・・・
愚痴をいってもしかたないのですが・・・すみません。

投稿日時 - 2005-03-11 17:00:32

ANo.1

以下の参照URLにあるマニュアルを参考にしてみてください。

PHPマニュアル
→II. インストールと設定
 →4章Installation on Unix systems
  →Unix システム用 Apache 1.3.x

参考URL:http://www.php.net/manual/ja/install.unix.php#install.unix.apache

投稿日時 - 2005-03-10 01:41:30

お礼

このマニュアルはすでに見ているのですが、ここには実際のインストール先が明記されているところがわからなかったです。
すみません。PHPの起動ファイルはどこにあるのでしょうか?
また、libphp4.soはどこに存在するのでしょうか?
LoadModule php4_module libexec/libphp4.so
とかかれていますが、ここにもありません。

投稿日時 - 2005-03-10 13:02:32