プロが教えるわが家の防犯対策術!

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はどこにインストールされているのでしょうか?

A 回答 (5件)

./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用静的モジュールインストール)」を参考にしてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/19 01:02

補足として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
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/23 22:21

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」が表示されるまでの部分はどのような表示になってますか?

この回答への補足

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

補足日時:2005/03/13 01:53
    • good
    • 0

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



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

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 を実行してください。

この回答への補足

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
    • good
    • 0

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



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

参考URL:http://www.php.net/manual/ja/install.unix.php#in …
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/10 13:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!