Архив

Архив автора

Размер таблицы в mySQL

19 Март 2009

Сегодня возникла небольшая проблема с максимальным размером таблицы в mySQL. Как оказалось максимальный размер по умолчанию 4Гб, что я и обнаружил, когда заполнял таблицу. Записи перестали добавляться и т.д. Полез в мануалы. Оказалось, что при создании таблицы, ну или после создания с помощью ALTER TABLE можно менять максимальный размер. Для этого используются MAX_ROWS и AVG_ROW_LENGTH.

MAX_ROWS - сколько записей ориентировочно планируется хранить в таблице;
AVG_ROW_LENGTH - средний размер каждой записи;

Внес изменения в таблицу командой

ALTER TABLE mytable MAX_ROWS=5000000 AVG_ROW_LENGTH=8000;

Указывать AVG_ROW_LENGTH нужно только для таблиц с полями типа BLOB/TEXT, поскольку в этом случае MySQL не может оптимизировать требуемое пространство, исходя только из количества строк.

Проверил максимальные размеры данных/индекса посредством

SHOW TABLE STATUS FROM database LIKE 'table_name';

в поле Max_data_length показало 1Тб - думаю мне хватит:)

Век живи, век учись.:)

Димон mySQL

Более практичная идея!

7 Февраль 2009

Сегодня изучал аукционы scantorg.ru и lotwinner.ru и в голову пришла более плодотворная идея о применении ICQ бота.

Если реализация удастся - будет сообщено! :))

Димон ICQ боты

Рождение ICQ бота. Часть 4 - запуск ICQ бота и выполнение простейших команд

4 Февраль 2009

Как я уже говорил, за основу нашего бота будет взят класс Сергея Акудовича WebIcqPro. Взять его можно на сайте wip.asminog.com. В открытом доступе на сегодняшний день лежит версия 1.2b, а зарегистрировавшись на форуме можно скачать и последнюю версию (в настоящее время это 1.4.7b).

Скачиваем, распаковываем и настраиваем параметры нашего бота в файле bot.php:

 
define('UIN', '435091114'); // UIN нашего чудо-бота
define('PASSWORD', '************'); // пароль
define('ADMINUIN', '429923252'); // UIN администратора. Сюда будут приходить служебные сообщения от бота
 

После этого копируем распакованные файлы себе на хостинг в секретную директорию:). После этого заходим на сервер по ssh, например, с помощью putty, делаем файл start.sh выполняемым и запускаем его ./start.sh. Бот должен запустится, а на админский UIN должно придти сообщение "Service PHP BOT started..." - это значит все отлично!:))

Принцип работы скрипта в общем виде такой - происходит авторизация бота в системе ICQ, запускается бесконечный цикл, в котором периодически делается проверка, не пришло ли какое-нибудь сообщение. Если сообщение пришло, оно сравнивается со служебными командами и если результат сравнения положительный, происходит выполнение данной команды, если результат отрицательный - выводится предложение ввести команду !help для получения подсказки. Также, если выясняется что соединение с сервером ICQ потеряно - делается задержка 30 секунд и бот пытается соединиться заново.

Для получения списка доступных команд, как уже упоминалось, надо послать боту команду "!help".
В ответ на это бот выведет список доступных команд с их кратким описанием. По этим командам бот выполняет достаточно простые операции.

Моя задача создать бота выполняющего более сложные команды. В дальнейшем я буду периодически делать заметки о ходе работ:))

Для расширения возможностей бота и захвата мирового господства :)), необходимо добавить использование базы данных, а также продвинутое управление настройками пользователей, чем и займусь в ближайшее время. Ну и первым функционалом пусть будет известная ботовая фишка - получение свежих хохм с башорга.

Да, и кодовое название бота будет Спиридон! Почему Спиридон? Не знаю, просто смешное имя:))
Его UID = 435091114

Димон Флуктуации мозга

Рождение ICQ бота. Часть 3 - настройка VDS сервера

3 Февраль 2009

Наш VDS сервер уже активирован и работает. Однако для успешного функционирования необходимо выполнить первоначальную настройку. Для этого войдем в нашу биллинговую панель, используя логин и пароль полученные по почте. Вход осуществляем с главной страницы firstvds.ru форма "Вход для клиентов". Попадаем в биллинг на страницу с информацией о текущем балансе. Нас интересует пункт меню "Товары/Услуги - Виртуальные сервера".
Входим туда и видим список наших VDSсов.
Справа вверху видим пиктограммы, при нажатии на которые можно совершать различные действия над VDS серверами.

Пиктограммы

Вот их краткое описание:

Новый вдс Новый VDS. Процедура заведения нового VDS, описанная в предыдущем выпуске
Изменить Изменить. Возможность сменить тарифный план ВДСа
Удалить Удалить. Удаление VDSа
Конфигурация. Конфигурация. Просмотр и изменение выбранного VDSа. Здесь можно добавлять дополнительные ресурсы к выбранному тарифному плану
IP адреса IP адреса виртуального выделенного сервера. У каждого VDS может быть несколько IP адресов. И соответственно для каждого сайта на этом VDS можно задать разный IP. В этом разделе можно добавлять и удалять IP адреса у сервера
Фильтр Фильтр. Если выделенных серверов в списке много, здесь можно задать фильтрацию списка по нескольким параметрам, таким как номер сервера, доменное имя, IP, тип сервера и состояние
Информация о сервере Информация о сервере (ссылки на панели управления).
Письмо об открытии Письмо об открытии. Здесь можно просмотреть текст письма, которое было отослано вам после открытия сервера. В нем указаны все необходимые данные для доступа к вашему VDS

