ブログ移設しました。

bloggerから記事を移設しました。


HUGOで記事を書いてみると思いのほか書きやすかったので移動。

火曜日, 4月 14, 2015

mod_perlがビルドできなかった

mod_perlがビルド時点でしくってるので確認。

以下、ログ

/home/luna/perl5/perlbrew/perls/perl-5.18.4/bin/perl /home/luna/perl5/perlbrew/perls/perl-5.18.4/lib/5.18.4
/ExtUtils/xsubpp  -typemap /home/luna/perl5/perlbrew/perls/perl-5.18.4/lib/5.18.4/ExtUtils/typemap -typemap
 /usr/local/src/mod_perl-2.0.8/xs/typemap  Connection.xs > Connection.xsc && mv Connection.xsc Connection.c
cc -c  -I/usr/local/src/mod_perl-2.0.8/src/modules/perl -I/usr/local/src/mod_perl-2.0.8/xs -I/usr/include/a
pr-1 -I/usr/include/httpd -D_REENTRANT -D_GNU_SOURCE -fPIC -fno-strict-aliasing -pipe -fstack-protector -I/
usr/local/include  -DMOD_PERL -DMP_COMPAT_1X -DLINUX -D_REENTRANT -D_GNU_SOURCE  -O2   -DVERSION=\"2.000008
\" -DXS_VERSION=\"2.000008\" -fPIC "-I/home/luna/perl5/perlbrew/perls/perl-5.18.4/lib/5.18.4/x86_64-linux-t
hread-multi/CORE"  -DMP_HAVE_APR_LIBS Connection.c
Connection.xs: 関数 ‘XS_Apache2__Connection_remote_addr’ 内:
Connection.xs:117:33: エラー: ‘conn_rec’ は ‘remote_addr’ という名前のメンバを持っていません
     RETVAL = (APR__SockAddr) obj->remote_addr;
                                 ^
Connection.xs: 関数 ‘XS_Apache2__Connection_remote_ip’ 内:
Connection.xs:134:26: エラー: ‘conn_rec’ は ‘remote_ip’ という名前のメンバを持っていません
     RETVAL = (char *) obj->remote_ip;
                          ^
Connection.xs:138:13: エラー: ‘conn_rec’ は ‘remote_ip’ という名前のメンバを持っていません
          obj->remote_ip = (char *) (SvOK(ST(1)) ?
             ^
make[3]: *** [Connection.o] エラー 1
make[3]: ディレクトリ `/usr/local/src/mod_perl-2.0.8/WrapXS/Apache2/Connection' から出ます
make[2]: *** [subdirs] エラー 2
make[2]: ディレクトリ `/usr/local/src/mod_perl-2.0.8/WrapXS/Apache2' から出ます
make[1]: *** [subdirs] エラー 2
make[1]: ディレクトリ `/usr/local/src/mod_perl-2.0.8/WrapXS' から出ます
make: *** [subdirs] エラー 2
[luna@v3290 mod_perl-2.0.8]$

んー。。。。なんかすでに入っている何かを呼び出そうとして失敗してるのかな。

調べてみると、以下の記事

httpd -V
Server version: Apache/2.4.6 (CentOS)
Server built:   Mar 12 2015 15:07:19
Server's Module Magic Number: 20120211:24
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

今までの環境ってそういえばみんなapache2.2系でしたね。

stackoverflowで提示されている方法試してみるか。

I solve that problem by installing apache2 via apt-get and installing Apache2::RequestRec via cpan
or

Try to run these commands before make

make source_scan

make xs_generate

makeのターゲット指定をまず試してみた。
結果はダメで、再度perl Makefile.PLを叩いても結果一緒です。

もう一つのperlモジュールもmod_perl持ってきてから、なので、これも通らなさそう。

となるとこれか。。

Unfortunately upstream mod_perl is not ported to Apache 2.4 yet.

AFAIK Debian developers went ahead and made some changes that allows you to compile and use mod_perl on Apache 2.4. Here is there source tree http://svn.apache.org/repos/asf/perl/modperl/branches/httpd24

今度試した時に追記するよ。

0 件のコメント:

コメントを投稿