主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

apache2 にモジュールを追加する

最終更新日 2012-08-01 21:50:50 (1年以上前の記事です)

何か知らないけど、パッケージを用いてない Linux を使ってるせいで apache とか手動インストールされていた。
しかも時々必要なモジュールが追加されてないので、後からどうやって追加するのか調べと時のメモ。

一応環境
Apache/2.0.59
OS: ??

インストーラされてるモジュールの確認

# /usr/local/apache2/bin/httpd -l

これでモジュールの一覧が見える。ここに mod_so.c が無いともう駄目らしい。

コンパイル

ソースがあるディレクトリを探して移動する。
rewrite module は httpd-2.0.59/modules/mappers にあった。

# /usr/local/apache-2.0/bin/apxs -c mod_rewrite.c

インストール

そしてインストール

# /usr/local/apache-2.0/bin/apxs -ian rewrite mod_rewrite.la

設定を確認して apache をリロード

httpd.conf には勝手に追加されるらしい。

LoadModule rewrite_module modules/mod_rewrite.so

なので後は再ロードする。

# /etc/init.d/httpd reload

.so not found error

たまに手動で .so ファイルを生成してやらないといけないことがあるようだ。
例えばこんなエラーを得たとき。例は headers モジュールをインストールしようとした時。

Warning!  dlname not found in /usr/local/apache/modules/mod_headers.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/local/apache/modules/mod_headers.so
chmod: cannot access `/usr/local/apache/modules/mod_headers.so': No such file or directory
apxs:Error: Command failed with rc=65536

このときは手動で .so ファイルを作成しコピーして回避する。

$ gcc -shared -o mod_headers.so mod_headers.o
# cp mod_headers.so /usr/local/apache/modules/

そして再びインストールを実行。

# /usr/local/apache/bin/apxs -ian headers mod_headers.la

mod_proxy 系のインストール時の注意点

mod_proxy をインストールしている際に以下のようなエラーが出たら

10): Symbol not found: _ap_proxy_lb_workers Referenced from: /usr/local/modules/mod_proxy.so Expected in: flat namespace

proxy_util.c をインストールし忘れている可能性が高いです。なので以下のようにコンパイルしてやるとなおります。

$ /usr/local/bin/apxs -c mod_proxy_balancer.c proxy_util.c

ちょっとはまったので。追記

最終更新日 2012-08-01 21:50:50

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google