Ниже приведен пример обновления Squidward с версии 0.6 до 0.8 на RHEL 6 (CentOS 6).
получите права суперпользователя
$ sudo su
удалим старую версию подпрограммы ext_dstdom
# rm -f /var/www/html/squidward/ext_acl/ext_dstdom.php
удалим старый файл
# rm -f /var/www/html/squidward/misc/squid.conf
перейдем во временный каталог
# cd /tmp
загружаем крайнюю версию
# wget "https://downloads.sourceforge.net/project/squidward/squidward/latest/squidward-latest.tar.gz"
распаковываем и удаляем архив
# tar xvfz ./squidward-latest.tar.gz && rm -f ./squidward-latest.tar.gz
копируем с заменой все файлы, кроме файла config.php, на запросы о перезаписи отвечаем согласием
# cp --parents $(find squidward -type f ! -name "config.php") /var/www/html
создадим недостающие каталог и файлы
# mkdir --parents /etc/squid/squidward.d/.system/unauthenticated
# touch /etc/squid/squidward.d/.system/unauthenticated/null.acl
# touch /etc/squid/squidward.d/.system/unauthenticated/null.http
и предоставим необходимые права
# chown -R apache.apache /etc/squid/squidward.d
# chown -R root.squid /var/www/html/squidward/ext_acl
# chmod -R 755 /var/www/html/squidward/ext_acl
Откройте редактором файл /etc/sudoers, найдите следующую строку:
apache ALL=(ALL) NOPASSWD:/etc/init.d/squid
и замените ее на
apache ALL=(ALL) NOPASSWD:/usr/sbin/squid
Далее необходимо внести изменения в файл squid.conf
сохраним старый конфигурационный файл Squid
# mv /etc/squid/squid.conf /etc/squid/squid.conf.0.6
и установим новый из дистрибутива Squidward
# cp /var/www/html/squidward/misc/squid.conf.rhel6 /etc/squid/squid.conf
Начиная с версии 0.7 изменились параметры вызова подпрограмм ext_acl. Теперь необходимо указывать путь к папке где установлен Squidward (расположен файл config.php) в качестве передаваемого аргумента в описании external_acl. Для обеспечения доступа к ресурсам без прохождения аутентификации с помощью встроенной области применения "Unauthenticated access" появились строки включения правил доступа без аутентификации и вызов третьей подпрограммы.
Приведите свой файл squid.conf в соответствии с файлом из дистрибутива Squidward 0.8:
external_acl_type ext_dstdom_regex children=36 ttl=300 negative_ttl=300 %DST %PORT /var/www/html/squidward/ext_acl/ext_dstdom_uni.php /var/www/html/squidward external_acl_type ext_usr children=36 ttl=300 negative_ttl=300 %LOGIN %SRC /var/www/html/squidward/ext_acl/ext_usr.php /var/www/html/squidward external_acl_type ext_usr_noauth children=36 ttl=300 negative_ttl=300 %SRC /var/www/html/squidward/ext_acl/ext_usr_noauth.php /var/www/html/squidward # Включение конфигурации правил доступа без аутентификации include "/etc/squid/squidward.d/.system/unauthenticated/*.acl" include "/etc/squid/squidward.d/.system/unauthenticated/*.http" # Блок описание метода аутентификации # Winbind and NTLM # Включение правил доступа include "/etc/squid/squidward.d/*.acl" include "/etc/squid/squidward.d/*/*.acl" include "/etc/squid/squidward.d/*.http" include "/etc/squid/squidward.d/*/*.http"
обращаем ваше внимание, что блок описания external_acl должен располагаться выше блока включения правил доступа без аутентификации, а блок описания метода аутентификации должен располагаться между блоками включения правил доступа без аутентификации и включения правил доступа.
Внесите изменения в политики доступа с учетом нововведений. Например, если вы используете регулярные выражения, то перед строкой описания регулярного выражения, начиная с версии 0.7, необходимо указывать тег "regex:", см. Новое в версии 0.7.
перезапустите сервис squid
# service squid restart