自作NAS第8回 初心者向け設定でCentOS6にapache2.4とphp5.4をソースからインストールする(前編)

apache-logo

色々といじってきた自作NASですが、今の所バックアップ環境と共有フォルダとしての機能を手に入れました。
このままでも十分に機能するんですが、せっかくLinuxで構築した環境ですしそれなりのスペックで建設しましたので更なるパワーアップを計って行こうと思います。

具体的には、Apache(httpd)とPHP、あとMySQLを導入し 所謂LAMP環境を用意しておきます。
別に全然必須ではないです。 けど、そのうちオープンソースのDLNAサーバであるMediaTombとかをインスコしたいなーなんて考えてたりするのですが、どうもLAMP環境が必要とか書いてあったりしたり。
今後の為と思ってインスコしました。 (あと、来年にはWevDAVとかもやりたいっすね〜)

で、ちなみになんですが今回は初めてソースからコンパイルして入れてみました!
その手順とかをできるだけ1年前の私みたいな感じの人に伝わればいいなw と思いエントリーですー

今回はApache(httpd)のインストールを紹介します。
環境、バージョン的にはは CentOS6.3に、httpd-2.4.3のインストールとなります
※次回PHP5.4.9を入れます
それまでの間に既に入れてるライブラリとかもいくつかあったりしますがw 流石に追いきれないですwすいませんっw
あ、あと途中で色々とつっかかってるんですがw 一応エラーとかで検索してくる人もいると思って、本当にインストールした時の状況そのままでお伝えしてますw(自分が楽をする為では・・!?)

・・・それではいきます!( *‘∀‘ )ノ

(13/1/1元旦に追記w)
Apache等のインストールでは、rootになって実行してましたが、毎回rootになるのもどうかと思いsudoコマンドを入れました。
先にsudoを入れて一般ユーザの状態のままインストール作業をしたい人は参考にしてください。
➡ Linuxのsudoコマンドと最初の設定について

何はともあれ、ソースを落として展開

言わずもがなでござるね。 アパッチたんのソースはこちらからDL可能です。
基本的にインストール先のディレクトリは /usr/local としておきます。

ではwgetから〜

#su
#cd /usr/local/src
#wget http://ftp.riken.jp/net/apache//httpd/httpd-2.4.3.tar.gz
// 展開
tar vxfz httpd-2.4.3.tar.gz
//展開されたディレクトリに移動
cd httpd-2.4.3

//では configureしようず
./configure --enable-so --enable-rewrite --enable-ssl --enable-mods-shared=all

と、その前に今回指定したconfigureのオプションについて

コンパイル時のオプションって絶対全部覚えきれないですよね! しかも公式のドキュメントを読んでも時間かかるし・・
っていう感じだと思うので、基本的に周りの人がやってる(w)やつを紹介です。
もちろん目的と時期(新しいモジュールが出てたりとかなんとか、、)で全然変わってくると思うのであくまで2012年12月くらいの参考値ですよ〜

–enable-so

⇒ DSOの有効化オプションです。DSOを有効にしておけば、後でphpモジュールの追加だとかruby関連のモジュール追加だとかやるたんびにapacheのインストールをしなくて済みます。