В настоящий момент нас интересует кнопка "Информация о сервере (ссылки на панели управления)".
Нажимаем на нее

Информация о сервере

Ну, на картинке все написано. Основное место где будут проводится все манипуляции с нашим VDS, это ISPManager. Нажмем на ссылку и в новом окне откроется авторизационная форма. Вводим туда логопасы полученные в письме, читаем и соглашаемся с предложенным лицензионным договором и попадаем в ISPmanager.

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

Перво наперво заводим пользователя. Для этого в меню слева выбираем "Учетные записи/Пользователи". Тут, нажав справа вверху на кнопку с зеленым плюсом задаем имя, пароль права пользователя.

Логин и пароль

На первой вкладке указываем имя и пароль

201

На второй вкладке задаем права пользователя. Тут нам понадобится "Доступ к shell" и "PHP как модуль Apache".

Ограничения

На третьей вкладке зададим ограничения.
Диск - зададим весь доступный объем 1000 Мб, т.к. кроме этого пользователя других больше не будет.
Остальное оставляем как есть.

Теперь, если есть домен, его надо добавить. В нашем случае это botosfera.ru.

Заходим в "Домены/WWW домены" и как обычно жмем зеленый плюс на пиктограмме справа вверху.

Добавление домена

Прописываем наше доменное имя и выбираем PHP как модуль Apache.

После этого у своего регистратора для своего домена меняем NS сервера на ns1.firstvds.ru и ns2.firstvds.ru.

Теперь настроим PHP. Меню "Настройки сервера/Настройки PHP".

Настройки PHP

Т.к. наш скрипт должен постоянно висеть в памяти, то ограничение в 30 секунд нам совсем ни к чему - выставляем побольше, увеличиваем лимит памяти, подтверждаем изменения.

Теперь осталось включить расширения для PHP, которые нам возможно понадобятся и настройку можно считать законченной. Меню "Настройки сервера/Расширения PHP". Тут нам пока понадобится только sockets.so - расширение для работы с сокетами и mbstring.so - расширение для работы с различными кодировками. Выбираем, активируем и наш сервер готов к работе.

В следующем выпуске - Запуск ICQ бота и выполнение простейших команд.

Димон ICQ боты

Рождение ICQ бота. Часть 2 - Заказ и активация VDS сервера

1 Февраль 2009

Итак продолжим.
Регистрируемся и выполняем инструкции, изложенные на этой странице.
Я не могу пройти шаги описанные на этой странице, потому что у меня уже есть аккаунт с VDS серверами. Поэтому буду описывать добавление еще одного сервера в аккаунт.

Нажимаем на кнопку "Новый ВДС"
Заказ и настройка VDS

Определяемся с тарифным планом, нам нужен самый простой VDS - Старт, с периодом оплаты 1 месяц - вдруг вся затея накроется медным тазом, так хоть денег много не потратим:))
Жмем кнопку "Далее"

Выбор доменного имени

Ну, на картинке все написано, пишем свой домен или оставляем поле пустым. В моем случае это будет домен botosfera.ru - заведенный специально для темных замыслов связанных с icq ботостроением.:))

Далее нам предложат выбрать набор программного обеспечения, который мы будем ставить на сервер.
FreeBSD - ставится голая система без каких либо пакетов для работы в интернете. Т.е. там нет ни Php, ни ISPmanager, ни апача, ни mySQL, ничего одним словом. Это комплект для продвинутых парней, которые спят и видят как бы самому все настроить. Нам этот пакет не подходит, потому что, нам надо все и сразу. Поэтому обратим свои взора на два других варианта: ISPmanager и Soft2006.

ISPmanager - "На VDS установлена последняя версия операционной системы FreeBSD, но все прикладное программное обеспечение состоит из пакетов самых стабильных версий: Apache 1.3.x, MySQL 4.1, PHP 4.x, Perl 5.8.8. Мы рекомендуем вам этот набор ПО, если вы выбрали тариф VDS-Старт или если для вас важна стабильность". Так написано на сайте у Firstvds. Может быть PHP 4.x и был когда-то самой стабильной версией, но многие давно уже пользуют 5-ю версию и весьма этим довольны.

Мы в своем ботострое будем использовать пакет Soft2006, как включающий в себя все современные версии программного обеспечения (Apache 2.2, MySQL 5, PHP 5, Perl 5.8.8). Типа будем идти в ногу со временем. Эта конфигурация будет потреблять больше ресурсов, однако для наших целей ее должно хватить.
Выбираем и идем дальше.

Дополнительные услуги

