FreeBSD | Кирилл Павлюков
Ноя 21

Сегодня наконец-то решился обновить Апач на сервере. Обновлялся как обычно – через portupgrade. Но столкнулся с проблемой – компиляция прошла вроде бы успешно, старая версия удалилась, а вот новая не встала выдав такое сообщение:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
> Installing the new version via the port
===> Installing for apache-2.2.17_1
===> apache-2.2.17_1 depends on file: /usr/local/bin/perl5.8.9 – found
===> apache-2.2.17_1 depends on shared library: expat.6 – found
===> apache-2.2.17_1 depends on shared library: apr-1 – found
===> apache-2.2.17_1 depends on shared library: pcre.0 – found
===> apache-2.2.17_1 depends on shared library: iconv.3 – found
===> apache-2.2.17_1 depends on shared library: mysqlclient.16 – found
===> Generating temporary packing list
===> Checking if www/apache22 already installed
Making install in srclib
Making install in os
Making install in unix
Making install in server
Making install in mpm
Making install in prefork
find: /usr/local/include/apr-1/apr.h: No such file or directory
find: /usr/local/include/apr-1/apr_allocator.h: No such file or directory
find: /usr/local/include/apr-1/apr_anylock.h: No such file or directory
find: /usr/local/include/apr-1/apr_atomic.h: No such file or directory
find: /usr/local/include/apr-1/apr_base64.h: No such file or directory
find: /usr/local/include/apr-1/apr_buckets.h: No such file or directory
find: /usr/local/include/apr-1/apr_date.h: No such file or directory
find: /usr/local/include/apr-1/apr_dbd.h: No such file or directory
find: /usr/local/include/apr-1/apr_dbm.h: No such file or directory
find: /usr/local/include/apr-1/apr_dso.h: No such file or directory
find: /usr/local/include/apr-1/apr_env.h: No such file or directory
find: /usr/local/include/apr-1/apr_errno.h: No such file or directory
find: /usr/local/include/apr-1/apr_file_info.h: No such file or directory
find: /usr/local/include/apr-1/apr_file_io.h: No such file or directory
find: /usr/local/include/apr-1/apr_fnmatch.h: No such file or directory
find: /usr/local/include/apr-1/apr_general.h: No such file or directory
find: /usr/local/include/apr-1/apr_getopt.h: No such file or directory
find: /usr/local/include/apr-1/apr_global_mutex.h: No such file or directory
find: /usr/local/include/apr-1/apr_hash.h: No such file or directory
find: /usr/local/include/apr-1/apr_hooks.h: No such file or directory
find: /usr/local/include/apr-1/apr_inherit.h: No such file or directory
find: /usr/local/include/apr-1/apr_ldap.h: No such file or directory
find: /usr/local/include/apr-1/apr_ldap_init.h: No such file or directory
find: /usr/local/include/apr-1/apr_ldap_option.h: No such file or directory
find: /usr/local/include/apr-1/apr_ldap_rebind.h: No such file or directory
find: /usr/local/include/apr-1/apr_ldap_url.h: No such file or directory
find: /usr/local/include/apr-1/apr_lib.h: No such file or directory
find: /usr/local/include/apr-1/apr_md4.h: No such file or directory
find: /usr/local/include/apr-1/apr_md5.h: No such file or directory
find: /usr/local/include/apr-1/apr_memcache.h: No such file or directory
find: /usr/local/include/apr-1/apr_mmap.h: No such file or directory
find: /usr/local/include/apr-1/apr_network_io.h: No such file or directory
find: /usr/local/include/apr-1/apr_optional.h: No such file or directory
find: /usr/local/include/apr-1/apr_optional_hooks.h: No such file or directory
find: /usr/local/include/apr-1/apr_poll.h: No such file or directory
find: /usr/local/include/apr-1/apr_pools.h: No such file or directory
find: /usr/local/include/apr-1/apr_portable.h: No such file or directory
find: /usr/local/include/apr-1/apr_proc_mutex.h: No such file or directory
find: /usr/local/include/apr-1/apr_queue.h: No such file or directory
find: /usr/local/include/apr-1/apr_random.h: No such file or directory
find: /usr/local/include/apr-1/apr_reslist.h: No such file or directory
find: /usr/local/include/apr-1/apr_ring.h: No such file or directory
find: /usr/local/include/apr-1/apr_rmm.h: No such file or directory
find: /usr/local/include/apr-1/apr_sdbm.h: No such file or directory
find: /usr/local/include/apr-1/apr_sha1.h: No such file or directory
find: /usr/local/include/apr-1/apr_shm.h: No such file or directory
find: /usr/local/include/apr-1/apr_signal.h: No such file or directory
find: /usr/local/include/apr-1/apr_strings.h: No such file or directory
find: /usr/local/include/apr-1/apr_strmatch.h: No such file or directory
find: /usr/local/include/apr-1/apr_support.h: No such file or directory
find: /usr/local/include/apr-1/apr_tables.h: No such file or directory
find: /usr/local/include/apr-1/apr_thread_cond.h: No such file or directory
find: /usr/local/include/apr-1/apr_thread_mutex.h: No such file or directory
find: /usr/local/include/apr-1/apr_thread_pool.h: No such file or directory
find: /usr/local/include/apr-1/apr_thread_proc.h: No such file or directory
find: /usr/local/include/apr-1/apr_thread_rwlock.h: No such file or directory
find: /usr/local/include/apr-1/apr_time.h: No such file or directory
find: /usr/local/include/apr-1/apr_uri.h: No such file or directory
find: /usr/local/include/apr-1/apr_user.h: No such file or directory
find: /usr/local/include/apr-1/apr_uuid.h: No such file or directory
find: /usr/local/include/apr-1/apr_version.h: No such file or directory
find: /usr/local/include/apr-1/apr_want.h: No such file or directory
find: /usr/local/include/apr-1/apr_xlate.h: No such file or directory
find: /usr/local/include/apr-1/apr_xml.h: No such file or directory
find: /usr/local/include/apr-1/apu.h: No such file or directory
find: /usr/local/include/apr-1/apu_version.h: No such file or directory
find: /usr/local/include/apr-1/apu_want.h: No such file or directory
*** Error code 1
 
