Записки Злобного Ботанега

Между делом

Обновил софт для блога до новой версии. Решил что раз не спится, то надо что-то полезное для себя сделать. Теперь надо посмотреть какие рюшечки появились в этой версии.

Если кому интересно что у меня за блог стоит, то проследуйте на портал проекта InTerra.

Совпадение?

Так уж получилось. Но автор движка InTerra, на котором работает мой блог, написал пост, который по смыслу очень похож на тот пост, что я написал в начале ноября. Хотя будем честны, мысль про отсутствие простых web-систем родилась именно после чтения блога автора InTerra. Кстати на этут тему у меня повились некоторые мысли, но все проекты и замыслы по ходу дела переносятся на следующий год.

Развитие web-систем

Последнее время я сталкиваюсь с разработкой простых web-сайтов и несложных проектиков, для которых не нужны сложные системы управления контентом с тысячей возможностей. А большинство известных сейчас систем управления контентом являются монстрами включающими в себя тонны вещей не нужных 75% разаботчиков. А ведь изначально эти системы решали простые задачи, которые сейчас приходится решать мне.

В принципе понятно почему разработчики отчаянно обновляют свои системы, добляют в них фичи и фиксят баги. Если ты не развиваешься, то ты умираешь. Как-то так. Но почему бы не взять существующий проект и не заморозить его функционал на каком-то простейшем уровне? Например простейшая CMS, которая создаёт странички, навигацию и всё. Почему обязательнонада искать какую-то тумба-юмба CMS, а не взять какой-нибудь Drupal Light и работать с ним, зная что за этим проектом стоит множество разработчиков, которые будут фикстить баги и добавлять нужные возможности, по мере их необходимости у большинства пользователей продукта.

Ярким примером развития по пути добавления рюшечек и фенечек приводящих к страху пользования продукта(в моём случае) является WordPress, вторым примером, положительном в моём плане - движок на котором работает этот блог - InTerra.

Как-то сумбурно, но мысль вроде изложенна верно.

Грустное ДР

Хостинг панели VHCS, которой я пользуюсь на паре проектов недавно исполнилось два года с момента релиза последней версии. Грустно, что происходят такие вещи. Но кажется у VHCS действительно фиговая судьба. Уже даже если её форк ispCP Omega никак не может выбраться из состояния Release Candidate.

Ну а мне похоже пора обращать внимание на коммерческие панели управления серверами.

Некоторые вещи про порты.

Как я уже ранее писал, в FreeBSD существует система портов, с помощью которой каждый пользователь системы может поставить ту или иную программу. Но жизнь никогда не стоит на месте и нам надо как-то следить за безопасностью и обновлением ПО. Для нашего удобства существуют две утилиты: portaudit и portupgrade.

Первая утилита позволяет нам просматривать информацию о проблемах безопасности в установленных программах, вторая же позволяет нам более-менеее безболезненно обновлять все установленные программы. Живут эти утилиты по адресу /usr/ports/ports-mgmt.

По-идее эти две программы должны быть установлены на сервер в первую очередь, как максимум во вторую, после установки всего необходимого софта.

OpenSource и деньги разработчиков

Итак, давно как-то я не говорил про OpenSource. А сказать то в принципе есть что. Только почему-то только ночью и только когда хочется спать. Возьмм простой вопрос - а откуда берутся деньги у людей, которые разрабатывают OpenSource проекты?

Первым приходят в голову - пожертвования, которые платят польхователи за добавление каких-то фишек или исправление багов. Второе - это программирование OpenSource проектов за деньги. Во втором случае существует  опять же два варианта, один это когда разработкой продукта занимается какая-то компания, яркий пример Firefox, второй вариант - это использования некой биржи на которой любой человек может заказать любому программисту какой-то функционал в лдбом проекте. Например такой биржей является SourceForge.net Marketplace. на самом деле есть еще и третий способ получения денег от OpenSource проектов, можно заниматься обслуживанием или предоставлять услуги технической поддержки для уже установленного ПО.

Итого мы имеем три варианта получения денег за бесплатное ПО. Думаю в следующий раз мы поподробнее остановимся на других особеннотях OpenSource. 