そもそもDSOとかって何やねんー っていう方は、⬇こちらを読まれるといいかもです。 とても分かりやすいです。
ぱそ子のめもさん(http://blog.goo.ne.jp/puri69/e/134035eadbc31ff98697d126bbaca276)

–enable-module=rewrite

⇒ URLの書き換え機能をONにします。指定したパターンにマッチしたURLのアクセスを指定のURLへリダイレクト(301)するとか。
すぐには使わないかもしれませんが、とりあえず入れておくと後々便利です。
詳しい設定は必要になった際にhttpd.conf内で設定してく事になります。

–enable-ssl

⇒ SSLの暗号化通信を利用するためのモジュールです。

やってみるとわかりますが、このモジュールは外部ライブラリが必要です。(apacheのソースに同梱されていません)。
なので、個別にライブラリを落とす必要があります。

で、一個注意なのが、sslは企業が販売する商用ライセンスとopen-sslの2種類があるという点です。
今回は自宅nasに入れるだけでそこまでサポートとか気にしてないのでopen-sslを入れたいと思います。

また、検索すれば分かりますが、open-sslの入れ方もCentOSの場合はyumでパッケージを入れるパタンとソースからビルドするパタンの2種類があります。
(めんどくせーっすなー!ヽ(´A`)ノ)
もちろんソースから入れられたらいいんでしょうけど、ちょっと時間ないっすわ笑
なのでyumってしまいます

 # yum -y install openssl-devel

スコン! と入りました。

–enable-mods-shared=all

⇒ こまごましたモジュールはこのオプションで”all”を指定すると全部入ってくれるようです。

しかし、前述のrewriteや、sslなど一部モジュールは有効にならないようなので、注意が必要です。

ちなみに、具体的に何が入るのかは現段階ではよく分かっていません笑

では早速先ほどのターミナルの続きで、configureを実行したいと思います。

# ./configure --enable-so --enable-rewrite --enable-ssl --enable-mods-shared=all
(略)
checking for APR... no
configure: error: APR not found. Please read the documentation.

早速、怒られましたww

google先生に聞いてみると早速同じ境遇になっていた先生を発見!
satospoさん (http://satospo.sakura.ne.jp/blog_archives/tech/apache/centos6_apache241.html)

どうも2.4以降ではこのAPRが同梱されなくなったようですね。
というわけで、aprとapr-utilの2つをインストールする必要があるようです。

めんどうだからyumでできないか!? と思って上記先生のブログを読んで見ると、yumで管理されているパーケージのバージョンが古く、ダメだったそう。
ただ、ブログのエントリが2月だったから、今なら行けるのでは?! などと淡い期待をしつつyum infoを実行しましたら、、、

# yum info apr

(略)

Available Packages
Name : apr
Arch : i686
Version : 1.3.9

はい、変わってないー笑

やっぱり先生のブログに書いてある通り、ソースを落としてきてhttpdのライブラリ内にぶち込みたいと思います。

(やってみたら案外楽勝でした〜 ( ´ ▽ ` )ノ  )

APRとAPR-Utilをソースをhttpdのソースライブラリ内にぶち込みます

APRとAPR-Utilのソースコードはこちらにあります ⇒http://apr.apache.org/download.cgi

APR 1.4.6 と APR-util 1.5.1 の2つのtar.gzを落としてきて展開ですー

# cd /usr/local/src
# tar vxzf apr-1.4.6.tar.gz
# tar vxzf apr-util-1.5.1.tar.gz

// これら展開したソースらを httpd-2.4.3のsrclib配下に設置とのことですので

# mv apr-1.4.6 httpd-2.4.3/srclib/apr
# mv apr-util-1.5.1 httpd-2.4.3/srclib/apr-util

// 名前も変えておきます。

これだけです。 けっこうあっさりですね。 けどなんで同梱してくれないんだろう。。。。

というわけで再びconfigureのお時間です。

# ./configure --enable-so --enable-rewrite --enable-ssl --enable-mods-shared=all

// 略 ババー! っと流れて、今度はいけるだろう と思っていた矢先、止まりました。

configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

との事。 libpcreはperl互換の正規表現ライブラリだそうです。 てか、perlがデフォで入ってるのに、なんでこういうの入っていないんだろう。。

まぁいいや。

# yum install pcre-devel

で一瞬で入ります。

はい! 再びチャレンジです!

# ./configure --enable-so --enable-rewrite --enable-ssl --enable-mods-shared=all

//(略)

// 終った!! make とインストールを実行してゴールですね。

# make
# make install

これで無事インストール自体は終了です。

では早速起動してみましょう

# /usr/local/apache2/bin/apachectl start

AH00557: httpd: apr_sockaddr_info_get() failed for home_server2

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

あ、そうですね笑
まだhttpd.confを何も編集していないので、以前/etc/sysconfig/networkに追加したHOSTNAMEの設定がhttpdは知らんといっています。

httpd.confの設定は後でチョコチョコといじるのですが、とりあえずServerNameの記述を正すだけでエラーが消えるので直しておきます。

# /usr/local/apache2/conf/httpd.conf

#ServerName www.example.com:80

↓

ServerName hogehoge_server

// /etc/sysconfig/networkで以下のように設定した人の例

HOSTNAME=hogehoge_server

リスタートしてみるテスト

# /usr/local/apache2/bin/apachectl restart

無言・・

はい、OK!w
つーわけで、いったんブラウザ側でも確認してみたいと思います。

ブラウザをたてて、アドレスに192.168…
ちょっとまって! またiptablesの80番をあけるのを忘れているわよ!!

というわけで、80番をあけましてアクセスしてみませう。It works! と出てくるのを確認できれば成功な感じですね。

ちなみに、ソースからインスコした場合のドキュメントルートは
/usr/local/apache2/htdocs
と、なっています。

# cat index.html で一応確認しておくとよいかと。。。

というわけでapacheのインストール手順はこれで終わりです。
細かいhttpd.confの設定とかも色々変更していかないとアカンわけですが、作るサービスとかによってまちまちだと思いますので、いったんはこれで終了します。
時間があれば修正すべきconfファイル内のディレクティブ一覧〜 とかエントリーしてみたいですが、、、 どっかの誰か書いてないですかねwww

では次回、phpのインスコをしてapache+php環境を設定しようと目論見ます。
またよろしくお願いします〜〜



関連記事

Comment





Comment



*