• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Apacheモジュールのコンパイルの件で質問させていただきます。 )

Apacheモジュールのコンパイルに関する質問

c_iamokの回答

  • ベストアンサー
  • c_iamok
  • ベストアンサー率100% (2/2)
回答No.2

Makefileの内容の詳細が記述されていないから、 何とも言えないが、 本当はコンパイル時に、 関数「abc」が入っているファイル(test.h)を C側にinclude出来ていない感触があるな。 そんな気がする。 Makefileでgcc(CC)周りの記述を見て、 該当の関数が所属しているファイルのオブジェクトファイルが 読み込まれているか確認した方がいい気がする。 どんなもんだろ。

関連するQ&A

  • DB接続を行うApacheモジュールをApacheに追加して、Apacheを再起動するとエラー

    皆さんこんにちは。 Apacheモジュールを作りを行っていました。 モジュール内で、 MySQLにコネクションをはり、 queryリクエストの往来を行うだけの単純なものです。 モジュールの作成から次の順序で作業を進めました。 ----------------------------- (1)モジュールの作成 (2)モジュール(1)のmakeを行う -> make成功 (3)モジュールのsoファイルを配置。 /usr/local/apache2/modules/ に make時に作成された モジュールの「soファイル」を配置。 (4)httpd.confの編集 httpd.confに 作成したモジュールのディレクティブを挿入。 LoadModule db_connect_module modules/db_connect.so <Location /db_connect> SetHandler db_connect </Location> (5)Apacheのリスタート ----------------------------- (5)でapacheの再起動を行うと、 次のエラーが表示されました。 httpd: Syntax error on line 96 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_db_connect.so into server: /usr/local/apache2/modules/mod_db_connect.so: undefined symbol: mysql_query ここで不思議だったのは、 確かに、 作成したMySQLに接続するためのApacheモジュール内で、 「mysql_query」を利用していますが、 そのモジュールのmake時には エラーが表示されていなかったし、 make時にエラーが出なかったとおり、 モジュール内のソースでも、 記述した「mysql.h」も正常にインクルードされていると思います。 どうして、 apacheのhttpd.confは 「mysql_query」に関する 上記のエラーを出してくるのでしょうか? どなたか考えられる原因を アドバイスいただけるとありがたい次第です。 以上どうぞ宜しくお願い致します。

  • Apacheモジュールの追加方法

    ./configure --enable-module=so --enable-shared=max --activate-module= src/modules/php4/libphp4.a で、ApacheをLinuxへインストールしたのですが、mod_userdir.soがないというエラーになります。 モジュールを追加するにはどうすれば良いでしょうか? /etc/rc.d/init.d/httpd start Starting httpd: Syntax error on line 217 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/libexec/mod_userdir.so into server: /usr/local/apache/libexec/mod_user dir.so: undefined symbol: ap_os_is_path_absolute 又、Apacheはmodule=maxだとWWWサーバが 重くなるでしょうか?

  • apacheが起動するとき、phpのモジュールが正常に読み込まれたかど

    apacheが起動するとき、phpのモジュールが正常に読み込まれたかどうか調べたい。 /etc/apache2/conf.d/php.confに LoadModule php4_module modules/libphp4.so と書いておりますのでapacheはphp4モジュールをロードします。 #/usr/sbin/apache2 -k start -e debug とすると、 [Wed Oct 01 09:21:10 2010] [debug] mod_so.c(246): loaded module php4_module というようにphp4のモジュールがロードされていることが分かります。 そのPHPモジュールはさらにその先のモジュール(xdebug.soやmysql.soなど)を読み込めていないときのエラーを確認したいのです。例えば/etc/php.d/mysql.iniを編集して extension=mysqlaaaaaaaaaaaaaaaa.so などと有りもしないファイル名を書いたとします。この場合にファイルが見つからないというエラーをどこかに出力させたいのですがどのようにしたらよろしいでしょうか。 上記おかしなパスの状態でphpinfo();を実行しても単にmysqlのセクションが表示されなくなっただけの状態で、エラーはかかれていません。#php -v ではエラーが表示されますが、これとapache起動時のエラーは同一ものではないですよね?! # php -v PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/mysqlaaaaaaaaaaaaaaaa.so' - /usr/lib/php4/mysqlaaaaaaaaaaaaaaaa.so: cannot open shared object file: No such file or directory in Unknown on line 0 バージョン apache 2.2.3 php 4.4.8 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • apacheのモジュールについて

    Apache初心者で勉強中です。 Fedoracore5既存のApache2でモジュールを追加する方法がわからず困っています。 具体的には、下記のことががわかりません。 1."mod_perl2"を入れたいが、Fedoracore5既存のApache2がインストールされているディレクトリが、どこを指すのかわからない。  ("/etc/httpd/conf/" or "/usr/sbin/"?) 2."mod_deflate"をコンパイルしたいが、"mod_deflate.c"のあるディレクトリがわからない。 また、よろしければでいいのですが、apacheは、「OS既存」と「ソースをインストールしたもの」、どちらが使い勝手がよいでしょうか。 お答えいただけると幸いです。 初心者ゆえ、もしかしたら、言葉のはき違いがあるかもしれませんが、よろしくお願いいたします。

  • CentOs5.8Apacheのリビルド

    CentOS5.8でSNIを使おうと思っています。 そのためのOpenSSL1.0.1eはインストールできました そのOpensslをApacheに適用させるために既存のApacheのリビルドをしたいと思っています ですが、現在のApacheの設定をそのままにリビルドする方法はありますか? 現在1日はまってしまい、非常に困っています。 下記OpenSSLの更新作業 ===================================================== # wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz # tar zxvf openssl-1.0.1e.tar.gz # cd openssl-1.0.1e # ./config enable-tlsext -fPIC shared # make # make test # make install ※デフォルト/usr/local/ssl/にインストールされるみたいです。 ・まずはパスを認識させます # echo /usr/local/ssl/lib > /etc/ld.so.conf.d/openssl.conf # ldconfig ・既存のopensslの実行ファイルを今回インストールした物と変更します。 # cd /usr/bin # mv openssl openssl.old # ln -s /usr/local/ssl/bin/openssl ・シェアードライブラリが正しくリンクできているか確認 # ldd /usr/local/ssl/bin/openssl linux-vdso.so.1 => (0x00007fff49bf2000) libssl.so.1.0.0 => /usr/local/ssl/lib/libssl.so.1.0.0 (0x00002b5327442000) libcrypto.so.1.0.0 => /usr/local/ssl/lib/libcrypto.so.1.0.0 (0x00002b53276a7000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003f36000000) libc.so.6 => /lib64/libc.so.6 (0x0000003f35400000) /lib64/ld-linux-x86-64.so.2 (0x0000003f34c00000) =================================================================================== 宜しくお願い致します。

  • Apache2 インストール後モジュール追加(proxy, proxy_ajp)

    標題の件でご教授ください。 現象としては、Apache2にモジュール(mod_proxy.soおよびmod_proxy_ajp.so)追加しようとして、mod_*.soが作成されず困っております。 なお、インストール時、configureにオプション"--enable-proxy" "--enable-proxy-ajp"を付加する方法は知っていますが、インストール後にモジュールを追加する方法を教えていただきたいです。 ■環境 OS: Red Hat Enterprise Linux 5.3 ■参考ページ 「Enjoi Blog」~apache2 にモジュールを追加する http://blog.enjoitech.jp/article/131 ■実行手順(mod_proxy.soの場合の例) 1.コンパイル。 [root@localhost proxy]# /usr/local/apache2/bin/apxs -c mod_proxy.c proxy_util.c /usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -I/usr/local/apache2/include -I/usr/local/apache2/include -c -o mod_proxy.lo mod_proxy.c && touch mod_proxy.slo /usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -I/usr/local/apache2/include -I/usr/local/apache2/include -c -o proxy_util.lo proxy_util.c && touch proxy_util.slo /usr/local/apache2/build/libtool --silent --mode=link gcc -o mod_proxy.la -rpath /usr/local/apache2/modules -module -avoid-version proxy_util.lo mod_proxy.lo 2.オブジェクトが作成されていることを確認。 [root@localhost proxy]# ls -la mod_proxy.* -rw-r--r-- 1 root root 88327 2月 1 2009 mod_proxy.c -rw-r--r-- 1 root root 4942 1月 11 2007 mod_proxy.dsp -rw-r--r-- 1 root root 32152 11月 12 2008 mod_proxy.h -rw-r--r-- 1 root root 758 10月 23 21:42 mod_proxy.la -rw-r--r-- 1 root root 303 10月 23 21:42 mod_proxy.lo -rw-r--r-- 1 root root 180184 10月 23 21:42 mod_proxy.o -rw-r--r-- 1 root root 0 10月 23 21:42 mod_proxy.slo [root@localhost proxy]# ls -la proxy_util.* -rw-r--r-- 1 root root 81086 7月 3 20:57 proxy_util.c -rw-r--r-- 1 root root 305 10月 23 21:42 proxy_util.lo -rw-r--r-- 1 root root 148440 10月 23 21:42 proxy_util.o -rw-r--r-- 1 root root 0 10月 23 21:42 proxy_util.slo 3.インストール→失敗。 [root@localhost proxy]# /usr/local/apache2/bin/apxs -ian proxy mod_proxy.la /usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' mod_proxy.la /usr/local/apache2/modules /usr/local/apache2/build/libtool --mode=install cp mod_proxy.la /usr/local/apache2/modules/ cp .libs/mod_proxy.lai /usr/local/apache2/modules/mod_proxy.la cp .libs/mod_proxy.a /usr/local/apache2/modules/mod_proxy.a chmod 644 /usr/local/apache2/modules/mod_proxy.a ranlib /usr/local/apache2/modules/mod_proxy.a PATH="$PATH:/sbin" ldconfig -n /usr/local/apache2/modules ---------------------------------------------------------------------- Libraries have been installed in: /usr/local/apache2/modules If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,--rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- Warning! dlname not found in /usr/local/apache2/modules/mod_proxy.la. Assuming installing a .so rather than a libtool archive. chmod 755 /usr/local/apache2/modules/mod_proxy.so chmod: cannot access `/usr/local/apache2/modules/mod_proxy.so': そのようなファイルやディレクトリはありません apxs:Error: Command failed with rc=65536 以上、よろしくお願いいたします。

  • apache2のモジュール

    apache2のソースを入手してインストールして実行しましたが、 /usr/local/apache2/modules の中身はhttpd.expしかありません。 なのでhttpc.confのLoadModule~というのを20行ぐらいコメントアウトしました。 これは普通じゃない状態だと思います。 apache2の./configureの引数がよくなかったのでしょうか?

  • Cコンパイルエラーについて

    ◆OS Solaris 8 4/01 s28s_u4wos_08 SPARC ◆cソース(test.c) #include <stdio.h> int main() { printf("hello, world\n"); return 0; } ◆環境変数 PATH=/usr/sbin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/css/bin:/usr/sfw/bin:/opt/sfw/bin:/usr/ccs/bin:/usr/openwin/bin:/usr/openwin/bin LD_LIBRALY_PATH=/usr/lib:/usr/local/lib:. ◆コンパイル gcc -o test -g -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -L/usr/local/lib test.c -lsocket -lnsl -lmalloc -ldl -lld -lm -lcrypt -lsec -lc ◆エラー内容 ld: 重大なエラー: ライブラリ -lld: 見つかりません。 ld: 重大なエラー: ファイル処理エラー。test へ書き込まれる出力がありません。 collect2: ld はステータス 1 で終了しました 上記エラー対処方法をご教授下さい。宜しくお願いします。

  • PHPでC++[apacheの設定]

    apacheをとおして PHPでC++プログラムを実行したいのですが、 正しく実行できないので どなたかアドバイスをいただけたらと思い質問しました。 ターミナル上でC++を実行するPHPを実行したら正しく動くので おそらくはapacheの設定ができてないことが原因の気がします。 そこで、error_logを見た結果 dyld: Library not loaded: libcxcore.2.1.dylib Referenced from: /opt/local/apache2/htdocs/test/./test Reason: image not found とあったので、 C++のプログラムが動的モジュールを読み込む際に パスが通ってないことが原因ではないかと考えています。 (ちなみにlibcxcore.2.1.dylibは/usr/local/libにあります。) いろいろ検索をしてみて、 apacheにLD_LIBRARY_PATHを通せばいいのかとも思ったのですが、 あまり設定する方法もわからず、困っている状態です。 どんなことでもいいのでアドバイスを頂ければとおもいます。 よろしくお願いします。 ------------------------------------------------------------------------ OS:Mac 10.6 PHP:5.3.3 apache2:2.2.17 PHPもapache2もMacPortsを用いてインストールし、 その後サイトを見ながら設定しました。 また、 C++プログラムではOpenCVを用いたいために動的モジュールを読み込んでいます。 OpenCVを用いないC++プログラムで実行した際は動作しました。

    • ベストアンサー
    • PHP
  • apacheの設定

    Linuxの初心者です。 CentOSを使っていて、apacheの起動スクリプトの作成・実行権限の付与、ユーザの作成などが終わり、実際に起動させようと /etc/init.d/httpd start とやっても、以下のようなエラーメッセージが出ます。 Starting httpd: Syntax error on line 18 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp4.so into server: /usr/local/apache/modules/libphp4.so: cannot open shared object file: No such file or directory これの意味していることは何でしょうか? どうしたら解決できるでしょうか? よろしくお願いします。