Статистика

Товарищи читатели(если таковые еще остались) расскажите какая статистика для сайта подойдёт лучше всего. Сейчас у меня стоит Google Analytics и Webalizer кушающий логи Апача. Хочется чего-то такого, чего стояло бы на сайте и локально собирало статистику. Или я иду неправильной дорогой и мне проще будет поставить себе статистику от FeedBurner'a и не придумывать велосипед?

Что посоветуете? 

VHCS Hack

Когда я писал про установку VHCS на FreeBSD, то даже не подозревал как много мне с этой панелью придётся возиться дальше. Собственно в понедельник один хостинг, на котором стояла эта панель взломали. А сломали его при помощи эксплоита, который успешно использует дырку в скрипте добавления нового Администратора. Так что если вы не хотите что бы вас взломали, в первой строчки файла /usr/local/www/vhcs2/gui/admin/add_user.php строчку со словом die(); и будет всем хорошо.

PHP/MySQL

 Ползая по ппросторам интернета пытаясь выснить что за "страшная" хрень под названием PHP/5.2.1 with Suhosin-Patch я наткнулся на очень интересный портал посвящённый PHP и MySQL. Наверняка некоторые люди его знают, но я его увидел впервые, так что вот он: Nexen.net. Очень меня порадовала статистика собираемая по достаточно большому количеству страничек с phpinfo(). Конечно главный недостаток этого портала заключается в том, что большинство материалов на французском языке, но статистика всё-таки на понятном большинстве людей - английском языке. Вот кстати статистика за апрель.

Установка VHCS на FreeBSD часть 2

Итак, в первой части своего интереснейшего текста я рассказал про установку хостинговой панели VHCS на FreeBSD. Кстати напоминаю: Устанавливая VHCS на FreeBSD для коммерческого испольщования вы идёте на риск, т.к. разработчики не гарантируют 100% работоспособности системы! Но к сожелению после установки не всё начинает работать так как надо. К сожелению тут как-раз такой случай. В моём случае было три неприятности: Postfix работающий в chroot окружении, отказывающийся работать ProFTPd и криво работающий в Jail демон VHCS. Может проблем было и больше, но эти три были самыми серьёзными.
Начнём по порядку. Про Postfix работающий в chroot окружении написано достаточно много, но лично я не сразу понял что требовалось для того что бы Postfix успешно заработал. Итак, в первую очередь идём в /var/spool/postfix и создаём там папочку etc, после чего копируем туда из /etc файлы:
hosts
passwd
resolv.conf
sasldb
services 
Потом создаём тамже файлик opiekeys и присваем его пользователю и группе postfix. После чего спокойно запускаем почтовый сервер. Если вдруг он опять не хочет запускаться посмотрите не запущен ли SendMail и если запущен, то достаточно его просто остановить, а потом красочно запустить Postfix.
С не работающим ProFTPd я поступил проще, я его снёс и поставил вместо него Pure-FTPd. Пикантность ситуации в моём случае заключалась в том, что ProFTPd брал данные о пользователях из базы данных и именно на попытке взять данные из MySQL он и умирал. Соответвенно ставить Pure-FTPd надо обязательно с поддержкой MySQL. После установки в конфиге надо включить работу с MySQL и в соответсвующий конфиг(/usr/local/etc/pureftpd-mysql.conf) надо прописать такие строчки:
MYSQLSocket /tmp/mysql.sock
MYSQLUser vftp
MYSQLPassword пароль для пользователя
MYSQLDatabase vhcs2
MYSQLCrypt crypt
MYSQLGetPW SELECT passwd FROM ftp_users WHERE userid="\L"
MYSQLGetUID SELECT uid FROM ftp_users WHERE userid="\L"
MYSQLGetGID SELECT gid FROM ftp_users WHERE userid="\L"
MYSQLGetDir SELECT homedir FROM ftp_users WHERE userid="\L"
Дальше мы правим /etc/rc.conf, удаляя оттуда запуск ProFTPd и добавляя запуск Pure-FTPd. В представленной выше конфигурации к сожелению не будут работать дисковые квоты, я пока еще не разбирался с их настройкой, но рано или поздно я задумаюсь над этим и всё настрою как надо, но пока руки не дошли и не надо это мне пока.
Проблемы с криво работающим демоном VHCS можно решить только пересобрав сам демон предватительно изменив исходник в файле /usr/ports/www/vhcs/work/vhcs2.4.6.2/tools/daemon/take_connection.c. Ищем в файле строчки показанные ниже, после чего комментируем их. После чего говроим make и копируем получившийся файлик в /usr/local/sbin/.
if (strcmp(client_ip,"127.0.0.1")) {
/*
ints not local host
*/
close(sockfd);
return;
}
После установки обновлённого файла демона необходимо закрыть файрволлом порт 9876, а то сервер может стать лёгкой наживой для любителей что-нибудь сломать. Ну вот в принципе те проблемы, с которыми я столкнулся сразу же как поставил VHCS. Дальше наверняка буду еще. По мере нахождения и решения их буду выкладывать инфо об этом сюда. Следите за обновлениями. Ну и пишите вопросы если вдруг что и как.