Stop in /usr/ports/www/apache22/work/httpd-2.2.17/server.
*** Error code 1
 
Stop in /usr/ports/www/apache22/work/httpd-2.2.17/server.
*** Error code 1
 
Stop in /usr/ports/www/apache22/work/httpd-2.2.17.
*** Error code 1
 
Stop in /usr/ports/www/apache22.
*** Error code 1
 
Stop in /usr/ports/www/apache22.
*** Error code 1
 
Stop in /usr/ports/www/apache22.
===> Cleaning for apache-2.2.17_1
> Cleaning out obsolete shared libraries
s2#

На помощь пришел Гугл и Логи начинающего сисадмина. Вот подсказанное решение:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pkgdb -aF
portsclean -CDD
portsnap fetch update
cd
/usr/ports/www/apache22
make deinstall clean
portupgrade -f
-o devel/apr1 devel/apr
cd
/usr/ports/devel/apr1
make deinstall clean
cd
/usr/ports/www/apache22
make
install clean

Приведенное решение опробовано на боевом серваке. Все встало и корректно работает.

Share

Автор: Кирилл Павлюков

мая 14

Сегодня обнаружил замечатальную на мой взгляд вещь - Zend Framework появился в коллекции портов FreeBSD. Вернее сказать, он и раньше такм был, но присутствовал лишь в виде самой первой редакции - Zend Framework 1.0. А теперь имеется возможность установить самый последний продакшн-релиз: 1.8. 

