Apache2.2にmod_SpeedyCGIを組込むにはパッチが必要
Apache2.2でSpeedyCGIのperlモジュールを使うのならyumなりで一発インストールできるけど、mod_SpeedyCGIをインストールしようとするとmakeでコケる。
どうやらパッチを当ててからmakeする必要があるようだ。
参考:Apache2.2にmod_SpeedyCGIを組み込む方法(パッチファイルのあて方) / レンタルサーバー BIG-server.com
パッチファイルのダウンロード
パッチファイル:CGI::SpeedyCGI with apr-1.0
※パッチファイルはwgetで入手できないのでダウンロードしておいてFTP等でアップロードする必要がある。
SpeedyCGIのインストール
$ wget http://www.cpan.org/modules/by-authors/id/H/HO/HORROCKS/CGI-SpeedyCGI-2.22.tar.gz
$ tar zxvf CGI-SpeedyCGI-2.22.tar.gz
#####
# CGI-SpeedyCGI-2.22/mod_speedycgi2 に
# ダウンロードしたパッチをFTP等でアップロードする
#####
$ cd CGI-SpeedyCGI-2.22/mod_speedycgi2
#パッチをあてる
$ patch -p1 < patch-mod_speedycgi2.c
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- src/mod_speedycgi2.c.orig Tue Oct 7 13:03:48 2003
|+++ src/mod_speedycgi2.c Sun Jan 23 20:42:43 2005
--------------------------
File to patch: ../src/mod_speedycgi2.c # パッチをあてるファイルを指定
$ cd ../
$ perl Makefile.PL
Optional mod_speedycgi support.
Mod_speedycgi increases performance under Apache by avoiding the fork/exec
overhead associated with each request under normal SpeedyCGI. However, it
requires a working copy of "apxs" in your path, Apache with mod_so
support, and additional Apache configuration.
Compile mod_speedycgi (default no)? yes # yesを入力
$ make
$ make test
$ sudo make install
・・・エラー。
make[1]: apxs: コマンドが見つかりませんでした make[1]: *** [install] エラー 127 sudo make install -i # エラーを無視するオプションをつけてインストール。
mod_SpeedyCGIがインストールされないので、Apacheモジュールディレクトリにコピーする。
README通り、CGI-SpeedyCGI-2.22/mod_speedycgi2/.libs に mod_speedycgi.so が作成されているので /usr/lib/httpd/modules にコピーする(CentOSの場合)
$ cd mod_speedycgi2/.libs $ sudo cp mod_speedycgi.so /usr/lib/httpd/modules
2013/3/6追記
一度makeしてからパッチを当てる必要があるみたい。
しかも以前の記事のエラーは apxs が見つからないエラーですね(´・ω・`)
yum install httpd-devel でインストールされる。/usr/sbin/apxs があるのにエラーになる場合はpathが通っていない。
# perl Makefile.PL Writing Makefile for mod_speedycgi2 # make rm -f mod_speedycgi2.c cp ../src/mod_speedycgi2.c mod_speedycgi2.c rm -f speedy_util.c cp ../src/speedy_util.c speedy_util.c .... apxs:Error: Command failed with rc=65536 . make: *** [mod_speedycgi.la] Error 1 ・エラーになるのでパッチを当てる # patch -p1 < patch-mod_speedycgi2.c patching file mod_speedycgi2.c ・もう一度 make して make install # make # make install apxs -i -a -n 'speedycgi' mod_speedycgi.la /usr/lib/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib/apr-1/build/libtool' mod_speedycgi.la /usr/lib/httpd/modules /usr/lib/apr-1/build/libtool --mode=install cp mod_speedycgi.la /usr/lib/httpd/modules/ cp .libs/mod_speedycgi.so /usr/lib/httpd/modules/mod_speedycgi.so cp .libs/mod_speedycgi.lai /usr/lib/httpd/modules/mod_speedycgi.la cp .libs/mod_speedycgi.a /usr/lib/httpd/modules/mod_speedycgi.a chmod 644 /usr/lib/httpd/modules/mod_speedycgi.a ranlib /usr/lib/httpd/modules/mod_speedycgi.a PATH="$PATH:/sbin" ldconfig -n /usr/lib/httpd/modules ---------------------------------------------------------------------- Libraries have been installed in: /usr/lib/httpd/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. ---------------------------------------------------------------------- chmod 755 /usr/lib/httpd/modules/mod_speedycgi.so [activating module `speedycgi' in /etc/httpd/conf/httpd.conf]
関連リンク:mod_speedycgi2 on Apache 2.2 - daily dayflower - パッチ作者?
-
前の記事
DNSのmxレコードでハマる。ValueDomain編 2011.01.31
-
次の記事
print <<EOM;〜EOMの中にperlの式を書く 2011.02.16