Установка VHCS на FreeBSD часть 1

Итак, как я когда-то и обещал расскажу вам про установку хостинговой панели VHCS на FreeBSD. Про установку на Linux есть замечательная статья на Dedic.ru. Я же расскажу как ставить панель на FreeBSD.

Я вам красными буквами напишу: Устанавливая VHCS на FreeBSD для коммерческого испольщования вы идёте на риск, т.к. разработчики не гарантируют 100% работоспособности системы!

Для начала идём сюда и забираем оттуда дистрибутив порта, который больше по вкусу, я ставил оба порта и в принципе проблемы при их установке возникают одинаковые.
Итак, скачав порт стоит его распакаовать и прочитать инструкцию написанную внутри, если лень читать или непонятно что написано, то я вам могу перевести то что там написано. Итак:
1. Уставливаем себе cvsup
2. Обновляем порты
3. Ставим нужную версию perl.
4. Распакуйте содержимое vhcs.tar.gz в /usr/ports/www
5. Распакуйте содержимое proftpd-vhcs2.tar.gz в /usr/ports/ftp
6. Распакуйте содержимое courier-imap-vhcs2.tar.gz в /usr/ports/mail;
7. Распакуйте содержимое postfix-vhcs2.tar.gz в /usr/ports/mail;
8. Перейдите в папку /usr/ports/www/vhcs и выполните команду make install.
Возможно процесс сборки умрёт на попытке собрать MySQL, т.к. в версии СУБД лежащей в моих портах был косяк с безопасностью и он не был исправлен,я не долго думаю собрал версию 4.1, параллельно соответственно собрав p5-DBD-mysql41, для корректной работы perl, ну а если у вас косяков не наблюдается, то могу только за вас порадоваться, с безопасностью у вас проблем нет.
Итак, сборка завершена, теперь вроде осталось только настроить панельку и начать работать, но рано радуемся, при сборке панельки есть несколько интересных косяков, в частности php собирается без libphp и соответсвенно Apache не может работать с php из чего следует, что панелька написанная на php работать не будет. Так что идём в /usr/ports/lang/php5 говорим там последовательно make deinstall, nake clean, make config где указываем что нам нужен модуль для Apache и собираем всё это дело командой make install.

