「先生!squidサーバ導入メモです。その3」

squidソースの入手

ということで、squidのソースを入手してくる。
http://www.squid-cache.org/Versions/v3/3.1/
上記からsquid-3.1.8とLanguagePackを入手してくる。LanguagePackは必要なのかよく分からんが、まぁ、いいや。

squidソースのコンパイル

ってことで、以下のサイトを参考にしながらsquidソースをコンパイルしてみる。

http://linux.kororo.jp/cont/server/squid.php

まずはsquidユーザを作れといわれるんだけど、groupadd/useraddどちらもコマンド実行時に失敗して、すでにいるよ。と言われてしまう。くそぅ、yumコマンドで入れたからだな?ということで、とりあえずsquidユーザを消してみる。

userdel -f squid

ということでユーザを消したら、自動的にグループも消えたので、改めて作成し直し。

groupadd squid
useradd -g squid -d /home/squid -m squid
su squid
cd
mkdir src
cd src
tar xzvf /usr/local/src/squid-3.1.8.tar.gz
cd squid-3.1.8

で来ましたよ、ソースフォルダ。ってことで、configureコマンドを打ってみましょう。オプションはさっきのURLを参考にしつつ、まぁ、SSLが使えれば良いかな。ってことで、こんな感じで。

./configure --enable-default-err-language=Japanese --enable-icmp --enable-useragent-log --enable-referer-log --enable-snmp --enable-ssl

って打つと、おめーgccとか持ってねーじゃねぇか?というエラーが出る。
そういえば、そういうの必要だったよね・・・。そうだね。そうだ。わかったよ。ってことで、gccをインストールすべくyumコマンドを実行。

yum install gcc

インストールがサクサクと終了した時点で、再度、configureコマンドを発行。
エラーがガスガスでて、configureが失敗したことを言われる。まぁ、多分gccだけ入れたんじゃだめだろうなぁ。とは思ってたんだけど・・・。エラーを見ているとg++ってのがねぇよ。とか言われる。でもg++ってなんだ?ってことでGoogle先生に聞いてみると、どうやらgcc-c++ってパッケージのことらしい。えぇい、めんどくさいってことで、次に入れるコマンドは以下の通り。gcc関連のパッケージ全部入れてしまえ!という乱暴なもの。

yum install gcc*

さて、インストールが終了したら、早速squidユーザに切り替えて、configureコマンドを実行!・・・・を?問題なく通ったみたいですな。ということで、ではmakeですよっ!

make

とするが。。。エラーコマンドが出る。見てみると、こんな感じ。

../../src/ssl_support.h:58: error: expected constructor, destructor, or type conversion before ‘*’ token

あぁ、opensslに関するところの設定がうまくいってないみたいだ・・・。では、よし、とりあえず乱暴に行ってみるか。ということで以下のコマンドを実行。

yum install openssl*

ってことで、とりあえずさっき作ったsrcフォルダをいったん削除し、再度解凍し直して、configureとmakeを実行。
よっしゃぁっ!通ったっ!と思って、make installをするが・・・エラー。エラー内容は/usr/local/squidを作成する権限がありません。というもの。確かに、今回/home/squidで作ってるもんなぁ・・・ということで、オプションを追加してconfigureをしなおしてみる。もちろん、余計なトラブルを防ぐ為に、srcフォルダをいったん削除し、再解凍などはする。

./configure --enable-default-err-language=Japanese --enable-icmp --enable-useragent-log --enable-referer-log --enable-snmp --enable-ssl --prefix=/home/squid

ってことで作成された./src/Makefileの1538行目にが以下の状態となっている事を確認し、make allを実行!さらに、make installを実行だ。

prefix = /home/squid

インストール成功!感動の時間だ。そして、squid.confを編集することに。

cd ../etc
vi squid.conf

で、編集をする。
編集する内容はごちゃごちゃ弄ったので、また後日まとめよう。

cd ../sbin
./squid -z

と入力すると

2010/09/07 18:07:02| Creating Swap Directories
2010/09/07 18:07:02| Making directories in /home/squid/var/cache/00
・・・・
2010/09/07 18:07:02| Making directories in /home/squid/var/cache/0F

とキャッシュフォルダが初期化される。
その後、いろいろとありつつ、squid.confを弄りつつ、squidをスタートさせると、なんとかhttps通信ができ、URL内に?を含む場合も問題なく表示させるところまでいけた。
が、いろいろとセキュリティ的な問題がありそうなので、このまま使うのはどうかなぁ・・・という感じだ。

とりあえず・・・お疲れさま。