いろんないみで

はまっちゃた

apxsを使ってapacheにmoduleを追加してみた

/usr/local/
├── apache2
│   ├── bin(bin以下にapxsがある)
│   ├── build
│   ├── cgi-bin
│   ├── conf
│   ├── error
│   ├── htdocs
│   ├── include
│   ├── lib
│   ├── logs
│   └── modules
└── src
    └── httpd-2.2.25 (httpd-2.2.25.tar.gzを展開したの)

apacheをインストールする時に./configureにオプションを指定しなかったので

[user@localhost ~]$ ls /usr/local/apache2/modules
httpd.exp  libphp5.so*

moduleがデフォルト以外でlibphp5PHPをインストールしたときに追加)しかないのでapxsでmod_rewriteを追加してみた

まずmod_rewrite.cの場所をしらべた。mod_rewrite.cはhttpd-2.2.25(httpd-2.2.25.tar.gzを展開したディレクトリ)のmodulesにあるはずなので

[user@localhost ~]$ cd /usr/local/src/httpd-2.2.25/modules/
[user@localhost modules]$ find `pwd` -name mod_rewrite.c
/usr/local/src/httpd-2.2.25/modules/mappers/mod_rewrite.c

mod_rewrite.cのパスが分かったので

[user@localhost modules]$ cd /usr/local/apache2/bin/
[user@localhost bin]$ sudo ./apxs -cia /usr/local/src/httpd-2.2.25/modules/mappers/mod_rewrite.c

でうまくいった 上手く追加できたかの確認は

[user@localhost bin]$ sudo ./apachectl -k restart
[user@localhost bin]$ ./httpd -M | grep 'rewrite'
Syntax OK
 rewrite_module (shared)

apxsのオプションは

  • c : compile
  • i : install
  • a : activate

を意味するらしい。「コンパイルしてインストールして設定してね」ということか。