Тут нам за деньги предлагаю пару дополнительных услуг, но нам ничего не надо, поэтому идем дальше

Дополнительные услуги 2

Суровые хостеры никак не угомоняться и снова предлагают нам дополнительные услуги сверх тарифного плана. Но мы, опять же, будем довольствоваться тем, что есть и последуем дальше.

Условия предоставления услуг

Тут по всей видимости необходимо внимательно ознакомится с условиями предоставления услуг и принять их. Принимаем и переходим на следующий уровень.

Подтверждение заказа

Я не помню, как там выглядит все это дело при первоначальном заказе, а у меня это выглядит такми образом. Т.е. можно оплатить заказ нового VDSа с текущего счета (где у меня осталось не так уж много) или же создать новый заказ и потом его оплатить. Так как денег на счету осталось мало - выбираю создать новый заказ. Тут же появляется галочка "Перейти к оплате заказа". Выставляем эту галку и жмем "Готово".

Новый платеж

Тэкс. Видим окно с именем плательщика (свое я из скромности затер), суммой в рублях и списком возможных способов оплаты. В списке WMR, WMZ, кредитные карты и Яндекс.Деньги. Не знаю кто как, а я пожалуй заплачу WMZ.

Webmoney

И чтоже мы видим? Наш VDS сервер по текущему чудовищному:)) курсу рубля стоит всего 4.19 USD.
Жмем на ссылку "перейти к оплате" и проходим стандартную процедуру оплаты через Webmoney.

И вуаля - в биллинговой панели в списке виртуальных выделенных серверов появляется строчка с нашим VDS сервером со статусом "Обрабатывается".
Пока писал, статус сменился на "Активен". Вот она сила автоматизации:).
А на мыло упало письмо с логопасами, IP адресом и краткой инструкцией по эксплуатации.
Все, сервер установлен, запущен и ждет пока его доработают напильником для дальнейшей эксплуатации:)).

Но об этом уже в следующем выпуске.

Димон ICQ боты

Рождение ICQ бота. Часть 1 - Рекогносцировка

31 Январь 2009

Для нормального функционирования бота необходимо определиться с хостингом.
Шаред хостинг не подходит по причине того, что на большинстве хостингов ограничение на выполнение скрипта 30 секунд, а нам надо чтобы скрипт постоянно болтался в памяти. Плюс при большом количестве пользователей нагрузка может выйти за пределы допустимого и хостер вежливо попросит вас убраться подальше со своими скриптами.

Выходом из ситуации является VDS хостинг. Суть VDS хостинга состоит в том, что вам на одном большом физическом сервере расположены несколько виртуальных, независимых Unix систем. Виртуальный сервер обладает всеми преимуществами физического сервера, как-то полный контроль над процессами, гибкость конфигурирования и т.д. В общем такое нам нужно:)

Самым лучшим хостером, предоставляющим VDS сервера, является без сомнения firstvds.ru.

Хостинг Firstvds.ru

Это весьма недорогой и достаточно стабильный VDS хостинг. Сам я изначально юзал firstvds и был доволен как слон. Потом был небольшой период, когда там начались глюки и тормоза. Как раз мне понадобился второй VDS и в надежде найти лучше, я перепробовал пару хостеров из недорогих, но там стабильность была еще хуже, а цены несколько выше. Каждый день что-то слетало и вырубалось и приходилось перегружать сервер. Может быть с "прямыми" руками можно было поковыряться в системе и сконфигурировать чтобы все работало стабильно, но у меня несколько другой профиль и нужна мне была стабильная работа сразу, а не после плясок с бубном. Помучавшись пару месяцев я плюнул и заказал второй VDS на firstvdsе. А там как раз работа наладилась и все стало замечательно. В общем сейчас сервера работают без сбоев и все довольны:)).

Итак, остановимся на Firstvds.ru.
Самый "младший тариф" VDS-Старт стоит всего 149 рублей.
Включает в себя:
SSH root-доступ
Диск - 1000 мегабайт
Память - 64 мегабайта
Трафик - 25 Гб
Процессор - 300 МГц

Для наших целей вполне должно хватить. При желании всегда можно добавить ресурсов или перейти на следующий тарифный план.
Заказываем VDS - Старт. Процедура регистрации и первого заказа подробно расписана здесь

При оплате с помощью электронных платежных систем активация сервера происходит в автоматическом режиме в течении нескольких минут. Очень толково и удобно.

В следующем выпуске: Заказ и активация VDS сервера

Димон ICQ боты

ICQ боты

31 Январь 2009

Пробуем окучить тему ICQ ботов на PHP.

За основу возьмем замечательный класс Сергея Акудовича WebIcqPro.

Класс очень хороший, плюс на тамошнем форуме обсуждаются все нюансы и баги.
Итак, задача минимум запустить бота и заставить его проявить признаки жизнедеятельности.

Димон ICQ боты, PHP

Всплыть по рубку

30 Январь 2009

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

Питаю слабую надежду, что публикация здесь своих заметок, поможет придать какой-то вектор разнонаправленным мыслям и идеям, периодически зарождающимся и умирающим в бестолковой башке!  :))

Димон Флуктуации мозга