Неделю назад я надумал купить пылесос. Читать далее
Покупка и подбор пылесоса на Mercatos.ru
DataLife Engine v.9.3 Press Release
Дорогие друзья,
Завершен основной этап разработки версии 9.3, релиз находится на тестировании и предрелизной подготовке, ну а пока мы предлагаем вам ознакомится с информацией о том что ждет вас с выходом новой версии. В данном релизе вас ожидает новый медиаплеер с новыми возможностями и поддержкой потокового видео, новая глобальная система жалоб, новые возможности по операциям выполняемым автоматически по крону, новые мультимедийные возможности и поддержка новых медийных сервисов, и многое другое, но обо всем подробнее …
Источник: http://dle-news.ru/pressrelease/1335-datalife-engine-v93-press-release.html
Регистрация по инвайтам. v.3.0
Данный модуль позволяет организовать у себя на сайте регистрацию по приглашениям от других зарегистрированных пользователей сайта (инвайтам).
Источник: http://dle-news.ru/modules/1334-registraciya-po-invaytam-v30.html
Ubercart Alter Price
Сделал обещанный модуль.
что он себе представляет:
Модуль называется Ubercart Alter Sell Price. Находиться во вкладке ubercart – extra. Копируем – Включаем. Дальше в материале типа Product появляется возможность писать текст вместо Sell Price причем остается и сам Sell Price. Во вьесе есть дополнительное поле, которое выводит представление альтернативной цены, так и называется – Alter Sell Price.
Как работает во вьесе product – заменяем поле Product: Sell price на поле Product: Alter Sell Price. Нажимаем саве и будет нам щасье.
Product: Alter Sell Price – выводит текст продукта и если в настройках продукта снята галочка “Использовать Alter Sell Price” – то выводит реальную цену продажи.
В чем отличие от других: Альтернативную цену можно писать для каждого продукта разную.
p/s/ Это первый модуль – поэтому прошу строго не судить .. конструктивную критику приветствую..
Все всем спасибо.
Источник: http://www.drupal.ru/node/61512
WordPress 3.1.2 на русском
Доступен WordPress 3.1.2 — обновление безопасности для всех предыдущих версий WordPress.
В этой версии исправлена уязвимость, позволявшая пользователям с правами участника неправомерно публиковать записи.
Проблема была обнаружена разработчиком из команды безопасности WordPress — Эндрю Нейсином, совместно с Бенджамином Балтером.
Рекомендуем обновиться как можно скорее, особенно если на вашем сайте открыта регистрация с ролью участника или есть посторонние пользователи. Этот релиз также исправляет несколько ошибок, пропущенных в версии 3.1.1.
Скачайте версию 3.1.2 или воспользуйтесь автоматическим обновлением в меню «Консоль» → «Обновления».
Источник: http://ru.wordpress.org/2011/04/wordpress-3-1-2/
Персональный кинематограф: ТВ или проектор
Для каждого кинолюба рано или поздно наступает минута негодования, когда так и хочется воскликнуть: «С меня хватит!». Читать далее
Модуль FormSave: сохраняем отправки для любой формы
Всем привет!
Написал модуль для логирования отправок любых форм. Вы просто указываете id формы, и модуль прицепляется к ней сам. После этого, любая отправленная в форму информация будет сохранена в отдельной таблице базы данных, и в любое время ее можно будет посмотреть.
Зачем это нужно?
Вариант 1. Отслеживание введенных значений. Не всегда вся введенная в форму информация сохраняется. Бывает, что на ее основе делаются какие-либо вычисления, и в базу сохраняются только результаты этих вычислений. Если вы хотите посмотреть, что же было введено в качестве исходных данных, то этот модуль для вас.
Вариант 2. Вы разрабатываете большую, сложную форму, многоступенчатую да с аяксом. А то и не одну и не две, в рамках какого-либо проекта. Или нескольких проектов. Чтобы не писать для каждой из этих форм свой отдельный submit-хендлер, который может быть просто огромным, да и во многом одинаковым для подобных форм, вы просто прицепляете этот модуль, и всю работу по сохранению введенной информации он берет на себя. В модуле предусмотрено API для этого.
Немного подробнее можно прочитать на странице модуля formsave (он пока в песочнице).
Немного скриншотов:
Скриншот экрана настроек
Скриншот списка отправок
Скриншот одной отправки
Если вы хотите видеть этот модуль в качестве полноценного проекта на drupal.org, отпишитесь, пожалуйста, в этой заявке на получение статуса Full project. то добро пожаловать на страницу проекта formsave
Источник: http://www.drupal.ru/node/61297
«1С-Битрикс» выпускает типовое решение для создания сайтов медицинских учреждений
Компания «1С-Битрикс» объявляет о выпуске нового отраслевого решения «1С-Битрикс: Сайт медицинской организации», предназначенного для разработки официальных сайтов лечебно-профилактических учреждений (ЛПУ). Решение создано на основе программного продукта «1С-Битрикс: Управление сайтом 10.0» и включает в себя все востребованные медицинские онлайн-сервисы, такие как запись пациентов на прием через Интернет, расписание работы врачей-специалистов и многие другие. Благодаря внедрению в решение последних разработок «1С-Битрикс», управлять информацией на сайте может любой пользователь ПК, даже без специальных навыков.
Источник: http://www.1c-bitrix.ru/about/life/news/282477/
Банкет на теплоходе
В жизни всегда есть место празднику! А праздник при желании можно устроить где угодно. Читать далее
Первый полнейший отчот (Гракера, не мой) о друпалдее с фотками, девчонками, деанонимизацией и срывом таинственных покровов!
В субботу, как известно, в Москве прошла конференция по Друпалу, то есть DrupalConf. Имел честь посетить это мероприятие и я, о чем далее и расскажу. Кстати, заранее предупреждаю, что хотя отчет и будет сопровождаться фотокарточками, делал я их с телефона. А телефон, как показывает практика, — это не фотоаппарат, даже если в нем 10 мегаписькелей. На улице еще ничего, но в помещении — мрак. Хотя мне и подсказали, что это там было такое освещение. Впрочем, я все равно фотографировать не люблю, так что — чем богаты, тем и рады.
Конференция проходила на ВДНХ, что особенно приятно, поскольку так вышло, что не бывал там с самого детства. Выдвинулся рано-рано утром и прибыл к главному входу уже в 9:00.
Конференция открывалась в 9:30 в павильоне «Электрификация», так что было время прогуляться по выставке. Гулять по ВДНХ утром — хорошо. Погода отличная, людей мало, павильоны красивые. Приятно, что здания, построенные советской властью, стоят и радуют глаз до сих пор.читать далее>>>>>>>>>>>>>>>>>>>>
Источник: http://www.drupal.ru/node/61248
По итогам DrupalConf – теперь с видео!
Спасибо участникам и докладчикам!
В этом топике предлагаю собрать впечатления и ваши замечания по организации конференции. Это поможет сделать нам осеннее мероприятие лучше.
Архив презентаций
Презентация Алексея Костина – Drupal и SEO
Презентация Александра Швеца – разработка Drupal дистрибутивов
Правильные видео от PVasili
Предварительные версии видео(пока без ответов на вопросы)
Доклад Андрея Постникова
Доклад Вячеслава Касихина
Доклад Александра Дубовского
Доклад Алексея Костина
Доклад Анны Федорук
Доклад Клеры Виленской
Доклад Влада Савицкого
Источник: http://www.drupal.ru/node/61223
Всех с пасхой!
не утверждаю, а даже наоборот
Источник: http://www.drupal.ru/node/61218
Друпалдэй состоялся и удался!
Буфет был очень вкусный, докладчикам тоже спасибо: много интересно было, много поучительного узнал и для дела полезного!
Организаторам и докладчикам мегареспект-всё было на высоте!!!!!
Фоточки ложите сюда!
Вниз приаттачивайте, без стеснения, пусть позавидуют те кто не был!
Источник: http://www.drupal.ru/node/61213
DrupalConf 2011 фотоотчет
Привет всем.
Буду вести в этом топике репортаж с DrupalConf 2011 практически в прямом эфире.
Немного расстраивает отсутствие интернета.
Я буду выходить через свой Питерский SkyLink в роуминге. Правда не знаю надолго ли хватит этого интернета и сколько это будет стоить.
Ладно, начинаем.
Источник: http://www.drupal.ru/node/61188
Электронные сигареты помогают бросить курить
С целью облегчения жизни курильщикам и находящимися с ними рядом людям были придуманы электронные сигареты, что постепенно должны были отучать курить и давать им возможность удовлетворять эту потребность в местах, где этого запрещено. Читать далее
Статья о трех основных видах блистерной упаковки.
Любой производитель негабаритных товаров массового народного потребления в начале вывода своей продукции на рынок однозначно сталкивается с проблемой качественно и красиво упаковать свой товар. Читать далее
Оконные жалюзи — один из самых практичных вариантов оформления окна
Сейчас изготовление жалюзи организовано практически во всех областях. Читать далее
NewsMaker: инсталляционный профиль для перекрестного кросспостинга из LiveJournal в Drupal и обратно
Социальные сети в последнее время становятся всё более популярными и LiveLournal является одним из лидеров по числу пользователей.
Но известные события, в результате которых недавно ЖЖ был недоступен достаточно продолжительное время, обнажили суровую правду жизни: livejournal.com – это обычный сайт, с которым может произойти всё, что угодно и нет никаких гарантий, что Ваш блог на этой площадке или его содержимое “внезапно” не уйдет в небытие. Подобное встречается в ЖЖ сплошь и рядом.
Впрочем, вылететь может и Ваш stand-alone блог. К примеру, можно элементарно забыть продлить регистрацию домена (что случилось недавно с хаброй) или, не дай Бог забыть продлить хостинг. При этом в лучшем случае Ваш сайт будет недоступен некоторое время, а в худшем случае хостер может вообще снести его со всем содержимым.
Запасной аэродром для сохранения контента и юзеров в этом случае придется как нельзя кстати. Данный факт и был одним из мотивов для создания этой сборки.
Инсталляционный профиль NewsMaker предназначен как для ЖЖ блогеров, так и для владельцев независимых сайтов. Он позволяет в автоматическом режиме дублировать сообщения из Вашего stand-alone блога, сделанного на Drupal в Ваш блог или комьюнити на площадке LiveJournal. Аналогично Вы можете сохранять сообщения из Вашего ЖЖ в Ваш блог на Drupal, то есть зеркалить их.
Установка и настройка
Несмотря на то, что в этом профиле применен нестандартный инсталлятор, разработанный и реализованный моим партнером Валентином Ворониным http://shaman.asiadata.ru, его установка не отличается от стандартной друпальской.
Скопируйте архив в корень будущего сайта и распакуйте его средствами административной панели хостинга или разархивируйте в любую папку на Вашем компьютере, а затем скопируйте все файлы на сервер (во втором случае процесс копирования может занять длительное время).
На первом этапе установки сайта выберите инсталляционный профиль “NewsMaker”
Дальше установка происходит как обычно.
Если Вы хотите не только отправлять сообщения из своего блога на Drupal’e в LiveJournal, но и импортировать посты и комментарии, публикуемые в Вашем ЖЖ, на Ваш друпал-сайт, то на Вашем сервере должны быть установлены Perl модули, необходимые для правильной работы модуля LJsync.
Если же Вам нужен только кросспостинг в ЖЖ, то после инсталляции и входа на сайт просто отключите LiveJournal Sync в /admin/build/modules.
Дальнейшая настройка сводится к следующему:
Зайдите в свой профиль /user и укажите там свой логин и пароль доступа в LiveJournal
Зайдите в настройки модуля LiveJournal Sync /admin/settings/ljsync (если Вы решили его использовать) и нажмите кнопку “Вернуться к исходным” Здесь же Вы можете выбрать нужный формат импорта данных, словарь для импортируемых тегов и тип материала для импорта.
Зайдите по ФТП в папку Вашего сайта /sites/default/files/ljsync и создайте там файл вида логин_жж-lj.xml (тот, что Вы указывали в своем профиле).
На этом процесс установки и настройки можно считать завершенным. Да, и не забудьте установить права доступа 777 к папке /tmp в корне сайта.
Возможности, которые Вы получаете
Помимо перекрестного кросспостинга, о котором написано выше, Вы получаете еще ряд дополнительных возможностей:
Домашнюю страницу aka igoogle c возможностью включения, сворачивания, перетаскивания блоков
Удобный Wysiwyg текстовый редактор для добавления и редактирования материалов, с возможностью внутренней перелинковки и мультизагрузкой файлов любых типов, причем не только изображений (расширения загружаемых файлов, их размеры, объемы можно настраивать через админку). При изменении размера изображения автоматически формируется ссылка от уменьшенной копии к исходному изображению.
Простой способ подключения неограниченного количества лент новостей, причем не только из LJ, но с любого другого сайта, имеющего RSS ленту. При этом в анонсах новостей автоматически ограничивается количество символов, изображения уменьшаются, дубли новостей удаляются. Впрочем, есть возможность просмотра новостей в исходном виде или в виде заголовков.
В сборке предварительно настроены роли, которые вы можете давать своим пользователям.
Роли позволяют вам настроить безопасность и администрирование Вашего сайта на Drupal. Роли определяют группы пользователей, которые имеют некоторые привилегии, определяемые правами доступа.
Анонимный пользователь: эта роль используется для пользователей, которые не зарегистрированы или не вошли в систему. По умолчанию у них есть только возможность просмотра общедоступного содержимого.
Зарегистрированный пользователь: автоматически назначается всем пользователям, вошедшим на сайт со своим именем и паролем или по OpenID. По умолчанию имеют возможность только добавлять комментарии.
Автор: имеет возможность добавлять записи в свой блог и управлять ими. Владельцу блога рекомендуется создать для себя дополнительный аккаунт с этой ролью и постить из него.
Модератор: может удалять записи всех авторов.
Редактор: помимо удаления может редактировать все записи.
Администратор: имеет расширенные права для управления настройками сайта.
Разработчик: кроме доступа к настройкам имеет возможность работать с PHP скриптами на сайте.
User#1: Назначает права доступа для ролей и имеет доступ ко всем настройкам.
Имеющиеся проблемы
Так и не решена окончательно проблема в модуле LJsync с дублями записей, отправляемых из ЖЖ в Drupal. Пока что дубли удаляются постфактум самописным модулем, запускаемым по крону. В дальнейшем постораемся решить эту проблему более корректно.
Не публикуются комментарии к записям, изначально публикуемыемым в сайте на Drupal, а потом отправляемым в ЖЖ.
Буду благодарен, если сообщество поможет с решением этих проблем.
Пример работающего на этой сборке сайта: http://newsmaker.su/
Скачать инсталляционный профиль можно у меня в блоге
Там же будут размещаться все модификации и обновления этого профиля.
UPD Во второй версии сборки добавлена интеграция на уровне API c социальными сетями Vkontakte, Мой Мир @ Mail.ru, Facebook, Twitter. Теперь Вы можете отправлять свои сообщения не только в ЖЖ, но и в вышеперечисленные соц.сети. В отличие от стандартного кросспостинга в Facebook и Twitter через LJ, в случае применения этой сборки вы можете добавлять свои комментарии и хэш-тэги к своим записям. Решены проблемы с дублями постов и комментариев.
Актуальная версия
newsmaker-6.x-2.0-rc1.tar.gz (10.32 Мб).
http://ipload.ru/file/9113
или
newsmaker-6.x-2.0-rc1.zip (12.85 Мб).
http://ipload.ru/file/9113
————предрелизы————————
newsmaker-6.x-1.0-beta3.tar.gz (10.78 Мб).
http://www.ipload.ru/file/9095
или
newsmaker-6.x-1.0-beta3.zip (13.1 Мб).
http://www.ipload.ru/file/9094
newsmaker-6.x-1.0-beta2.tar.gz (10.38 Мб).
http://ipload.ru/file/9082
или
newsmaker-6.x-1.0-beta2.zip (12.61 Мб)
http://ipload.ru/file/9081
newsmaker-6.x-1.0-beta1.tar.gz (10.34 Мб)
http://ipload.ru/file/9073
или
newsmaker-6.x-1.0-beta1.zip (12.57 Мб)
http://ipload.ru/file/9074
Источник: http://www.drupal.ru/node/60990
«1С-Битрикс» выпускает готовое типовое решение для создания официального сайта школы
Компания «1С-Битрикс» ведущий российский разработчик систем управления веб-проектами и корпоративной информацией, объявляет о выпуске нового отраслевого решения, предназначенного для создания официальных сайтов средних образовательных учреждений.
Источник: http://www.1c-bitrix.ru/about/life/news/280854/
«1С-Битрикс» на РИФ+КИБ, или тайна пророчества майя
Всего лишь один день остается до главного весеннего события Рунета – «РИФ+КИБ 2011», которое пройдет с 20 по 22 апреля 2011 года в подмосковном пансионате «Лесные дали». Организатором мероприятия традиционно выступает Российская Ассоциация электронных коммуникаций (РАЭК). «1С-Битрикс» – постоянный участник форума и организационный партнер мероприятия. Сайт форума rif2011.ru, как и сайт прошлогодней конференции rif2010.ru, разработан на «1С-Битрикс: Управление сайтом».
Источник: http://www.1c-bitrix.ru/about/life/news/280762/
Я люблю Drupal 7 (создаем кататалог для drupal commerce)
Поставил drupal commerce, потыкал несколько дней, понял – весч! Все круто, все легко и гибко настраивается, легко имортируется из csv и xml при помощи модуля feeds. Вообщем то что надо! за одним НО, как мать его создать каталог?
Пробовал ставить разные модули, искать решение на d.org – ничего толового не нашел, побился головой об стену, и полез во …. views
Приступаем:
1) идем на страницу admin/structure/taxonomy и созадем словарь catalog
– на странице admin/structure/taxonomy/catalog/fields добавляем поле c изображением, например, imagecatalog
– добавляем термины, загружая и зображения и создавая иерархию словаря
2) идем на страницу admin/structure/views и включаем представление Taxonomy term
3) идем на страницу admin/structure/views/add и создаем новое представление
выбираем показатель – термины таксономии, и тип – наш словарь catalog
задаем заголовок страницы
путь ставим taxonomy/term/%
отображение ставим grid (сетка)
элементов для отображения ставим 12 – так как по умолчанию в grid 4 столбца, соответственно указываем значение кратное 4
нажимаем “продолжить и редактировать”
4) начинаем редактировать представление:
4a) в блок “Fields” добавляем поле изображение “imagecatalog”, настраиваем его по своему вкусу
расскрываем правую колонку ‘Advanced’
4б) добавляем Contextual filters
указываем значение – Таксономия: вложение
и добавляем ставим галлку – чтобы при не существующем термине показывалась 404 ошибка (этого можно не делать)
Сохраняем фильтр
таким образом мы перекрыли отображение страницы термина. Теперь по адресу taxonomy/term/id_термина будут отображаться его дочерние термины с их изображениями в виде сетки.
Но если у термина не будет дочерних терминов – ничего отображаться не будет. Такая ситуация нас не устраивает, поэтому делаем следующее:
5) Добавляем no results behavior
ставим галку возле views area
нажимаем далее и указываем какое представление может будет выводиться если у термина нет дочерних терминов, а именно taxonomy_term Dispaly: default
не забываем отметить inherit cotextual filters – это означает что аргумент (id термина) будет передаваться представлению, которое будет вызываться.
сохраняем поле, сохраняем представление.
Как это работает?
если у термина есть дочерние термины – грузится вид catalog
если нет – грузится вид taxonomy term
если использовать с модулем taxonimy menu – получается каталог как на сайте ситилинка
Как сделать пункт меню?
вариант 1: делаем все термины таксономии дочерними какого-то одного, и указываем в меню ссылку на этот термин
вариант 2: берем модуль taxonomy menu, и выводим в блоке ссылки на категории
Ожидаемые проблемы:
1) На странице термина не отображаются его дочерние термины
Причина: представление taxonomy term перекрывает по весу наше представление
Выход: отключить отображение page у представления taxonomy term
2) Помимо словаря catalog есть другие словари, для них должно быть свое отображение
Выход: ждем, иди сами портируем модуль taxonomy redirect
- задаем разные пути для разных словарей
- клонируем представление taxonomy term, меняем в нем путь на заданный в taxonomy redirect
- меняем представление catalog – указываем новые пути, и меняем no results behavior на новое представление
Источник: http://www.drupal.ru/node/60911
Этапы развития систем отопления
Задолго до изобретения насоса циркуляционного и мембранного расширительного бака люди придумывали системы отопления для согревания квартир . Читать далее
Потестим кнопочку? (Простой вариант интеграции elFinder в CKEditor)
UPD. Как выяснилось из комментариев, модуль ckeditor с версии 6.x-1.3 официально поддерживает elfinder. Таким образом, всё написанное относится к возможному способу вывода “быстрой” кнопки elfinder’a на тулбар.
UPD2(08/05/2011). Плагин доработан до автоматического определения типа файла, возвращаемого elFinder
Нужен был файлменеджер/мультизагрузчик для редактора CKeditor (именно для drupal-модуля).
Я обычно использую IMCE и стал искать дополнения к IMCE, поддерживающие мультизагрузку.
Нашёл только IMCE Swfupload, но он ещё в бета-стадии и требует установки дополнительных модулей. В общем, не устроил.
Зато как-то неожиданно открыл для себя elFinder.
Менеджер показался очень удобным (на мой взгляд, даже получше IMCE).
Мультизагрузка, drag&drop, создание-удаление директорий, файлов. Автоматические тамбы картинок, ну и в целом как-то юзабельнее выглядит.
CKEditor (по крайней мере 6.x-1.3) позволяет интегрировать IMCE как “быструю” кнопку на тулбар (отдельно от диалога выбора ссылки/картинки/файла). Просто нужно раскомментировать соответствующие определения в ckeditor.config.js и убедиться что присутствует папка imce в /modules/ckeditor/plugins
Я стырил это решение и наскоро адаптировал его под elFinder в виде скромного плагина-кнопки (elFinder).
Результат: на тулбаре имеется самодельная кнопочка, по клику на которой сразу открывается окно этого файлового менеджера (т.е. минуя диалог выбора адреса).
После выбора файла (двойной щелчок или команда меню и т.д.) в менеджере, он закрывается и ссылка возвращается в CKeditor в обвязке тегов.
В общем, почти всё как в “обычном” elFinder или IMCE.
Желающие могут пойти дальше и доработать решение плагина. Для примера сравните код приложенного плагина и стандартного плагина кнопки IMCE (функция setFile()): /modules/ckeditor/plugins/imce/plugin.js
Потребуются модули:
- модуль CKEditor
- модуль elFinder
- сам файлменеджер elfinder (он отдельно от модуля).
Плагин кнопки в архиве приложен к посту. Описание установки – в файле README.TXT архива.
После установки не забыть установить необходимые разрешения ролям для доступа к elFinder, CKEditor (если вы это ещё не сделали).
Отображение кнопки не зависит от разрешений.
То есть – если вы запретили какой-то роли использовать elFinder, то кнопка не исчезнет с панели. Просто по клику на ней будет обычный “У вас нет прав для просмотра и т.д.”.
ps. И это… Отписывайтесь, пожалуйста, у кого что получилось. Будут доработки – велкам + респект и уважуха
Прикрепленный файл Размер elfinder.zip 2.72 кбИсточник: http://www.drupal.ru/node/60796
Правильная установка FCKeditor!
Так раз и навсегода.
Во первых модуль FCKeditor 6.x-2.1 работает с FCKeditor 2.6.6
УСТАНОВКА НА DRUPAL
(на вашем сайте в папке “modules” должна появится папка fckeditor)
качать FCKeditor 2.6.6 скачать распаковать содержимое папки fckeditor архива в /modules/fckeditor/fckeditor(не перепутайте и не создавайте еще одну папку, а копируйте содержимое архива)
ВКЛЮЧАЕМ FCKeditor
Заходим в ваш сайт как администратор выбираем пункт меню администратора модули в открывшемся разделе ищем одноименный модуль включаем модуль (выбираем галочкой и жмем сохранить) заходим в меню управление пользователями/роли выбираем роль Зарегестрированный пользователь, отмечаем галочкой fckeditor – использовать fckeditor, сохраняем права доступа заходим в меню настройки сайта, там выбираем fckeditor, если нет никаких сообщений идем к 9му пункту, если есть к следующему если выходит сообщение:The FCKeditor component appears to be not installed correctly, because modules/fckeditor/fckeditor/fckconfig.js could not be found.
Please go to the Домашняя страница FCKeditor to download the latest version. After that you must extract the files to modules/fckeditor/fckeditor and make sure that the directory modules/fckeditor/fckeditor/editor and the file modules/fckeditor/fckeditor/fckeditor.js exist. Refer to the readme.txt for more information.
ПРОВЕРЬТЕ ПУНКТЫ 3 и 4 раздела установки, причем внимательно!!
И ТАК НАСТРОЙКА FCKeditor
первая вкладка Основные настройки здесь задаем имя профиля FCKeditor, кому разрешено пользоваться (можно определенной группе ролей запретить пользоваться модулем, другой разрешить, третьей разрешить использовать только в определнных местах и т.п * вторая вкладка Безопасность здесь мы задаем условия безопаности, фильтровать или не фильтровать код в FCKeditor третья вкладка Настройки видимости здесь мы указываем для какой страницы, раздела или области сайта можно включить модуль (эта часть ограничивает доступ к FCKeditor указанным в первой вкладке ролям пользователей) четвертая вкладка это Внешний вид редактора здесь настраиваем стиль отображения, скин эдитора пятая вкладка Редактор ввода здесь мы управляем режимом ввода (первая выборка действия редактора на Enter, вторая выборка действия редактора на SHift+Enter и т.п) шестая вкладка Настройки файлового браузера здесь выбираем через ккакой ф.б вы хотите загружать файлы, изображения и flash-ролики. седьмая вкладка Стиль и файлы шаблонов здесь управляем шаблонами отображения редактора и стилямиНу вот вроде все..
единственно незнаю как настроить содержимое панели FCKeditora…
Attached poll “У вас получилось установить и включить:?”.
Register or login to poll
Results:
с первого раза: 1 голос
со второго раза: 2 голоса
с третьего раза: 1 голос
никак не получается: 1 голос
Источник: http://www.drupal.ru/node/60770
сохраним груз при перевозке груза
При перевозке и хранении, в грузе, под воздействием внешних причин, могут происходить определенные количественные или качественные изменения.
Как правило, это связано с взаимодействием груза с внешней средой, с механическим воздействием на груз в процессе движения, погрузки и выгрузки, а также с повреждениями как кузова автотранспортного средства, так и складских устройств. Читать далее
Открыта регистрация на DrupalCamp Киев 2011
Приветствую друзья!
С 3 по 4 июня, в Киеве пройдет очередной DrupalCamp Киев — конференция, посвященная CMS Drupal. Событие пройдет в неформальной атмосфере живого общения и объедение до 400 участников — как матерых друпаллеров, так и тех, кто только начинает знакомиться с Друпалом.
Формат конференции — barcamp, что означает обилие общения, обмена опытом и, конечно же, фана. Программа конференции будет формироваться заранее, на основе докладов участников и будет состоять из 4-х параллельных потоков докладов и презентаций, один из которых будет полностью англоязычным. Кроме того, на событии планируется проведение классического код-спринта и спринта переводчиков, а также много других конкурсов.
Для самых стойких, будет проведено два тренинга — базовый, который даст общее понятие о друпале, о том где его лучше всего использовать и покажет как быстро сделать сайт на этой CMS [до конференции] и продвинутый, который даст вводную в разработку своих модулей [после конференции].
Предварительная тематика обсуждений и голосование за темы доступно здесь. Подать заявку можно после регистрации, в личном кабинете.
Для докладчиков, участие в конференции бесплатное, для всех остальных — ранняя регистрация (100 первых билетов) на событие обойдется в символических 100 гривен (≈$13).
Зарегистрироваться сейчас »
UPD: Плюсуем на хабре http://habrahabr.ru/blogs/drupal/117288/
Источник: http://www.drupal.ru/node/60652
Компания СП «Автопогрузка» – безопасный производитель качественной спецтехники в Челябинске. В ассортименте корейские электропогрузчики и ричтраки. Цены
Компания СП «Автопогрузка» – безопасный производитель качественной спецтехники в Челябинске. Читать далее
DrupalCafé №10 — 14.04.2011
В этот четверг, 14 апреля , в 19:00, в Киеве, в помещении i-klass , по адресу Лаврская, 16 (бывшая Ивана Мазепы, 34), пройдет юбилейная, десятая встреча DrupalCafé.
На этот раз у нас будет три презентации:
Selling open source [англ.] (Safeen Ghafour, Madcap) Панели + Drupal Commerce в Drupal 7 (Вячеслав Рысь, FocusArt) Selenium тестирование (Юрий Герасимов, Madcap)Во время встречи будет вестись прямая трансляция.
Так как эта встреча юбилейная, есть предложение провести традиционную часть “Café” в Docker ABC (средний чек ≈ 100 грн).
Напоминаем, DrupalCafé – формат локальных встреч пользователей и разработчиков CMS Drupal. Вход свободный, но исключительно по регистрации, так как количество мест ограничено размерами аудитории (если вы были прошлый раз, вам все равно необходимо зарегистрироваться на события отправив форму на drupal.ua).
За справками можно обращаться к Александру Швецу по телефону +380976833155 или отправив письмо на neochief@drupal.ua
Источник: http://www.drupal.ru/node/60608
#autocomplete_path в элементах textfield
Иногда возникает необходимость для удобства ввода данных создать поле с автозаполнением(autocomplete field). Примерами таких полей могут быть виджеты для cck-полей Node reference i User reference.
Рассмотрим программное создание такого рода полей. Согласно Drupal Forms API reference свойство #autocomplete_path можно добавить только для элемента texfield. Это свойство определяет путь, по которому автоматически включенный JavaScript-код Друпала пошлет HTTP-запросы, используя JQuery.
Читать полностью…
Источник: http://www.drupal.ru/node/60563
Гостиницы Геленджика – живописная зона Краснодарского края
Находясь в районе знаменитой курортной зоны Краснодарского края, гостиницы Геленджика, Сочи и Анапы непрерывно улучшают качество собственного обслуживания и комфорта номеров. Читать далее
Проект «Энергия»: новая версия «1С-Битрикс: Корпоративный портал 10.0»
Проект «Энергия» – «1С-Битрикс: Корпоративный портал 10.0», самое большое обновление за всю историю продукта. Версия 10.0 – это новый продукт с совершенно новыми возможностями и концепциями для управления задачами и проектами, учета рабочего времени, с CRM-системой, «живой лентой» обновлений, микроблогами, интеграцией с продуктами Microsoft, Google и Apple, а также с инструментами для повышения эффективности работы каждого отдельного сотрудника и всей компании в целом.
Источник: http://www.1c-bitrix.ru/about/life/news/278960/
Munin
Оглавление
Устанавливаем клиент и сервер
sudo apt-get install munin munin-node
переходим в каталог доступных плагинов munin
cd /usr/share/munin/plugins
скачиваем плагины для nginx
sudo wget -O nginx_request http://exchange.munin-monitoring.org/plugins/nginx_request/version/2/download sudo wget -O nginx_status http://exchange.munin-monitoring.org/plugins/nginx_status/version/3/download sudo wget -O nginx_memory http://exchange.munin-monitoring.org/plugins/nginx_memory/version/1/download
скачиваем другие плагины
sudo wget -O multimemory http://exchange.munin-monitoring.org/plugins/multimemory/version/3/download sudo wget -O sshd_log http://exchange.munin-monitoring.org/plugins/sshd_log/version/1/download sudo wget -O php5-fpm_status http://exchange.munin-monitoring.org/plugins/php5-fpm_status/version/1/download sudo wget -O mysql_connections http://exchange.munin-monitoring.org/plugins/mysql_connections/version/1/download sudo wget -O mysql_qcache http://exchange.munin-monitoring.org/plugins/mysql_qcache/version/1/download sudo wget -O mysql_qcache_mem http://exchange.munin-monitoring.org/plugins/mysql_qcache_mem/version/1/download
делаем плагины исполняемыми
sudo chmod +x nginx_request sudo chmod +x nginx_status sudo chmod +x nginx_memory sudo chmod +x multimemory sudo chmod +x sshd_log sudo chmod +x php5-fpm_status sudo chmod +x mysql_connections sudo chmod +x mysql_qcache sudo chmod +x mysql_qcache_mem
выходим из директории
cd ~
включаем плагины
sudo ln -s /usr/share/munin/plugins/nginx_request /etc/munin/plugins/nginx_request sudo ln -s /usr/share/munin/plugins/nginx_status /etc/munin/plugins/nginx_status sudo ln -s /usr/share/munin/plugins/nginx_memory /etc/munin/plugins/nginx_memory sudo ln -s /usr/share/munin/plugins/multimemory /etc/munin/plugins/multimemory sudo ln -s /usr/share/munin/plugins/sshd_log /etc/munin/plugins/sshd_log sudo ln -s /usr/share/munin/plugins/php5-fpm_status /etc/munin/plugins/php5-fpm_status sudo ln -s /usr/share/munin/plugins/mysql_connections /etc/munin/plugins/mysql_connections sudo ln -s /usr/share/munin/plugins/mysql_qcache /etc/munin/plugins/mysql_qcache sudo ln -s /usr/share/munin/plugins/mysql_qcache_mem /etc/munin/plugins/mysql_qcache_mem
Некоторые плагины имеет не unix формат, чтобы он заработал в Ubuntu открываем его
sudo vim /usr/share/munin/plugins/sshd_log
и пишем команду для vim редактора (не в документ пишем а именно команду)
:set ff=unix
Редактируем дефолтовый конфиг Nginx
sudo vim /etc/nginx/sites-available/default
Добавляем новые location для localhost
location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } location /fpm-status { access_log off; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /fpm-status; include fastcgi_params; allow 127.0.0.1; deny all; }
Перезагружаем nginx
sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
Далее, необходимо указать плагинам, куда ходить за статистикой и тому подобное
sudo vim /etc/munin/plugin-conf.d/munin-node
Добавляем следующее
[nginx*] env.url http://localhost/nginx_status env.ua nginx-status-verifier/0.1 [multimemory] env.os linux env.names nginx php5-fpm mysqld [users] env.category users [sshd_log] user root group root env.logfile /var/log/auth.log env.category users
Для работы статистики php5-fpm редактируем его конфиг
sudo vim /etc/php5/fpm/main.conf
Добавляем
pm.status_path = /fpm-status
Перезагружаем клиент Munin:
sudo /etc/init.d/munin-node restart
или
sudo service munin-node restart
Перезагружаем php5-frm
sudo /etc/init.d/php5-fpm restart
Добавляем хост
sudo vim /etc/nginx/sites-available/munin.example.ru
Вставляем примерно следующее
server { listen 80; server_name munin.example.ru; access_log /var/log/nginx/munin.example.ru.access.log; auth_basic "Restricted"; auth_basic_user_file /etc/munin/.htpasswd; location / { root /var/cache/munin/www; index index.html; } }
Включаем
sudo ln -s /etc/nginx/sites-available/munin.example.ru /etc/nginx/sites-enabled/munin.example.ru
Создаем файлик, где будут располагаться пользователи, для которых будет открыт доступ к графикам производительности (http://www.codeobsessed.com/encryption.php нужен пароль crypt(3)):
sudo vim /etc/munin/.htpasswd
Перезагружаем nginx
sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
Теперь можно смотреть графики по адресу munin.example.ru
Прикрепленный файл Размер www_raven.zip 7.75 кб templates_raven.zip 28.68 кбИсточник: http://www.drupal.ru/node/60544
Почта
Оглавление
Содержать свой почтовый сервер, со всеми прибомбасами, такими как антивирусник, антиспам и так далее, оказалось слишком дорого в плане ресурсов, это будет плохо вписываться в имеющиеся 384М оперативки, даже при 512 я буду смотреть в сторону увеличения воркеров для fpm, увеличения памяти для скриптов (сейчас 1 воркер на 128М, что катострафически мало), также буду смотреть в сторону организации ускорителя и кеша… В общем только на конфигурации 1Gb оперативной памяти следует задуматься о развёртовании полноценного почтового сервера.
Я использую яндекс, т.к. в панели управления доменами у моего регистратора есть автоматическая привязка. Но можно пробовать завязывать на gmail или mail.ru
Меняем имя сервера (по умолчанию оно server), впринципе это нужно для полноценного почтового сервера, но пускай будет настроено правильно.
sudo vim /etc/hostname
Пишем название, например
sergei
Меняем хост
sudo vim /etc/hosts
Заменяем нули на реальный IP
0.0.0.0 sergei.example-d6.ru sergei
Перезагружаем ОС
sudo reboot
Смотрим на имя и хост
hostname hostname -f
Если после перезагрузки имя не сменилось, то надо идти в панель управления VDS если нет доступа к ней, то просить хостера сменить имя.
Установим нужные пакеты, которые настроены будут позже
sudo apt-get install postfix libsasl2-2 sasl2-bin
Отредактируем конфиг:
sudo vim /etc/postfix/main.cf
Исправляем:
mynetworks = 127.0.0.0/8, 192.168.0.0/16
Добавляем в этот же конфиг
smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/saslpass smtp_sasl_security_options = relay = smtp.yandex.ru relayhost = smtp.yandex.ru
Добавим файл /etc/postfix/saslpass:
sudo vim /etc/postfix/saslpass
smtp.yandex.ru admin@example-d6.ru:password
Закрепим изменения:
sudo postmap /etc/postfix/saslpass
Подправим php.ini:
sudo vim /etc/php5/fpm/php.ini
Находим строку sendmail_path и заменяем:
sendmail_path = sendmail -t -i -f admin@example-d6.ru
Перезагружаем fpm
sudo /etc/init.d/php5-fpm restart
Теперь должно всё работать, я проверял на контактной форме случайного сайта, т.е. не c example-d6.ru, а например example-d7.ru, чтобы убедиться что письма отсылаются с любого домена, а не только указанного в конфиге.
Источник: http://www.drupal.ru/node/60543
Cron
Оглавление
Нужно настроить cron для всех сайтов, в том числе и для технических. Периоды выбираются индивидуально для каждого сайта, но на технический я ставлю 1 раз в сутки, не смотря на то что в админке drupal’a ставлю проверять обновления раз в неделю…
Открываем для редактирования задачи cron’a
sudo crontab -e
Должно быть примерно так, третья строка (www.example-d6.ru) запускается каждую минуту чтобы убедиться сразу что работает, после чего надо выставить нормальное время, чтобы не завалить сервер если сайтов в мультисайтинге десяток, а то и не один…
45 2 * * * /usr/bin/wget -O - -q -t 1 http://technical.example-d6.ru/cron.php 15 3 * * * /usr/bin/wget -O - -q -t 1 http://technical.example-d7.ru/cron.php * * * * * /usr/bin/wget -O - -q -t 1 http://www.example-d6.ru/cron.php 35 3 * * /usr/bin/wget -O - -q -t 1 http://www.example-d7.ru/cron.php
Источник: http://www.drupal.ru/node/60542
D6 Установка
Оглавление
Создаём папочки в sites
www.example-d6.ru www.example-d6.ru/files www.example-d6.ru/modules www.example-d6.ru/themes www.example-d6.ru/tmp
Копируем в www.example-d6.ru из sites/default файл default.settings.php и переименовываем в settings.php
Также копируем в www.example-d6.ru robots.txt
Если сайт переносится, редактируется settings.php чтобы данные о базе были верны.
Если ставиться, новый сайт и он первый на связке, то настройки добавляются при установке, потом редактируются.
Если ставиться, новый сайт, но он уже не первый, то копировать settings.php удобнее из соседнего сайта связки, и изменить следующее
$db_url = 'mysqli: //и ваши данные о базе $db_prefix = array( 'default' => 'exampled6_', 'locales_meta' => 'shared_', 'locales_source' => 'shared_', 'locales_target' => 'shared_', ); $base_url = 'http://www.example-d6.ru'; ini_set('memory_limit', '128M');
Теперь остаётся только задать адрес
sudo vim /etc/nginx/sites-available/example-d6.ru
Заменяем на свой хост
server { listen 80; server_name example-d6.ru; rewrite ^ http://www.example-d6.ru$request_uri? permanent; #301 redirect } server { listen 80; server_name www.example-d6.ru; access_log /var/log/nginx/example-d6.ru.access.log; root /var/www/drupal6; index index.php; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?q=$1 last; } error_page 404 index.php; # hide protected files location ~* .(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(.php)?|xtmpl|svn-base)$|^(code-style.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$ { deny all; } # hide backup_migrate files location ~* ^/sites/www.example-d6.ru/files/backup_migrate { deny all; } # Static content location = /robots.txt { if (-f $document_root/sites/www.example-d6.ru/robots.txt) { rewrite . /sites/www.example-d6.ru/robots.txt; } break; } location ~ ^(/sites/all|/sites/www.example-d6.ru)?/(modules|themes|libraries)/.*.(css|js|png|gif|jpg)$ { break; } location /misc/ { break; } location /sites/www.example-d6.ru/files/ { break; } # Imagecache (http://drupal.org/project/imagecache) location /sites/www.example-d6.ru/files/imagecache/ { if (-f $request_filename) { break; } rewrite ^(.*)$ /index.php?q=$1 last; } location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/drupal6$fastcgi_script_name; include fastcgi_params; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; } ## Disable viewing .htaccess & .htpassword location ~ /\.ht { deny all; } }
Включаем
sudo ln -s /etc/nginx/sites-available/example-d6.ru /etc/nginx/sites-enabled/example-d6.ru sudo /etc/init.d/nginx restart
Источник: http://www.drupal.ru/node/60541
D6 Подготовка
Оглавление
Создаём пользователя drupal6
sudo /usr/sbin/adduser drupal6
Добавляем папки для ключей SSH
sudo mkdir /home/drupal6/.ssh
Генерируем ключи, сразу же предложит указать файл, он будет такой /home/drupal6/.ssh/id_rsa
sudo ssh-keygen -t rsa sudo mv ~drupal6/.ssh/id_rsa.pub ~drupal6/.ssh/authorized_keys sudo rm ~drupal6/.ssh/id_rsa sudo chown -R drupal6:drupal6 ~drupal6/.ssh sudo chmod 700 ~drupal6/.ssh sudo chmod 600 ~drupal6/.ssh/authorized_keys
Надо разрешить им доступ по SSH для заливки файлов по SFTP протаколу
sudo vim /etc/ssh/sshd_config
Должно быть примерно так
AllowUsers admin drupal6
Перезагружаем SSH
sudo /etc/init.d/ssh reload
Теперь создаём папку для сайта
sudo mkdir /var/www/drupal6 sudo ln -s /var/www/drupal6 ~drupal6/www sudo chown -R drupal6:drupal6 /var/www/drupal6
Логинимся от имени drupal6, например через FileZilla, и заливаем свежую версию ядра, создаём базу, пользователя базы и т.д через PhpMyAdmin
Теперь определяемся с адресами, у меня будет такая структура:
technical6.example-d6.ru – технический сайт который находится пожизненно в режиме “на обслуживании”. Здесь будут включены все модули которые есть в папочке all, следить за обновлениями модулей буду именно отсюда. Это позволит не включать вообще вообще ни на одном другом сайте в этой связке этот модуль, что несомненно ускорит админку этих сайтов. Будут ставиться переводы, таблицы для переводов будут шариться на все сайты связки. Так же на главную страницу будут выноситься ссылки на скрипт обновления каждого из сайтов мультисайтинга, что при установке обновлений ускорит работу.
www.example-d6.ru – первый сайт мультисайтинга, на шестёрке.
Источник: http://www.drupal.ru/node/60540
MySqlDumper
Оглавление
Ставим MySqlDumper (www.mysqldumper.net), его я использую для переноса баз данных, т.к. один сайт имеет запредельный размер, порядка 500М в несжатом виде, также ставлю на хостинг, там делаю экспорт, здесь импорт.
sudo mkdir /var/www/mysqldumper sudo ln -s /var/www/mysqldumper ~admin/mysqldumper sudo chown -R admin:admin /var/www/mysqldumper
Заливаем сюда скрипты, я например через FileZilla это делаю, а не через putty
Сразу поставим права, т.к. этого потребует скрипт установки.
chmod 777 /var/www/mysqldumper/config.php
Добавляем хост
sudo vim /etc/nginx/sites-available/mysqldumper.example.ru
Вставляем примерно следующее
server { listen 80; server_name msd.example.ru; rewrite ^ http://mysqldumper.example.ru$request_uri? permanent; #301 redirect } server { listen 80; server_name mysqldumper.example.ru; access_log /var/log/nginx/mysqldumper.example.ru.access.log; location / { root /var/www/mysqldumper; index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/mysqldumper$fastcgi_script_name; include fastcgi_params; } }
Включаем
sudo ln -s /etc/nginx/sites-available/mysqldumper.example.ru /etc/nginx/sites-enabled/mysqldumper.example.ru
И перезагружаем nginx
sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
Открыв в браузере mysqldumper.example.ru увидим install, проходим её. Нажимаем на “Create directory protection” например MD5. Для nginx нужен crypt(3) можно составить например здесь http://www.codeobsessed.com/encryption.php
Открываем файл с паролями и заменяем пароль на полученный через crypt(3)
vim /var/www/mysqldumper/.htpasswd
Но это не работает для nginx сервера, поэтому добавляем в конфиг
sudo vim /etc/nginx/sites-available/mysqldumper.example.ru
следующее
auth_basic "Restricted"; auth_basic_user_file /var/www/mysqldumper/.htpasswd;
т.е. получится примерно так
server { listen 80; server_name mysqldumper.example.ru; access_log /var/log/nginx/mysqldumper.example.ru.access.log; auth_basic "Restricted"; auth_basic_user_file /var/www/mysqldumper/.htpasswd; ...
И снова перезагружаем nginx
sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
Источник: http://www.drupal.ru/node/60538
PhpMyAdmin
Оглавление
Устанавливаем нужные пакеты
sudo apt-get install phpmyadmin php5-mcrypt
В окошке не выбираем ничего просто жмём enter
Добавляем хост
sudo vim /etc/nginx/sites-available/phpmyadmin.example.ru
Вставляем примерно следующее
server { listen 80; server_name pma.example.ru; rewrite ^ http://phpmyadmin.example.ru$request_uri? permanent; #301 redirect } server { listen 80; server_name phpmyadmin.example.ru; access_log /var/log/nginx/phpmyadmin.example.ru.access.log; location / { root /usr/share/phpmyadmin; index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name; include fastcgi_params; } }
Включаем
sudo ln -s /etc/nginx/sites-available/phpmyadmin.example.ru /etc/nginx/sites-enabled/phpmyadmin.example.ru
Забегая вперёд, после входа PhpMyAdmin будет жаловаться на установленный Suhosin, правим конфиг как рекомендовано в доках на PhpMyAdmin
sudo vim /etc/php5/conf.d/suhosin.ini
Должны быть следующие значения:
suhosin.sql.bailout_on_error = off suhosin.post.max_array_index_length = 256 suhosin.post.max_totalname_length = 8192 suhosin.post.max_vars = 2048 suhosin.request.max_array_index_length = 256 suhosin.request.max_totalname_length = 8192 suhosin.request.max_vars = 2048
так же логи не должны включать в себя sql
Далее отключаем предупреждение о возможных проблемах с suhosin
sudo vim /usr/share/phpmyadmin/libraries/config.default.php
В файле написано что мы не должны его менять, так что меняем только это значение, чтобы надпись не раздражала, так как мы выставили рекомендуемые параметры.
$cfg['SuhosinDisableWarning'] = true;
Перезагружаем php fpm и nginx
sudo /etc/init.d/php5-fpm restart && sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
Теперь по адресу phpmyadmin.example.ru должна быть форма входа в PhpMyAdmin
Источник: http://www.drupal.ru/node/60537
MySQL
Оглавление
Устанавливаем нужные пакеты
sudo apt-get install mysql-server mysql-client php5-mysql
Правим конфиг чтобы уменьшить потребление памяти
sudo vim /etc/mysql/my.cnf
Находим раздел про InnoDB, и добавляем
skip-innodb
Перезапускаем mysql
sudo /etc/init.d/mysql restart
если не получится, то попробовать надо так
sudo service mysql restart
Потребление памяти уменьшилось, благодаря тому, что запущено теперь меньше процессов mysql
Перезапускаем php fpm т.к. мы поставили php5-mysql, который пока не работает
sudo /etc/init.d/php5-fpm restart
Источник: http://www.drupal.ru/node/60536
MemCache
Оглавление
Устанавливаем сам memcache
sudo apt-get install php5-memcache
Перезагружаем php5-frm
sudo /etc/init.d/php5-fpm restart
Источник: http://www.drupal.ru/node/60535
eAccelerator
Оглавление
Скачиваем во временную папку последнию версию и устанавливаем
cd /tmp/ sudo wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2 sudo tar xvjf eaccelerator-0.9.6.1.tar.bz2 cd eaccelerator-0.9.6.1 sudo phpize sudo ./configure --enable-eaccelerator=shared sudo make sudo make install cd ~
теперь редактируем и добавляем следующие строки, начиная после тега [PHP]:
sudo vim /etc/php5/fpm/php.ini
; eAccelerator configuration ; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension ; If you are using a thread safe build of PHP you must use ; zend_extension_ts instead of zend_extension ;extension = "/usr/lib/php5/20090626/eaccelerator.so" zend_extension = "/usr/lib/php5/20090626/eaccelerator.so" eaccelerator.shm_size = "16" eaccelerator.cache_dir = "/var/cache/eaccelerator" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.check_mtime = "1" eaccelerator.debug = "0" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "0" eaccelerator.shm_prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9" eaccelerator.allowed_admin_path = "/var/www/eaccelerator"
Создаём директории с нужными права
sudo mkdir -p /var/cache/eaccelerator sudo chmod 0777 /var/cache/eaccelerator
Перезагружаем php5-frm
sudo /etc/init.d/php5-fpm restart
Источник: http://www.drupal.ru/node/60534
PHP
Оглавление
Нам понадобятся 2 библиотеки, закачаем последние версии и установим их
cd /tmp wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb sudo dpkg -i *.deb cd ~
Обновим список репозиториев, для установки последней стабильной версии PHP
sudo vim /etc/apt/sources.list
Добавляем
deb http://php53.dotdeb.org stable all
Обновляемся и устанавливаем PHP с нужными пакетами.
sudo apt-get update sudo apt-get install php5-cli php5-common php5-suhosin sudo apt-get install php5-fpm php5-cgi sudo apt-get install php-apc php5-curl php5-dev
Редактируем конфиг для fpm, т.к. через него у нас будет запускаться FastCGI
sudo vim /etc/php5/fpm/php.ini
Вставляем следующий параметр
cgi.fix_pathinfo = 0
Правим конфиг для пакета php-apc
sudo vim /etc/php5/conf.d/apc.ini
Добавляем строку
apc.shm_size = 48
Чтобы не было падений php-fpm открываем этот конфиг
sudo vim /etc/php5/fpm/pool.d/www.conf
На самом деле динамические воркеры, это хорошо. Если мы даём каждому юзеру свой воркер это накладно при 2000 сайтов. Но у нас только VDS с 384М, а не сервак с 16 гигами, будет несколько юзеров, но с общими воркерами, для начала поставим 1, а когда будет всё настроено можно будет увеличивать если будут свободные ресурсы (На вторую конфигурацию с гигом памяти смело можно ставить 3, или вообще не трогать и оставить динамические). Так же хорошо для крона сделать отдельный воркер, это связано с тем что на моих сайтах долго выполняется cron, время каждого запуска расчитано, поэтому хватит и одного отдельного потока, для его бесперебойной работы, чтобы он не конкурировал с пользователями сайтов. Но всё это держим только в уме, а пока ставим 1 поток на всех.
pm = static pm.max_children = 1
Перезагружаем nginx и php5-frm.
sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start sudo /etc/init.d/php5-fpm stop sudo /etc/init.d/php5-fpm start
Создаём проверочный файл
sudo vim /var/www/index.php
И пишем такую строчку
<?php phpinfo(); ?>
Проверяем, должно всё работать.
Источник: http://www.drupal.ru/node/60533
Nginx
Оглавление
Смотрим установлен ли апач
dpkg -l | grep apache
Если установлен, то удаляем примерно так (будет зависеть от установленных пакетов):
sudo apt-get --purge remove apache2 apache2.2-bin apache2.2-common apache2-mpm-prefork apache2-utils apache2-doc
Устанавливаем nginx
sudo apt-get install nginx
Запускаем
sudo /etc/init.d/nginx start
Далее в браузере вводим IP своего VDS и видим надпись
Welcome to nginx!
* Если появилась ошибка 403, то на этом этапе не страшно, в одной из версий неправильный конфиг дефолтовый, что исправиться при установке PHP
Меняем дефолтовый конфиг
sudo vim /etc/nginx/sites-available/default
Заменяем содержимое файла на следующее
server { listen 80; server_name localhost; access_log /var/log/nginx/localhost.access.log; ## Default location location / { root /var/www; index index.php; } ## Images and static content is treated different location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { access_log off; expires 30d; root /var/www; } ## Parse all .php file in the /var/www directory location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } ## Disable viewing .htaccess & .htpassword location ~ /\.ht { deny all; } }
Чтобы можно было добавлять много server_name в разных конфигах нужно добавить директиву server_names_hash_bucket_size в конфиге nginx в http блок
sudo vim /etc/nginx/nginx.conf
server_names_hash_bucket_size 512;
Источник: http://www.drupal.ru/node/60532
Подготовка ОС
Оглавление
Устанавливаем локаль
sudo /usr/sbin/locale-gen en_US.UTF-8 && sudo /usr/sbin/update-locale LANG=en_US.UTF-8
Обновляемся
sudo apt-get update
Ставим менеджер для обновлений
sudo apt-get install update-manager-core sudo do-release-upgrade
Ставим для обзора процессов и их потребления памяти ими, ставим htop
sudo apt-get install htop
используем очень просто
htop
Ставим утилиты разработки
sudo apt-get install build-essential
Если стоит 10.04 а не 10.10 то обновление делается так
Открываем файл менеджера обновлений для правки
sudo vim /etc/update-manager/release-upgrades
Заменяем
Prompt=lts
на
Prompt=normal
Обновляемся
sudo do-release-upgrade
Теперь должна быть версия 10.10
Источник: http://www.drupal.ru/node/60531
Подготовка сервера
Оглавление
Хостер установил уже Ubuntu Server 10.10 и даже поставил ssh и Apache 2.
Заходим через SSH как root, сразу меняем пароль на нормальный
passwd
Добавляем группу избранных, назовём её raccess
/usr/sbin/groupadd raccess
Открываем файл, для того чтобы нашу группу сделать “избранной”
/usr/sbin/visudo
Добавляем в конец файла, далее если не оговаривается, то всегда вставляется именно в конец.
## Allows people in group raccess to run all commands %raccess ALL=(ALL) ALL
Добавляем нового пользователя, пускай будет admin, но в теории хорошо как и группу называть по другому, это усложняет взлом подбором.
/usr/sbin/adduser admin
Добавляем его к ранее созданной группе
/usr/sbin/usermod -a -G raccess admin
Добавляем папку для ключей SSH
mkdir ~/.ssh
Генерируем ключи
ssh-keygen -t rsa
Делаем для нашего будущего аккаунта, где вместо нулей подставляем реальный IP адрес
scp ~/.ssh/id_rsa.pub admin@0.0.0.0: mkdir ~admin/.ssh mv ~admin/id_rsa.pub ~admin/.ssh/authorized_keys
Назначаем права нашему пользователю
chown -R admin:admin ~admin/.ssh chmod 700 ~admin/.ssh chmod 600 ~admin/.ssh/authorized_keys
Настраиваем SSH
vim /etc/ssh/sshd_config
Проверяем значения и меняем или добавляем строки если нет…
Port 10022 # Меняем на что нибудь между 1025 и 65536, это так же усложнит жизнь взломщикам. Protocol 2 PermitRootLogin no # отключаем запись для root пользователя UseDNS no AllowUsers admin # если пользователей несколько через пробел называем всех
В интернете предлагают сделать следующее, я пока не разобрался как потом залогиниться
PasswordAuthentication no
Создаём правила маршрутизации в файлике, чтобы после перезагрузки сервера настройки восстанавливались.
vim /etc/iptables.up.rules
Вставляем следующее, и меняем порт для SSH, который недавно ставили 10022, остальные не трогаем, в комментариях видно для чего они понадобятся.
*filter # Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT # Accepts all established inbound connections -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Allows all outbound traffic # You can modify this to only allow certain traffic -A OUTPUT -j ACCEPT # Allows HTTP and HTTPS connections from anywhere (the normal ports for websites) -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 443 -j ACCEPT # Allows mysql -A INPUT -p tcp --dport 3306 -j ACCEPT # Allows fcgi -A INPUT -p tcp --dport 9000 -j ACCEPT -A INPUT -p tcp --dport 8521 -j ACCEPT # Allows SSH connections # # THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE # -A INPUT -p tcp -m state --state NEW --dport 10022 -j ACCEPT # Allows mail -A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT # Allows ldap -A INPUT -p tcp -m state --state NEW -m tcp --dport 389 -j ACCEPT # Allows memcache -A INPUT -p tcp -m state --state NEW -m tcp --dport 11211 -j ACCEPT # Allows munin -A INPUT -p tcp -m state --state NEW -m tcp --dport 4949 -j ACCEPT # Allow ping -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT # log iptables denied calls -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 # Reject all other inbound - default deny unless explicitly allowed policy -A INPUT -j REJECT -A FORWARD -j REJECT COMMIT
Чистим память
/sbin/iptables -F
Применяем наши правила
/sbin/iptables-restore < /etc/iptables.up.rules
Проверяем внимательно особенно наш порт SSH
/sbin/iptables -L
Для восстановления после перезагрузки создаём файл
vim /etc/network/if-pre-up.d/iptables
Вставляем следующее
#!/bin/sh /sbin/iptables-restore < /etc/iptables.up.rules
Разрешаем запускать этот файл
chmod +x /etc/network/if-pre-up.d/iptables
Перезагружаем ssh
/etc/init.d/ssh reload
Закрываем Putty, открываем заново поменяв порт. Заходим под admin
Теперь нельзя залогиниться как root…
Источник: http://www.drupal.ru/node/60530
Патч модуля для редиректа внешних ссылок Gotwo
Многим знаком модуль gotwo. Он делает редирект внешних ссылок. Неудобство модуля в том что он использует нестандартный тег GO. Решил его поправить. Чтобы не было необходимости использовать нестандартные теги. Так-же в оригинальном модуле создавался новый элемент. Я же решил вносить изменения для редиректа в стандартный тег A если установлен класс GO.
Собственно сами изменения. Прошу указать на ошибки, если что не так.
Меняем только функцию _gotwo_link в файле gotwo.module
Было
function _gotwo_link($text, $filter) {
$html_dom = filter_dom_load($text);
$goNodesToRemove = array();
foreach ($html_dom->getElementsByTagName('go') as $goNode) {
// Clone <go> link to <a> link and keep all attributes intact.
$linkNode = $goNode->ownerDocument->createElement('a');
if ($goNode->attributes->length) {
foreach ($goNode->attributes as $attribute) {
$linkNode->setAttribute($attribute->nodeName, $attribute->nodeValue);
}
}
// Clone all <go> child nodes inside the new <a> tag.
while ($goNode->hasChildNodes()) {
$childNodes = $goNode->childNodes;
$linkNode->appendChild($childNodes->item(0));
}
// Verify if the url exists in the {gotwo} table. If the url is missing,
// add the url with link title to the {gotwo} table.
$href = $goNode->getAttribute('href');
$title = $goNode->getAttribute('title');
if (!empty($href)) {
$linkNode->setAttribute('href', _gotwo_get_url($href, empty($title) ? NULL : $title));
}
// Insert the new $linkNode before the previous $goNode.
$goNode->parentNode->insertBefore($linkNode, $goNode);
// Save $goNode to remove array. We cannot remove the child here or the DOM
// index will be cluttered and every second <go> link is not replacement.
$goNodesToRemove[] = $goNode;
}
?>
Стало
<?phpfunction _gotwo_link($text, $filter) {
$html_dom = filter_dom_load($text);
$goNodesToRemove = array();
foreach ($html_dom->getElementsByTagName('a') as $goNode) {
// Clone <go> link to <a> link and keep all attributes intact.
if($goNode->getAttribute('class') == 'go') {
$href = $goNode->getAttribute('href');
$title = $goNode->getAttribute('title');
if (!empty($href)) {
$goNode->setAttribute('href', _gotwo_get_url($href, empty($title) ? NULL : $title));
}
}
}
// Now we are able to remove the child's without loosing the index.
$text = filter_dom_serialize($html_dom);
return trim($text);
}
?>
Источник: http://www.drupal.ru/node/60488
Схемы прерывания деятельности через законную ликвидацию компании и нюансы процесса
Чтобы закрыть ООО с нулевым балансом потребуется в официальном порядке осуществить стандартную череду действия ликвидации фирмы. Читать далее
Китайский планшетник – плюсы и минусы
Одной из самых сенсационных технических инноваций 21 века стал планшетный ПК – практичный и функциональный прибор, непритязательный в применении и приемлемый по цене. Читать далее
Промышленный альпинизм доступным языком.
Чтобы выполнить высотные работы, требуется неспеша делать навеску. Читать далее
Рекламная компания Промо-зона.
Проведение очень отличных btl мероприятий – прерогатива прекрасных компаний. Читать далее
Ни за что бы не поверила, что жизнь заставит заполучить легковой автомобиль и ноут для того, чтобы окончить высшее образование
Ни за что бы не поверила, что ЭВМ для студента – это просто нужная вещь. Читать далее
Экспорт в Яндекс.Новости
Сделал модуль для экспорта ленты сайта в Яндекс.новости.
Для views, с гибкими настройками маппинга полей. Под семерку.
Просьба потестить и рассказать про результаты проверки Яндексом ваших лент.
Баги – в issue tracker модуля, но можно и сюда.
http://drupal.org/project/ynews
Источник: http://www.drupal.ru/node/60373
Drupal, Ubercart, корзина и кеширование для анонимов
При выключенном кешировании аноним видит корзину как положено
При включенном кешировании и анониме с uid 0 корзина всегда показывается ссылкой
При включенном кешировании и анониме не 0 поведение корзины довольно непредсказуемо
Отключать кеш – не самая лучшая идея, не говоря уже о том, чтобы boost включить
вскрытие уберкарта показало, что uid 0 используется явно(кто бы сомневался) поэтому не 0 даёт такой результат
для начала запрещаем выдачу корзины анониму ссылкой
uc_cart.module
потом ставим модуль ajaxblocks и выводим блок корзины через него
теперь можно смело включать кеширование или даже ставить boost
uc_ajax_cart работает так же отлично
единственный минус – +1 асинхронный запрос к серверу, что при включенном бусте нивелируется полностью
UPDATE 0
для не готовых идти по пути самурая есть путь ниндзи
поставить буст, не включать кеширование, поставить аякс блок
и вариант для джедаев – написать свой модуль/php-код, который выводит блок правильно, можно даже сразу с аякс
также можно попросить разработчиков уберкарт вычислять $cachable с учётом флага админки, но когда это будет?
если активно кешировать, я не вижу способов обойтись без аякс
UPDATE 1
с мест подсказывают, uid анонима должен быть 0 всегда, при любых обстоятельствах, иначе поведение модулей, его проверяющих, может стать непредсказуемым
но случается, что при выливке дампа его срывает – причины лично для меня непонятные, исправляю специально для этого сделанным sql
UPDATE 2
с мест подсказывают, uc_ajax_cart 2.x-beta версии делает всё самостоятельно
если вы не боитесь, то можно использовать его
Источник: http://www.drupal.ru/node/60318
Очень стремительный эвакуатор
Страшно забавная идея пришла в голову инженерам из организации «Coming Through». Читать далее
Значение валидации кода и продвижение сайта
Роль валидации кода и продвижение сайтов Чтобы проводить правильную оптимизацию сайтовграмотную оптимизацию сайтов в таких поисковых системах как Яндекс и Гугл нужно уметь оценивать много различных факторов. Читать далее
Новый модуль SMS v0.3
Обновил модуль SMS для отправки уведомлений через телефоны или GSM модемы
Добавил отсылку уведомлений при новых коментариях в авторской ноде, уведомления о ответах на комментари и уведомления о всём что происходит на сайте
Ссылка на настройки sms/subscribe/comment но почему то ни как табой ни как меню не отображается если кто сможет помочь – буду рад.
Версия 0.1 http://www.drupal.ru/node/60065
Версия 0.2 http://www.drupal.ru/node/60119
Источник: http://www.drupal.ru/node/60206
“1С-Битрикс” научит быстро и эффективно запускать веб-кластер в “облаке” Amazon”
Компания «1С-Битрикс» примет участие в конференции SoftwarePeople-2011, которая пройдет с 7 по 9 апреля 2011 в отеле «Холидей Инн Москва Сокольники». На конференции участников ждёт насыщенная программа, лучшие мировые и российские спикеры, эксклюзивные доклады и многое другое.
Источник: http://www.1c-bitrix.ru/about/life/news/277637/
«1С-Битрикс» научит эффективно интегрировать веб-кластер в облака Amazon
Компания «1С-Битрикс» примет участие в конференции SoftwarePeople-2011, которая пройдет с 7 по 9 апреля 2011 в отеле «Холидей Инн Москва Сокольники». На конференции участников ждёт насыщенная программа, лучшие мировые и российские спикеры, эксклюзивные доклады и многое другое.
Источник: http://www.1c-bitrix.ru/about/life/news/277637/
WordPress 3.1.1 на русском
Доступен WordPress 3.1.1. Это техническое обновление содержит исправления около 30 ошибок версии 3.1, включая:
Меры по повышению безопасности при загрузке медиафайлов. Улучшения производительности. Исправления поддержки IIS 6. Исправления постоянных ссылок для таксономий, а также ссылок в формате PATHINFO (/index.php/). Исправления частных случаев обработки запросов и таксономий, приводивших к проблемам с некоторыми плагинами.Версия 3.1.1 также содержит исправления трёх проблем с безопасностью, обнаруженных разработчиками из команды безопасности WordPress — Джоном Кейвом и Питером Вествудом. Первое вводит дополнительную защиту от CSRF-атак в загрузчике медиафайлов. Второе предотвращает падение некоторых конфигураций PHP при обработке специальным образом составленных ссылок в комментариях, а третье закрывает XSS-уязвимость.
Рекомендуем обновиться как можно скорее. Скачайте версию 3.1.1 или воспользуйтесь автоматическим обновлением в меню «Консоль» → «Обновления».
Традиционное хокку:
Только гик знает,
О чём здесь говорится.
Просто обновись.
Источник: http://ru.wordpress.org/2011/04/wordpress-3-1-1/
Самостоятельная продажа недвижимости
Период подготовки
Данный период может состоять из нескольких этапов. Читать далее
Современные рекламные технологии
В настоящее время телевидение, естественно, остается важным компонентом рекламных кампаний по раскрутке брэндов и продвижению новых товаров на рынок. Читать далее
Новый модуль SMS v0.2
Итак обновил модуль SMS – отправка сообщений через мобильный телефон или GSM модем с помошью GAMMU
Добавил следующее:
* Журнал смс
* Отправка про cron
* Вкыл/Выкл транслит – Соответственно 140 или 63 символа ограничиваю строку
* Модуль подписки на новые ноды
Собираюсь добавить:
* Включение определённой роли при привязке номера
* Уведомление о новых ЛС
Прошлая версия: http://www.drupal.ru/node/60065
Если кто то поможет выложить на drupal.org буду благодарен…
Прикрепленный файл Размер sms-0.2.zip 11.83 кбИсточник: http://www.drupal.ru/node/60119
«1С-Битрикс: Управление сайтом 10» и «1С: Управление торговлей 8, редакция 11» интегрированы в штатной поставке
Новая версия системы управления сайтами «1С-Битрикс: Управление сайтом 10.0», выпуск которой состоялся в марте 2011 года, интегрирована с «1С: Предприятие 8.2». Теперь обмен данными с сайтами на «1С-Битрикс» впервые стал доступен в типовой конфигурации «1С: Управление торговлей 8».
Источник: http://www.1c-bitrix.ru/about/life/news/277174/
«1С-Битрикс» предлагает принципиально новые возможности по обмену данными с “1С: Управление торговлей 8″
Новая версия системы управления сайтами «1С-Битрикс: Управление сайтом 10.0», выпуск которой состоялся в марте 2011 года, интегрирована с «1С: Предприятие 8.2». Теперь обмен данными с сайтами на «1С-Битрикс» впервые стал доступен в типовой конфигурации «1С: Управление торговлей 8».
Источник: http://www.1c-bitrix.ru/about/life/news/277174/
On-Line видео через IP камеру
Возникло желание сделать трансляцию видео через IP-камеру.
Камера DSC-2121. Можно подключить напрямую к инету, в моем случае через домашний роутер DIR-320.
Далее пошли мучения с поиском и доработкой скрипта.
В результате получился такой код:
ХХХ.ХХХ.ХХХ.ХХХ – это IP Вашей камеры. Впрочем можно указывать и в “нормальном” виде – http://my_account.dlinkddns.com
На стороне клиента должна быть предустановлена Ява. Впрочем если ее не будет, появится сообщение с адресом закачки.
Проверял на ИЕ, Опере, Фоксе.
Пример реализации
(Не всегда работает. Для камеры нужен статический IP, а у меня псевдостатический, через www.dlinkddns.com)
В настройках камеры нужно создать пользователя guest с пустым паролем.
Источник: http://www.drupal.ru/node/60019