Установка SAMS на OpenSuse 10.3

Данная статья является отредактированной копией темы пользователя snace на форуме SAMS .

Установка

Возможно, кому-то эти сведения пригодятся при установке самса.
Буду описывать по ходу возникших трудностей.

Конфигурация системы:

  • ОС OpenSuSe 10.3
  • Squid 2.6 Stable
  • MySQL 5.0.45
  • Sams 1.0.1

Итак, грабли первые

При компиляции дистриба потребовалась библиотека gc, скачана с репозитария openSuse.

Грабли вторые

База логов сквида в упор не хотела создаваться, пока я руками не подправил файлик /etc/sams.conf, где прописал явно пароли на MySQL бызы.

Грабли третьи

Дальше было веселее: решил выбрать тип авторизации ncsa. Думал все будет ок, ага щаззз - в openSuse НЕТУ ФАЙЛА htpasswd, который отвечает за генерацию файла /etc/squid/ncsa.sams. Проблема решилась путем создания симлинка с файла /usr/bin/htpasswd2 на каталоги /usr/bin/htpasswd, /usr/sbin/htpasswd и /etc/squid/htpasswd. Кстати, на этом этапе не забудьте прописать в конфиге сквида следующие строки:

  auth_param basic program /usr/sbin/ncsa_auth /etc/squid/ncsa.sams #(обязательно иначе не заработает авторизация)
  auth_param basic children 5
  auth_param basic realm Squid proxy-caching web server
  auth_param basic credentialsttl 2 minutes #(поставил такое значение, так как думал, что здесь возникают следующие грабли)
  auth_param basic casesensitive off

Грабли следующие

Все заработало, но не считает статистику. Здесь мне помог участник форума nix_kot (большое ему спасибо). Нужно было раскоментить строчки в сквиде /var/log/squid/access.log (Sams создаст pipe access.log и начнет считать трафик).

Грабли последние и самые коварные

Перезапустил систему и о чудо, Сквид перестал авторизовать пользователей - мучался часа четыре, выпил 2 литра пива... НАШЕЛ, ЭВРИКА. Кто-нибудь заглядывал в Сусе в /etc/rc.d после установки SAMS'a? Так вот, господа, от нашего самца там обязательно должно быть три процесса: samsf, samsdaemon и samsd, в последнем нужно руками закоментить вот эту строчку

#. /etc/init.d/functions
# и переправить вот этот кусок (привожу уже исправленный вариант)
start()
{
echo -n "Starting samsd: "
startproc "$EXE"
RETVAL=$?
[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
echo
}

потом сделать следующие команды, для того, чтобы ваша суся подцепила эти три процесса в автозагрузку:

  insserv samsd
  insserv samsdaemon
  insserv samsf

После перезапуска у меня все заработало. Удачи всем, надеюсь этот пост будет полезен.