Apache



2013年 11月 1

Apache2.2にmod_SpeedyCGIを組込むにはパッチが必要

で以前やったんだけどイマイチ手順がまとまっていないので。

ポイント
  • 作業ディレクトリは /root/src
  • httpd-develが必要
  • rootで作業した方が楽

1. Apacheインストール

$ su -
# yum install httpd httpd-devel

※ apxs が必要になるので httpd-devel をインストールすること

2. Speedy_CGIをダウンロードしてパッチを当てる

# cd /root/src
# wget http://daemoninc.com/SpeedyCGI/CGI-SpeedyCGI-2.22.tar.gz
# tar zxvf CGI-SpeedyCGI-2.22.tar.gz
# cd CGI-SpeedyCGI-2.22/mod_speedycgi2
# wget http://sourceforge.net/p/speedycgi/patches/_discuss/thread/f3ff7350/afa5/attachment/patch-mod_speedycgi2.c
# patch -p1 < patch-mod_speedycgi2.c

※ 参考ページにはパッチファイルをFTPでアップロードする必要があると書いてあるけどwgetで出来た。
パッチ公開ページ

3. Speedy_CGIインストール

# perl Makefile.PL
# make install
〜〜〜 コンパイル中 〜〜〜
----------------------------------------------------------------------
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]
超参考:

Filed under: Apache,インストールメモ

Trackback Uri






2011年 2月 16

FastCGIをApacheで使うには
mod_fastcgi
mod_fcgid
がある。

$ wget http://jaist.dl.sourceforge.net/sourceforge/mod-fcgid/mod_fcgid.2.2.tgz
$ tar zxvf mod_fcgid.2.2.tgz
$ cd mod_fcgid.2.2
$ make top_dir=/usr/lib/httpd
$ sudo make top_dir=/usr/lib/httpd install

make 時に top_dir=/usr/lib/httpd を指定することでMakefileの書き換えが必要ない。
.. continue reading ..


Filed under: Apache

Trackback Uri






2011年 2月 7

Apache2.2でSpeedyCGIのperlモジュールを使うのならyumなりで一発インストールできるけど、mod_SpeedyCGIをインストールしようとするとmakeでコケる。

どうやらパッチを当ててからmakeする必要があるようだ。
参考:Apache2.2にmod_SpeedyCGIを組み込む方法(パッチファイルのあて方) / レンタルサーバー BIG-server.com

パッチファイルのダウンロード

パッチファイル:CGI::SpeedyCGI with apr-1.0

※パッチファイルはwgetで入手できないのでダウンロードしておいてFTP等でアップロードする必要がある。 .. continue reading ..


Filed under: Apache,perlモジュール

Trackback Uri






2010年 8月 23

Apache でIPベースのバーチャルホストを使う場合の注意点

VirtualHostディレクティブを利用する。VirtualHostディレクティブは、

<VirtualHost IPアドレス>

</VirtualHost>

のように記述し、これが1ホスト分のブロックとなる。つまり、バーチャルホストでホスティングしたいホストの数だけ、このブロックを記述すればよい。

IPベースで注意する点は、<VirtualHost IPアドレス>のIPアドレスを各ブロックで異なるものにしなければならないということである。Apacheは、このIPアドレスでホストの設定のブロックを識別するからである。

バーチャルホストによる複数サイトの同時運用 より

つまり1つのIPアドレスで1つのサイト(FQDN)のみしか運営出来ない。
名前ベースのバーチャルホストと大きく異なる。

名前ベースのバーチャルホストと混合させる場合

名前ベースのバーチャルホストとIPベースのバーチャルホストを混合させる場合、 VirtualHost ディレクティブにポート番号も付加する。

<VirtualHost *:80>

</VirtualHost>

<VirtualHost IPアドレス:80>

</VirtualHost>

SSL を利用する場合も同様に 443 など、ポート番号を付加する。

IPベースでバーチャルホストを利用する場面としては(自分の場合)SSLサイトを作る際、ドメインが違うサイトでSSL証明書を使い分けなくてはならない為。通常の場合なら名前ベースのバーチャルホストで用が足りるはず。

ワイルドカード証明書では異なるドメインに対応出来ないし。ただ、ベリサインからマルチドメインなる証明書の販売が始まるとか始まったとか。


Filed under: Apache

Trackback Uri






2010年 6月 30

Perl の $ENV{PATH} は何処を参照しているのか?

例えば bayon を perl から使うのに Text::Bayon モジュールを利用したら
sh: bayon: command not found
と言うエラーログが残る。

コマンドが見つからない = パスが通っていない、と言う事なんだろうけど、apache を2.2 にしたらパスが変わったのか apache2.0 の時に使えた Lingua::JA::Summarize を使用するスクリプトも

sh: mecab: command not found

となる。

mecab も bayon も /usr/local/bin にインストールしてあるのだけれど、$ENV{PATH} を調べてみると、
$ENV{PATH} = /sbin:/usr/sbin:/bin:/usr/bin
となっており、/usr/local/bin にはパスが通っていない。

この 環境変数はどこを参照しているのかまさに以下のページのような迷い方をした。

apacheの起動ユーザーにPATH通しときゃいいのか?とか、httpd.confにそういう設定が?とか、もしかしてPHP.iniにそんな設定が?とか思ってたんですが、全部ハズレ。

Apache2の環境変数PATHを設定する – masahilog

SetEnvやPassEnvディレクティブを追加してみたり、. bash_profile を変更したり、散々いろいろ試してみたけど、上記ページのおかげでヒントが得られたのでメモ。

CentOS系(というかRedhat系、だろうか)は/etc/sysconfig/httpdがそれに該当するような。探しても調べてもenvvarsの影も形も無かったけど、/etc/init.d/httpdの冒頭箇所で/etc/sysconfig/httpdがあったらそれを評価してからhttpdが起動するようになってる。なんでこんな仕様なんだろうか。

追記でこのように書かれていたのだけれど、/etc/rc.d/init.d/httpd を見てみると、 /etc/sysconfig/httpd のみではなく、 /etc/rc.d/init.d/functions も参照している。

/etc/rc.d/init.d/functions を見ると、ビンゴでした。

# Set up a default search path.
PATH="/sbin:/usr/sbin:/bin:/usr/bin"
export PATH

ここのパスを変更して、保存。

注意点としては、apache を再起動ではなく 停止してから起動する事。
再起動では反映されませんでした。

ちなみに CentOS (4.x 5.x) での話ですので他のディストリビューションでは違うかもしれません。


Filed under: Apache,CentOS4.x,CentOS5.x,perl

Trackback Uri