以下、ログ
/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
今度試した時に追記するよ。