Надеюсь, так будет и в будущем, и что следующие релизы можно будет устанавливать с помощью portupgrade.

Установка порта предельно проста:

1
2
s1# cd /usr/ports/www/zend-framework
s1# make install clean
Share

Автор: Кирилл Павлюков \\ Метки: , ,

мая 14

Есть у меня книга «FreeBSD. Подробное руководство». Покупалась она довольно давно, примерно в 2004 году, когда жесткий диск размером в 80 гигабайт считался роскошью. Книга хорошая, но на сегодняшний день морально устаревшая (Хотя, возможно, вышли ее дополненные переиздания). Одна из ее глав посвящена вопросу разбивки жесткого диска во время установки FreeBSD, а в частности – размеру создаваемых слайсов.

В 2006 году, когда я впервые устанавливал Фрю на сервер, который планировалось пустить в продакшн, по совету автора книги я оставил под корневой раздел аж 256 Мб диска… И вчера имел из-за этого проблему.

Как известно, хорошим тоном считается оставлять успешно работающие ядра системы, чтобы в случае проблем можно было загрузить машину со старого ядра. Но GENERIC-конфигурации ядер FreeBSD 7.x стали собираться с флагом отладки. А следовательно, ядро с модулями стало прибавлять раза в 3 в весе.

До вчерашнего дня наш сервер крутился на ядре 7.0, которое было собрано с отладкой и весило около 115 Мб. При попытке установить GENERIC-ядро релиза 7.2 я столкнулся с нехваткой места в корневом разделе. То есть, получается, что 2 GENERIC-ядра забивают почти все место в разделе.

Поэтому хочу предостеречь вас от подобной проблемы: отводите под корневой раздел FreeBSD не меньше 1-2 Гб. Благо, жесткие диски сейчас недорогие.

Share

Автор: Кирилл Павлюков \\ Метки:

Сен 30

На днях столкнулся с необходимостью донастроить работающий Postfix. Но так как предполагалось внести изменения лишь в одну строку, то бекап конфига делать я поленился.

Потом, как всегда бывает, оказалось, что одной строчкой я не отделаюсь… В общем, слегка запутавшись, я отключил проверку на вирусы и антиспам. Потом долго пытался найти, что именно я упустил из виду… Почта все это время работала, но антиспам – нет. Из-за этого в мой ящик (он настроен как catch-all для домена) свалилось около тысячи писем весьма сомнительной потребности.

Так что, товарищи, как выяснилось, напоминать о необходимости тщательного дублирования рабочих конфигурационных файлов, нужно повторять всем и всегда.

Делайте бекапы! Так проще жить… )))

Share

Автор: Кирилл Павлюков \\ Метки: ,

Мар 17

В моем недавнем посте про Squid под FreeBSD. Я рассказывал о том, как произвести NCSA-авторизацию. Serge, попросил рассказать о том, как авторизировать пользователя в Active Directory. Я уж принялся было выполнять его просьбу, но природная лень заставила меня поискать статьи по этой теме в интернете.

И нужная статья была найдена по адресу http://www.sys-adm.org.ua/www/squid-ad.php

Считаю, что, как говорится, тема сисек раскрыта, и мне не зачем загаживать сеть лишними килобайтами.

Share

Автор: Кирилл Павлюков \\ Метки: , ,

Мар 13

В одном из прошлых постов я написал, как установить и запустить прокси-сервер Squid под FreeBSD. В той заметке была указана лишь минимальная настройка, которая никак не затрагивала вопрос об авторизации. Пришло время «донастроить» прокси.

Итак, Squid предоставляет различные механизмы авторизации пользователей. Какой из них выбрать – зависит от ваших потребностей. Меня вполне устроила NCSA-авторизация, о ней и расскажу.

Для использования этого механизма, нужно добавить в конфиг-файл следующие строки:

1
2
3
4
auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/etc/squid/users<br/>
auth_param basic children 5<br/>
auth_param basic realm Squid proxy-caching web server<br/>
auth_param basic credentialsttl 2 hours

