CentOS6 64bit + Perl 5.16.1 + mod_perl 2.0 のコンパイルでエラー


CentOS6 64bit
Perl 5.16.1
mod_perl 2.0.7

上記環境でコンパイルしようとすると以下のようなエラーが出て
mod_perlのコンパイルが通りません。

libperl.a(op.o): relocation R_X86_64_32S against `PL_sv_yes' can not be used when making a shared object; recompile with -fPIC 
libperl.a: could not read symbols: Bad value

海外のフォーラムで解決方法を探ると…
どうやらCentOSの64bitを利用時に、perlのコンパイルオプションが必要のようです。
今回たまたまperl 5.16系を利用する必要があったので、以下のようにして導入しました。

wget "http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz"
tar zxvf perl-5.16.1.tar.gz
cd perl-5.16.1
./Configure -des -Dprefix=/usr/local/perl-5.16.1 -de -Accflags='-fPIC' -Dloclibpth="/usr/lib64"
make
make test
make install

これで、mod_perlを導入。
以下ではapacheもコンパイル導入しているので、apxsの位置が違います。

wget http://perl.apache.org/dist/mod_perl-2.0-current.tar.gz
tar zxvf mod_perl-2.0-current.tar.gz
cd mod_perl-2.0.7
/usr/local/bin/perl Makefile.PL MP_APXS=/usr/local/apache/bin/apxs
make
make install

こんな感じです。

+--------------------------------------------------------------+
|                                                              |
| For details on getting started with mod_perl 2, see:         |
|                                                              |
|   http://perl.apache.org/docs/2.0/user/intro/start_fast.html |
|                                                              |
|                                                              |
| Found a bug?  File a bug report:                             |
|                                                              |
|   http://perl.apache.org/bugs/                               |
|                                                              |
+--------------------------------------------------------------+

無事に導入できました。

コメントを残す

メールアドレスが公開されることはありません。