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はどこにインストールされているのでしょうか?
No.4ベストアンサー
- 回答日時:
./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用静的モジュールインストール)」を参考にしてください。
返事が送れて申し訳ないです。Linuxが重かったのです再インストールして時間がかかってしまいました。
今、再度apacheを--enable-module=soを指定して、./confgureしmake,make installしました。
来週頭にはPHPを入れてみます。
すこし返事を待っていてください。
No.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
No.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」が表示されるまでの部分はどのような表示になってますか?
この回答への補足
apache1.3.33をインストールする際
./cofigureで
# ./configure --enable-module=so
の--enable-module=so
は指定せず./configureだけでした。これが問題ありですか?再度apacheから入れなおしなのでしょうか?
No.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 を実行してください。
この回答への補足
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でいれたら即動作したのに・・・
愚痴をいってもしかたないのですが・・・すみません。
No.1
- 回答日時:
以下の参照URLにあるマニュアルを参考にしてみてください。
PHPマニュアル
→II. インストールと設定
→4章Installation on Unix systems
→Unix システム用 Apache 1.3.x
参考URL:http://www.php.net/manual/ja/install.unix.php#in …
このマニュアルはすでに見ているのですが、ここには実際のインストール先が明記されているところがわからなかったです。
すみません。PHPの起動ファイルはどこにあるのでしょうか?
また、libphp4.soはどこに存在するのでしょうか?
LoadModule php4_module libexec/libphp4.so
とかかれていますが、ここにもありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 秀丸でPHPの構文チェック(SyntaxCheck)を行う方法 1 2022/09/11 16:46
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- Ruby Ruby / passenger のインストールについて 1 2023/01/30 18:31
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
- PHP PHP ページング データベース 1 2022/06/16 10:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
readline-develについて
-
よく目にするファイル名にdevel...
-
zlibのパス確認方法について
-
スライドショー(速度)について
-
dell ノートパソコン 起動しな...
-
Mac OSが再インストールできな...
-
office2010とoffice365の共存で...
-
Win10機で Excel 2002 を使う方...
-
Apple Vision Pro に “DMM VR動...
-
名称未設定で書き込んでしまっ...
-
HP-UX 11.Xでのクラスタ化(2no...
-
至急お願いします! Windowsを...
-
「Volumes」というフィルダにつ...
-
ディスクのクローン作成
-
回復ドライブ作成の成否を確認...
-
VMWareESXiのインストール時の...
-
pcの再起動を邪魔するものの正...
-
LINUX からWINDOWS に戻すには?
-
富士通のパソコンD583/KのHDD...
-
「x86」と「amd64」の違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
よく目にするファイル名にdevel...
-
readline-develについて
-
tarでインストールされたパッケ...
-
squidのアンインストール
-
zlibのパス確認方法について
-
squidのdnsserverが見つからな...
-
インストールされているディレ...
-
ccが動かない on Solaris
-
redhat9でソースからphpインス...
-
RedHat linux 7.5への xinetdの...
-
ソースからコンパイルしたPHPを...
-
Red Hat Linux 7Jでのgccコンパ...
-
POPサーバあるqpopperとDNSであ...
-
tar.gzのファイルがインストー...
-
linuxの上位、下位互換について
-
Linuxの標準モジュールの格納場...
-
gccの使いかたについて
-
gccの再インストールについて
-
Cコンパイラ(RPMパッケージ)の...
-
./configureのエラー(Mac)
おすすめ情報