アプリ版:「スタンプのみでお礼する」機能のリリースについて

■環境
Microsoft Virtual PC 上でFreeBSD動作(WindowsXP Serviec Pack 2)
FreeBSD4.10
Apache1.3.3
PHP4.3.9
PostgreSQL8.2.4

○Apache1.3.3のインストール
./configure --enable-shared=max --enable-module=most
make
make install

○PHP4.3.9のインストール
./configure --without-mysql --with-apxs=/usr/local/apache/sbin/apxs
--enable-mbstring --with-pgsql
make
make install
cp php.ini-dist /usr/local/lib/php.ini

○/usr/local/apache/etc/httpd.conf の内容

-----------------------------------------------------------
# Example:
# LoadModule foo_module libexec/mod_foo.so
LoadModule env_module libexec/mod_env.so
LoadModule config_log_module libexec/mod_log_config.so
LoadModule mime_magic_module libexec/mod_mime_magic.so
LoadModule mime_module libexec/mod_mime.so
LoadModule nagotiation_module libexec/mod_nagotiation.so
LoadModule status_module libexec/mod_status.so
LoadModule info_module libexec/mod_info.so
LoadModule includes_module libexec/mod_include.so
LoadModule autoindex_module libexec/mod_autoindex.so
LoadModule dir_module libexec/mod_dir.so
LoadModule cgi_module libexec/mod_cgi.so
LoadModule asis_module libexec/mod_asis.so
LoadModule imap_module libexec/mod_imap.so
LoadModule action_module libexec/mod_actions.so
LoadModule speling_module libexec/mod_speling.so
LoadModule userdir_module libexec/mod_userdir.so
LoadModule proxy_module libexec/mod_libproxy.so
LoadModule alias_module libexec/mod_alias.so
LoadModule rewrite_module libexec/mod_rewrite.so
LoadModule access_module libexec/mod_access.so
LoadModule auth_module libexec/mod_auth.so
LoadModule anon_auth_module libexec/mod_auth_anon.so
LoadModule dbm_auth_module libexec/mod_auth_dbm.so
LoadModule digest_module libexec/mod_digest.so
LoadModule cern_meta_module libexec/mod_cern_meta.so
LoadModule expires_module libexec/mod_expires.so
LoadModule headers_module libexec/mod_headers.so
LoadModule usertrack_module libexec/mod_usertrack.so
LoadModule unique_id_module libexec/mod_unique_id.so
LoadModule setenvif_module libexec/mod_setenvif.so
LoadModule php4_module libexec/libphp4.so


# Reconstruction of the complete module list from all available modules
# (static and shared ones) to achieve correct module execution order.
# [WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE THIS, TOO]
ClearModuleList
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_mime_magic.c
AddModule mod_mime.c
AddModule mod_nagotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_speling.c
AddModule mod_userdir.c
AddModule mod_proxy.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
AddModule mod_auth_dbm.c
AddModule mod_digest.c
AddModule mod_cern_meta.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_usertrack.c
AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_php4.c


AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

------------------------------------------------

以下のコマンドでapacheを起動しようとすると
/usr/local/apache/sbin/apachectl start

下記のエラーが発生してしまいます。どうか解決策を教えてください。
/usr/local/apache/sbin/apachectl start
Syntax error on line 26 of /usr/local/apache/etc/httpd.conf
Cannot load /usr/local/apache/libexec/mode_env.so into server : /usr/local/apache/
libexec/mod_env.so: Undefined symbol "ap_palloc"
/usr/local/apache/sbin/apachectl start: httpd could not be started

A 回答 (5件)

26行目がおかしい と書いてある


libexec/mod_env.so が参照している"ap_palloc"というのが見あたらないと言っている

一見正しくmakeしているように見えてmod_env.soが正しく作れてない模様。
http://www.google.co.jp/search?q=mod_env.so%20ap …
LD_LIBRARY_PATHとかLD_FLAGSを設定して必要な物が有る場所を正しく設定してmakeするとどうだろう、というような記事が見あたる。
    • good
    • 0
この回答へのお礼

ご回答有難うございます。
ですが、リンク先を見ても初心者にはどうも
理解し難いというか、英文が苦手なので、
どこをどういうふうに直したらいいかわかりませんでした。
もしよろしければ、詳細にご教授願います。

お礼日時:2007/09/04 13:57

ところで、mod_soはインストールされてますか?

この回答への補足

./httpd -lを打ったところ
Compiled-in modules:
http_core.c
mod_so.c
と表示されたのでインストールはされていると
考えられます。

補足日時:2007/09/04 13:35
    • good
    • 0

#2です


enable-module=mostでコンパイルされてる辺り
やはりmod_soが組み込まれてないと思われます

この回答への補足

#2の回答の補足と同様です。

補足日時:2007/09/04 13:39
    • good
    • 0

#2の方も書いているけど、PHPをDSOで使用しようとしているけど、Apache自体DSOが使用出来るように作成されていないように見えます。



mod_soは、Experimental扱いだから--enable-module=mostでは組み込まれないはずなので--enable-module=allとか--enable-module=so等でconfigureしないとDSOは使用出来ないはずです。

あと

# httpd -l

で組み込まれているモジュールの一覧が表示されるので、ここにmod_so.cが表示されなければDSOが使用は使用出来ません。

例)
yggdrasill# ./httpd -l
Compiled-in modules:
 http_core.c
 mod_so.c

この回答への補足

#2の回答の補足と同様で
./httpd -lを打ったところ
Compiled-in modules:
http_core.c
mod_so.c
と表示されたのでインストールはされていると
考えられます。

補足日時:2007/09/04 13:41
    • good
    • 0

なぜ今になって Apache 1.3.3 なのでしょうか?



FreBSD のことはあまり詳しく知りませんが、事象は Apache 1.3.3 が新しい FreeBSD 3.x 以上のリリースに対応していないために発生しているように見受けられます。

src/Configure にはプラットフォームごとにコンパイル、リンクする際に使用するオプションの記述があります。

FreeBSD (2.x) の設定は、

*-freebsd*)
CFLAGS_SHLIB="-fpic"
LDFLAGS_SHLIB="-Bshareable"
LDFLAGS_SHLIB_EXPORT=""
SHLIB_SUFFIX_DEPTH=2

となっていますが、これを以下のように書き換える必要があります。

*-freebsd2*)
CFLAGS_SHLIB="-fpic"
LDFLAGS_SHLIB="-Bshareable"
LDFLAGS_SHLIB_EXPORT=""
SHLIB_SUFFIX_DEPTH=2
;;
*-freebsd[3-9]*)
CFLAGS_SHLIB="-fpic"
LDFLAGS_SHLIB="-Bshareable"
OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
if [ "x$OBJFORMAT" = "xelf" ]; then
LDFLAGS_SHLIB_EXPORT="-E"
SHLIB_SUFFIX_DEPTH=0
else
LDFLAGS_SHLIB_EXPORT=""
SHLIB_SUFFIX_DEPTH=2
fi
;;

(ref.)
-E, -export-dynamic
ELF ファイルを作成する際に、全てのシンボルをダイナミックなシンボルテーブルに追加する。通常ダイナミックシンボルテーブルには動的なオブジェクトによって用いられるシンボルのみが含まれている。このオプションは dlopen を使う場合などに必要となる。

参考URL:http://archive.apache.org/gnats/3641
    • good
    • 0

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