А также заменить строку

1
http_access allow all

на

1
2
3
acl users proxy_auth REQUIRED<br/>
http_access allow users<br/>
http_access deny all

Теперь нужно создать файл /usr/local/etc/squid/internet_users и добавить в него пользователей. Делается это с помощью утилиты htpasswd. Если файл с паролями еще не существует, выполните htpasswd с ключом :

1
2
3
4
s1# htpasswd -c /usr/local/etc/squid/users kirill<br/>
New password: *****<br/>
Re-type new password: *****<br/>
Adding password for user kirill

Если же вам нужно добавить пользователя в уже существующий файл, выполните

1
2
3
4
s1# htpasswd /usr/local/etc/squid/users kirill<br/>
New password: *****<br/>
Re-type new password: *****<br/>
Adding password for user kirill

Посмотрите теперь на файл паролей. В нем должна появиться строка, содержащая введенное вами имя ползователя и хэш его пароля, разделенные двоеточием.

1
2
s1# cat /usr/local/etc/squid/users<br/>
kirill:0Q2rNA.AEfZOk

В общем, настройка завершена. Осталось заставить Squid перечитать настройки, чтобы внесенные изменения вступили в силу.

1
squid -k reconfigure

Share

Автор: Кирилл Павлюков \\ Метки: , ,

Мар 12

Недавно на сайте FreeBSD я наткнулся на упоминание о выходе релиза DesktopBSD. (Для точности стоит отметить, что новость об этом была опубликована еще в январе :-) ) Честно говоря, до этого я ни разу не слышал об этом звере, поэтому с удовольствием потратил немного времени на изучение его возможностей. Официальный сайт системы – http://desktopbsd.net/

Как сказано на офсайте – это коллекция приложений, разработанная для того, чтобы сделать жизнь проще и продуктивнее. Но это слишком высокопарно. Если говорить земным языком, то DesktopBSD – это базирующаяся на FreeBSD система с «предустановленным» графическим интерфейсом, и некоторыми другими утилитами для конфигурирования системы и установки программ.

Конечно, ничего особенного – линуксоидов с такими «предестями» хоть отбавляй. Но мне нравится, что альтернатива «окошкам» (WMD – Windows Must Die!) теперь доступна и на основе ИМХО самой стабильной и надежной системы.

Что ж, будем экспериментировать! Попытаюсь на этой неделе поставить DesktopBSD на свой домашний компьютер. Что-нибудь из этого да получится.

Обо всех моих успехах и неудачах, буду писать в блоге.

Велкам, так сказать. :-)

Share

Автор: Кирилл Павлюков \\ Метки: ,

Мар 03

Днями обновил на сервере ОС. Связано это было с глюком в расходовании ресурсов, который я надеялся перебороть, перейдя на 7 ветку.

До этого на сервере стояла FreeBSD 6.1-RELEASE. При сборке мира компилятор несколько раз ругался на то, что не может что-то там собрать (просто уже забыл, что именно :-( ) Трехчасовые танцы с бубном, правка make.conf и пр. привинтивные методы результата не дали.

Клиент был излечен методом обновления до 6.3-STABLE, а затем уж до 7.0-RELEASE.

ПС. При обновлении ни один порт не пострадал, все заработало без дополнительных действий.

Share

Автор: Кирилл Павлюков \\ Метки:

Мар 03

В этом посте я расскажу, как быстро установить прокси-сервер Squid 3.0.STABLE. Сразу оговорюсь, что данное руководство не может и не претендует на статус полного или совершенного, так как не затрагивает всех вопросов конфигурирования этого порта. Тем не менее, оно должно устроить ленивцев, которым «влом» читать маны, а прокси нужно поставить сегодня и сейчас. Читать запись полностью »

Share

Автор: Кирилл Павлюков \\ Метки: , ,