squidをソースからインストールしました。
http://www.squid-cache.org/Versions/v3/3.5/
wgetでtarをダウンロードする
解凍したら、解凍したディレクトリに入って以下configureを実行
configureのオプションはとりあえずインストール場所の指定のみ
(デフォルトで/usr/local/squidにインストールされるようなので、本当は何も指定しなくても良かった)
./configure --prefix=/usr/local/squid/ make make install
./configureのオプション指定をもう一度やり直したい時は
make clean
makeすると以下エラーが発生して失敗しました。
# make Making all in compat make[1]: ディレクトリ `/root/download/squid-3.5.17/compat' に入ります source='assert.cc' object='assert.lo' libtool=yes \ DEPDIR=.deps depmode=none /bin/sh ../cfgaux/depcomp \ /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I.. -I../include -I../lib -I../src -I../include -I../libltdl -c -o assert.lo assert.cc libtool: compile: g++ -DHAVE_CONFIG_H -I.. -I../include -I../lib -I../src -I../include -I../libltdl -c assert.cc -o .libs/assert.o ../libtool: line 1763: g++: コマンドが見つかりません make[1]: *** [assert.lo] エラー 1 make[1]: ディレクトリ `/root/download/squid-3.5.17/compat' から出ます make: *** [all-recursive] エラー 1
yum install gcc-c++
起動
/usr/local/squid/sbin/squid
インストール後、 起動しようとしたところ以下エラーが出てしまいました。
# /usr/local/squid/sbin/squid WARNING: Cannot write log file: /usr/local/squid/var/logs/cache.log /usr/local/squid/var/logs/cache.log: Permission denied messages will be sent to 'stderr'.
squidはデフォルトだとnobodyで動くため、そのままだとディレクトリにアクセスできないらしい。
/usr/local/squidのパーミッションをnobodyに変更
chown -R nobody: squid/
デフォルトだとaccess.logの時間がエポック秒のため読めない。
JSTに直す。squid.confに以下を追加する。
# logformat logformat squid %tl %6tr %>a %Ss/%03>Hs %<st %rm %ru %un %Sh/%<A %mt
設定反映のため、再起動
/usr/local/squid/sbin/squid -k restart
設定チェック
起動できない時は何かしらエラーが出ている。
/usr/local/squid/sbin/squid -k parse
停止
/usr/local/squid/sbin/squid -k shutdown