- ベストアンサー
PHPのインストール方法と場所の特定方法
- RedHat7.3、apache1.3.33にphp4.3.10をソースからインストールしましたが、phpが動作しない問題が発生しています。
- インストールしたphpはどこにインストールされているか確認しましたが、/usr/local/modules/にlibphp4.soが存在しません。
- phpのインストール手順は/usr/srcディレクトリでphpのソースコードを展開し、configure、make、make installを実行する方法です。
- みんなの回答 (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用静的モジュールインストール)」を参考にしてください。
その他の回答 (4)
- Lean
- ベストアンサー率72% (435/603)
補足としてmod_soモジュールですが、 Status: Base (Windows); Experimental (Unix) となってます。 Statusの意味は下記にある通りで、Windows版Apacheの場合Baseですからデフォルトで組み込まれているのでPHPをインストールして即動作したのしょう。 逆にUnix版Apacheは、Experimentalになっているので自分で有効にしないと機能が働かないという訳です。 -------8<-------8<------ Base ステータスが "Base" のモジュールは、デフォルトでコンパイルされてわざわざ設定から モジュールを削除していない限り、通常は利用可能です。 Experimental ステータスが "Experimental" のモジュールは、 Apache 配布物に同梱されていますが、 使用する場合は自己責任で行なう必要があります。 そのモジュールは、ドキュメントも完成に向けて作成中ですし、 サポートされるているとは限りません。 -------8<-------8<------
お礼
遅くなりましたが、PHPを入れました。 うまくインストールできました。 きちんと動いています。 次はmysqlを入れてみます。
- Lean
- ベストアンサー率72% (435/603)
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から入れなおしなのでしょうか?
- Lean
- ベストアンサー率72% (435/603)
>このマニュアルはすでに見ているのですが、ここには実際のインストール先が明記されているところがわからなかったです。 貴殿が行ったインストール手順と提示したマニュアルにあるインストール手順に違いがあったの分かりませんか? 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でいれたら即動作したのに・・・ 愚痴をいってもしかたないのですが・・・すみません。
- Lean
- ベストアンサー率72% (435/603)
以下の参照URLにあるマニュアルを参考にしてみてください。 PHPマニュアル →II. インストールと設定 →4章Installation on Unix systems →Unix システム用 Apache 1.3.x
お礼
このマニュアルはすでに見ているのですが、ここには実際のインストール先が明記されているところがわからなかったです。 すみません。PHPの起動ファイルはどこにあるのでしょうか? また、libphp4.soはどこに存在するのでしょうか? LoadModule php4_module libexec/libphp4.so とかかれていますが、ここにもありません。
お礼
返事が送れて申し訳ないです。Linuxが重かったのです再インストールして時間がかかってしまいました。 今、再度apacheを--enable-module=soを指定して、./confgureしmake,make installしました。 来週頭にはPHPを入れてみます。 すこし返事を待っていてください。