- PR -

Apache2に自作のDSOを組み込めません

投稿者投稿内容
kz69
会議室デビュー日: 2007/05/02
投稿数: 15
投稿日時: 2007-05-08 20:46
御世話になります。
RedHut9+apache2(2.0.59)でセットアップしたサーバーに自作のDSOを組み込ませた
いのですが、
httpd.confでモジュール名を追加すると、configtestでセグメンテーション違反 
$httpd -tと出てしまいます。

このDSOは既に別サーバーで動いているものです。
(動いているのはRedHut8上です。apacheは2.0.47です)
Kylix3で作成したものです。

稼動しているサーバーのhttpd.confとapachectlはよく見比べましたが、
ほぼ同じです(サーバー名などが違う程度)

稼動しているRehHutは別の担当者がセットアップしたので、そちらのapacheが
どのようにセットアップされているのかよくわかりません。
(しかも退職してしまいました・・・)
一応導入手順がのこっていたので、httpd.confとapachectlの変更箇所はわかるのですが。
もしかしたらapacheの導入方法自体に問題があるのではないでしょうか?

./configure --enable-module=do --enable-mods-share=all
make
make install
としたのですが・・・・

なにか指摘される点がありましたらお教えください。
SHR
ベテラン
会議室デビュー日: 2006/06/15
投稿数: 99
投稿日時: 2007-05-09 09:42
--enable-module=do
--enable-modules=so?

--enable-mods-share=all
--enable-mods-shared=all?

./configure --help でオプションを確認してみてください。
http://httpd.apache.org/docs/2.0/ja/programs/configure.html
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2007-05-09 11:22
こんにちは

現状動いているサーバのapacheのソースディレクトリは残っているのでしょうか?
残っているのであれば

config.log ファイルに configureを実行したときのコマンドラインが記録されて
いるので、それを比べてみてはいかがでしょうか?
kz69
会議室デビュー日: 2007/05/02
投稿数: 15
投稿日時: 2007-05-09 19:27
御世話になります。

早速申し訳ありません。
--enable-modules=so
--enable-mods-shared=all
上記の都下りです。

既存サーバーにソースがのこっていましたので、logも確認してみます。
また他に確認すべき点があればご指摘下さい。
なるとまーく
会議室デビュー日: 2007/05/09
投稿数: 1
投稿日時: 2007-05-09 22:18
kylix3ということなので、Borlandよりダウンロードしたhttpd2.pasを使っていると思いますが、
対象のApacheのバージョンにあわせてMODULE_MAGIC_NUMBER_MAJOR、
MODULE_MAGIC_NUMBER_MINOR等は編集しましたか?

http://www.atmarkit.co.jp/flinux/rensai/webserv02/webserv02c.html
http://www.drbob42.com/delphi7/apache2040.htm
kz69
会議室デビュー日: 2007/05/02
投稿数: 15
投稿日時: 2007-05-10 13:08
お疲れさまです。

Kylix3で作成したDSOは、現在稼動しているサーバーもApache2ですので、
作成の際、ご指摘の点及びその他の修正は済ませています。

SHR
ベテラン
会議室デビュー日: 2006/06/15
投稿数: 99
投稿日時: 2007-05-10 14:49
>また他に確認すべき点があればご指摘下さい。

動作する側としない側のapacheに モジュールの差分が無いか、
念のために確認しておいた方が良いですね。
# ./bin/httpd -l
kz69
会議室デビュー日: 2007/05/02
投稿数: 15
投稿日時: 2007-05-16 21:11
いろいろと試してみましたが、まだうまくいきません。
Kylix3で作成したDSOをRedhat9上のapache2に組み込むには、なにか特殊な設定が
いるのでしょうか・・・?

稼動している環境とhttpd -lで表示される内容は一致しました。
borland-usのサイトからapache2用のpasも追加されています。
httpd.conf apachectlについても相違ありませんでした。(違いはサーバー名のみ)
MODULE_MAGIC_NUMBER_MAJOR、
MODULE_MAGIC_NUMBER_MINOR等は、稼動している環境と現在検証してる環境の
apache2が、まったく同一バージョンなので、問題ないはずです。

configure.logについては、いくつか相違がありました。
以下のとおりです。(Aが稼働中の環境、Bが現在苦戦中のサーバーです)

A:uname -r=2.4.18.0debug
B:uname -r=2.4.20-8

A:uname -v=#1 Fri Mar 14 06:23:49 EST2003
B:unema -v=#1 Thu Mar 13 17:54:28 EST2003

A: PATH: /usr/kerberos/sbin
PATH: /usr/kerberos/bin
B: 上記2行がない。

A:gcc(GCC) 3.2 20020903 (RedHat Linux 8.0 3.2-7)
B:gcc(GCC) 3.2.2 20030222 (RedHat Linux 3.2.2-5)

A:Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2/soecs
B:Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/soecs

A:gcc version 3.2 20020903 (RedHat Linux 8.0 3.2-7)
B:gcc version 3.2.2 20030222 (RedHat Linux 3.2.2-5)

A:/tmp/ccwK81SX.o:In functions 'main':
B:/tmp/ccii66wt.o(.text+0xf):In functions 'main':

RedHat自体およびgccのバージョンが若干違うのと、PATH: /usr/kerberos/sbinのあたり
あとは、最後のよくわからない所が違うようです。
やはりconfigure時になにかやり残しがあるのでしょうか?
よろしくお願いします。

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