Теперь плавно переходим к процессу настройки панельки. Для начала мы должны исправить пару косяков со скриптом настройки. Всё что нам надо - это исправить файл vhcs2_common_code.pl находящийся в папке /usr/local/www/vhcs2/engine/. Собственно косяк там один, но он находится в двух местах: в том месте где шифруется пароль к MySQL и соответсвенно там где расшифровывается. В этих двух местах надо добавить всего одну строчку: 'keysize' => 32,. В итогде должно получится что-то такое:
my $cipher = Crypt::CBC -> new(
{
'key' => $main::db_pass_key,
'keysize' => 32,
'cipher' => 'Blowfish',
'iv' => $main::db_pass_iv,
'regenerate_key' => 0,
'padding' => 'space',
'prepend_iv' => 0
}
);
Ну и для безболезненного запуска всех нужных нам сервисов редактируем rc.conf добавляя туда все требуемые приложения.
apache2_enable="YES"
courier_authdaemond_enable="YES"
courier_imap_imapd_enable="YES"
courier_imap_pop3d_enable="YES"
mysql_enable="YES"
proftpd_enable="YES"
sendmail_enable="NONE"
vhcsd_enable="YES"
named_enable="YES"
После всех шаманских действий можно приступить к настройке, сначала запускаем MySQL, а потом выполняем скриптик /usr/local/www/vhcs2/engine/setup/vhcs2-setup и отвечаем на задаваемые им вопросы. Выглядит это примерно так:
Welcome to VHCS2 ‘2.4 Spartacus’ Setup Dialog.
This program will set up VHCS2 system on your server.
Please press ‘Enter’ to continue.
Please enter system hostname (Enter for defaults) [FreeBSD]:
Please enter system network address (Enter for defaults) [192.168.0.128]:
Please enter SQL server host (Enter for defaults) [localhost]:
Please enter system SиQL database (Enter for defaults) [vhcs2]:
Please enter system SQL user (Enter for defaults) [root]:
Please enter system SQL password (Enter for defaults) [none]:
Please enter VHCS ftp SQL user (Enter for defaults) [vftp]:
Please enter VHCS ftp SQL user password (Enter for defaults) [none]:
Please enter administrator login name (Enter for defaults) [admin]:
Please enter administrator password:
Please repeat administrator password:
Please enter admininistrator email address: admin@admin.com
Congratulations !
VHCS2 ‘2.4 Spartacus’ Setup completed successfully !
Please type http://192.168.0.128/vhcs2/ in your
browser!
После установки и настройки необходимо накатить один патч, для того что бы спать спокойней.
В принципе теперь всё хорошо и замечательно, модно приступать к работе. Если вы собирали VHCS в Jail'е, то у вас возникнут проблемы в процессе добавления пользователя. Проблема решается удалением из исходников vhcs_daemon проверкой на запрос с localhost и последующей его пересборкой и замены старой версии, это конечно не слабая дыра в безопасности, но нам ведь не просто так даны файрволы.

Вот в принципе и всё, буду рад если этот текст кому-нибудь поможет, я конечно наверняка что-то упустил, но буду по возможности дополнять этот текст. Если что непонятно, спрашивайте.

Всё ради "Оперы"

Один мой хороший товарищ пишет интересные вещи:

Люблю я Оперу. Пользуюсь ей с 2001 года. ИЕ не приемлю в принципе, а к Firefox’у отношусь хорошо, но все равно остаюсь поклонником норвежского браузера. По религиозным соображениям, короче :)

Но к сожалению, ведущие веб-компании (Google, Яндекс и др.) болт кладут на нас, выпуская большинство своих новых продуктов с пометкой “только для ослов и лисичек”. Чувствуешь себя негром, который увидел на входе в заведение надпись “только для белых”.

Доходит до смешного: какой там ajax - у меня в Вордпрессе кнопка “Назад” под Оперой не работает. Ээхх… похоже, в скором времени придётся предать норвежских разработчиков.

Другой мой товарищ нааоборот переживает из-за популярности Оперы у Российских пользователей из-за чего он получает гемморой при разработке сайтов. А я смотрю на всё это и очень сильно удивляюсь, т.к. среди простых пользователей рунета Опера находится на втором месте по популярности. После всего этого и думай почему происходят такие вещи.

Upd: Кстати если смотреть статистику, то можно заметить что судя по ней броузером Netscape пользуются больше человек чем всеми броузерами Mozilla вместе взятыми. Интересно, что за косяк?

Бблог

Блог завалило предложениями купить дешевой Виагры и посмотреть на обнажённых писающих девочек. И это не смотря на включенный антиспам. В принципе косяк старый и я его поправил, но результата ждать долго.

Чо-то накатило

А никто не хочет нахаляву блог на основе InTerra? Я вам поставлю, настрою и будет вам щастье. Желающие есть или нет?

Хостинг

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

Хотя на самом деле все мои проблемы исходят из того, что я пытаюсь ставить панельку изначально написанную для Debian на FreeBSD.