- PR -

Apache2のDSOオプションをインストール後から設定

投稿者投稿内容
やくも
会議室デビュー日: 2005/08/20
投稿数: 8
投稿日時: 2005-08-21 02:23
たびたび質問すいません。

phpをインストールする際に下記のエラーが出てしまいます。
./configure: line 5467: /usr/local/apache2/bin/apxs: No such file or directory
configure: error: Aborting

自分なりに調べたのですが、./configure 時のオプションにDSO拡張モジュールとして動作させる
ための「--with-apxs2=/usr/local/apache2/bin/apxs」を指定したのですが、
よく考えたらapache2をインストールする際にDSOオプション「--enable-so」を指定しませんでした。
「apt-get」でインストールしたため、いつ指定するかわからなかった^^;
多分そのためにエラーになっているのだと思いますが、調べてもインストールする際の指定方法
ばかりでインストール後に設定する方法が見つかりません。
apache2を入れ直す以外に方法はないのでしょうか?

angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-08-21 05:20
おはようございます。
引用:
よく考えたらapache2をインストールする際にDSOオプション「--enable-so」を指定しませんでした。
「apt-get」でインストールしたため、いつ指定するかわからなかった^^;


“--enable-so”は、Apache を自前でビルドする時に指定するものなので、ビルド済みのプログラムパッケージを持ってくる apt とは無関係です。
引用:
自分なりに調べたのですが、./configure 時のオプションにDSO拡張モジュールとして動作させるための「--with-apxs2=/usr/local/apache2/bin/apxs」を指定したのですが、


apxsの所在は、apt で持ってきたパッケージ次第なので ( 場合によっては無い可能性も無くはない )、ご自分の環境を確かめるのが先決かと思います。
※ rpm -ql なり slocate なり find 〜 -name なり…、色々手はあると思います。
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2005-08-21 10:06
引用:

やくもさんの書き込み (2005-08-21 02:23) より:

よく考えたらapache2をインストールする際にDSOオプション「--enable-so」を指定しませんでした。



--enable-soは1つ以上のモジュールをsharedでインストールすると有効になるので、明示的に指定していなくても有効になっている場合があります。

これを確認するには

$ $(sbindir)/httpd -l
....
mod_so.c
....

とすればできます。もし、mod_so.cの記述が内場合は一から再コンパイルする必要があります、途中からmod_so.cを組み込む事はできません。
やくも
会議室デビュー日: 2005/08/20
投稿数: 8
投稿日時: 2005-08-21 19:23
angelさん
あんとれさん

ありがとうございますm(__)m
ほんと無知ですいません。

aptで取得したパッケージにapxsが無いものだったようです。
apache2をremoveして、ソースからオプションを指定してインストールしたら
うまくいきました。
助かりました。

しかし、インストールしなをした副作用か違う問題が。。。。
httpd.confの設定を変更しても反映されないんです。;;
理由はわかっているのですが、どうしていいかわかりません。
原因は設定を変更したhttpd.confは/usr/local/apache2/conf/httpd.conf なのですが、
実際apache2が読み込んでいるhttpd.conf は/etc/apache/httpd.confのようなのです。
何故二つあるのかというと最初にapatche2をインストールしようとしたら間違えてapache1.3を
インストールしてしまいました。それをremoveしてapatch2をインストールしたのですが、最初
の問題の理由でそれも2回やっています。
その為、どうも設定がどっかでごっちゃになってapache1.3のhttpd.confを読み込んでいるようです。
/usr/local/apache2/conf/httpd.confを/etc/apache/httpd.confにコピーすれば
うまく行くのかもしれませんが、意図しないhttpd.confを読んでいるというのがどうも^^;
どこかでどのhttpd.confを読むのか設定できるのかと思いいろいろgrepしたりもしたのですが、
みつかりませんでした。

何か方法はないでしょうか?
jk
ベテラン
会議室デビュー日: 2005/08/19
投稿数: 94
投稿日時: 2005-08-21 19:37
起動方法はどうしてますか?

/etc/init.d/httpd と使かっていたりしませんか?

/usr/local/bin/apache2/bin/apachectl -f config.file start
とかしてみたら、どうですか?

[ メッセージ編集済み 編集者: jk 編集日時 2005-08-21 19:37 ]
やくも
会議室デビュー日: 2005/08/20
投稿数: 8
投稿日時: 2005-08-21 21:45
jkさん
ありがとうございますm(__)m

なんとか自己解決できました。
/usr/local/apache2/conf/の中にapache2.confという設定ファイルがあってそのなかで
httpd.confを指定するところがありました。
そこを/usr/local/apache2/conf/httpd.confに変えたら無事うまくいきました。

しかし。。。
またもや問題が。。。phpへの道遠し;;
今度は起動時に「Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. 」というエラーになってしまいます。
これはgoogleで調べたら下記の対処方でクリアできるとのことなのでやってみました。

対処方法

#rm /etc/alternatives/apache2 ←これは元々なかったので作業なし
↓これはやってみた。しかし、/usr/sbin/apache2.preforkこんなものはなかった^^;
#ln -s /usr/sbin/apache2.prefork* /etc/alternatives/apache2

で上記をやったあとに
#update-alternatives --config apache2
のコマンドを発行すると
##### 問題の場所 ###################
There are 4 alternatives which provide `apache2'.

Selection Alternative
-------------------------------------------
+ 1 /usr/sbin/apache2.worker
* 2 /usr/sbin/apache2.prefork
3 /usr/sbin/apache2.threadpool
4 /usr/sbin/apache2.perchild

Press enter to keep default[*], or type selection number:
##### 問題の場所 ###################

と表示されるので「2」を選択するといいらしい。
すいません。まだ調査中なので上記が何を意味するのかがわかっていません^^;
もっと調べてみます。
ところが!!
##### 問題の場所 ################### と書いたところで表示されるのが、
There are 4 alternatives which provide `apache2'.

Selection Alternative
-------------------------------------------
だけで選択しがでてきません;;
上記の
########################################
#rm /etc/alternatives/apache2 ←これは元々なかったので作業なし
↓これはやってみた。しかし、/usr/sbin/apache2.preforkこんなものはなかった^^;
#ln -s /usr/sbin/apache2.prefork* /etc/alternatives/apache2
########################################
この辺が既におかしいとおもうのですが、何かみなさんが使う普通の環境とは違うのでしょうか?

ちなみに自分の環境は
Debian GNU/Linux 3.1
Apache2
PHP5
です。
jk
ベテラン
会議室デビュー日: 2005/08/19
投稿数: 94
投稿日時: 2005-08-21 22:04
apache2を makeするときにどんな configureオプションを指定したんでしょうか?

PHPを再コンパイルしなさいと言っていますよね。

apache2の configure時に,--enable-threadsとか指定していません?
PHPをインストールしたときのApache2がシングルスレッド版だったんじゃないでしょうか?

apache2を makeしたらPHPも Remakeしたほうがいいと思います。
やくも
会議室デビュー日: 2005/08/20
投稿数: 8
投稿日時: 2005-08-21 23:58
jkさん
返信ありがとうございます。

apache2のconfigure時のオプションですが、
指定したのは「--enable-so」(動的にモジュールの追加を行うことができるらしい^^;)のみです。
ほんと知識がなくて、本に書いてあるままやったのみです^^;
デフォルトだとシングルスレッドなのでしょうか?

すいません。
自分でもいろいろ調べてはいるつもりなのですが、検索仕方がわるいのかうまくいきません;;
質問ばかりで申し訳ないです。

スキルアップ/キャリアアップ(JOB@IT)