【DOS対策】httpd-develをインストールしたのに、apxsコマンドがないと怒られた。(mod_dosdetector)

#はじめに
[こちらの方の記事](http://qiita.com/miwato/items/2a39e4116d231e015f9f)を参考に、DOS対策を行っていました。
順調に進んでいたのですが、```make```コマンドを実行すると下記のように怒られました。。。

```
# make
/usr/sbin/apxs -c    mod_dosdetector.c
make: /usr/sbin/apxs: Command not found
```


#httpd-develの確認
```apxs``` コマンドは、httpd-develの中にあるということなので、インストールしているか確認します。

```
# rpm -qa | grep httpd
httpd24u-devel-2.4.27-1.ius.centos7.x86_64
httpd24u-tools-2.4.27-1.ius.centos7.x86_64
httpd24u-2.4.27-1.ius.centos7.x86_64
httpd24u-mod_ssl-2.4.27-1.ius.centos7.x86_64
httpd24u-filesystem-2.4.27-1.ius.centos7.noarch
```

あれ。
ちゃんと```httpd24u-devel-2.4.27-1.ius.centos7.x86_64```はいらっしゃいますね。



#原因（apxsのパスが違っていた！）
httpd-develはきちんとインストールされていました。
てことは、パスがきちんと通っていないのかな？確認しましょう！

```
まずは、apxsコマンドのパスの場所を確認。
# which apxs
/bin/apxs
```

これですね。
さっきのエラーを確認すると。。。。

```
# make
/usr/sbin/apxs -c    mod_dosdetector.c
make: /usr/sbin/apxs: Command not found
make: *** [mod_dosdetector.so] Error 127
```


**実際のパスは```/bin/apxs/```なのに、```/usr/sbin/apxs```を実行しようとしています。。。**



#解決策（Makefile内のパスを/bin/apxsから、/usr/sbin/apxsに変更！）
さて、実行パスを/bin/apxsに変更しましょう。

```
makeコマンドで実行しているMakefileを開きます！　※該当箇所のみ記載
# vi /tmp/mod_dosdetector-0.2/Makefile
6行目らへんを変更
●変更前
APXS=/usr/sbin/apxs
●変更後
APXS=/bin/apxs
```

よし！早速make実行！

```
# make
/bin/apxs -c    mod_dosdetector.c
/usr/lib64/apr15u-1/build/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic  -DLINUX -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd  -I/usr/include/apr15u-1   -I/usr/include/apr15u-1   -c -o mod_dosdetector.lo mod_dosdetector.c && touch mod_dosdetector.slo
mod_dosdetector.c: In function 'create_shm':
mod_dosdetector.c:143:5: warning: format '%d' expects argument of type 'int', but argument 9 has type 'size_t' [-Wformat=]
     ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
     ^
mod_dosdetector.c: In function 'dosdetector_handler':
mod_dosdetector.c:260:5: warning: implicit declaration of function 'ap_default_type' [-Wimplicit-function-declaration]
     if (!content_type) content_type = ap_default_type(r);
     ^
mod_dosdetector.c:260:37: warning: assignment makes pointer from integer without a cast [enabled by default]
     if (!content_type) content_type = ap_default_type(r);
                                     ^
mod_dosdetector.c:262:25: error: 'conn_rec' has no member named 'remote_ip'
  address = r->connection->remote_ip;
                         ^
mod_dosdetector.c:275:22: error: 'conn_rec' has no member named 'remote_addr'
  addr = r->connection->remote_addr->sa.sin.sin_addr;
                      ^
mod_dosdetector.c:283:6: warning: unused variable 'last_count' [-Wunused-variable]
  int last_count = client->count;
      ^
mod_dosdetector.c: In function 'register_hooks':
mod_dosdetector.c:465:8: warning: ignoring return value of 'tmpnam', declared with attribute warn_unused_result [-Wunused-result]
  tmpnam(shm_name);
        ^
mod_dosdetector.c: In function 'create_shm':
mod_dosdetector.c:135:8: warning: ignoring return value of 'tmpnam', declared with attribute warn_unused_result [-Wunused-result]
  tmpnam(lock_name);
        ^
apxs:Error: Command failed with rc=65536
.
make: *** [mod_dosdetector.so] Error 1
```

・・・・・・なんか新しいエラーが２つほど出ましたね。。。

```
mod_dosdetector.c:262:25: error: 'conn_rec' has no member named 'remote_ip'
  address = r->connection->remote_ip;
                         ^
mod_dosdetector.c:275:22: error: 'conn_rec' has no member named 'remote_addr'
  addr = r->connection->remote_addr->sa.sin.sin_addr;
```


この問題解決は、[こちらの記事](http://qiita.com/takahashi-kazuki/items/0fdbf46685fe1c3bad67)へ！