• 締切済み

Apache1.33 PHP4.3.9 でApacheが起動できない

■環境 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

みんなの回答

  • entree
  • ベストアンサー率55% (405/735)
回答No.5

なぜ今になって 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
  • Lean
  • ベストアンサー率72% (435/603)
回答No.4

#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

bontabonta
質問者

補足

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

回答No.3

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

bontabonta
質問者

補足

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

回答No.2

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

bontabonta
質問者

補足

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

noname#39970
noname#39970
回答No.1

26行目がおかしい と書いてある libexec/mod_env.so が参照している"ap_palloc"というのが見あたらないと言っている 一見正しくmakeしているように見えてmod_env.soが正しく作れてない模様。 http://www.google.co.jp/search?q=mod_env.so%20ap_palloc&hl=ja&lr=lang_ja LD_LIBRARY_PATHとかLD_FLAGSを設定して必要な物が有る場所を正しく設定してmakeするとどうだろう、というような記事が見あたる。

bontabonta
質問者

お礼

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

関連するQ&A