Drupal глазами разработчика

[РЕШЕНО] настройка Nginx на Digital Ocean под Drupal

Настраиваю сервер Nginx для сайта c Domain Access на Диджитал Оушене.
Есть ли какие-нибудь особенности настройки его под Друпал для максимальной пользы?
----------------------------------------------------------------------------------------------------------------------
Настроил, может кому пригодится, использовал:
каплю — Debian 7 64 php 5.4 NGINX
1. Перенос:
# использовал SCP:
https://www.digitalocean.com/community/articles/how-to-migrate-a-mysql-d...
Но можно и проще (?):
https://www.digitalocean.com/community/articles/how-to-use-sshfs-to-moun...
Вроде неплохая подборка видео по переносу:
http://www.youtube.com/playlist?list=PL91978F0CB6BC302B
2. Установка сервера:
https://www.digitalocean.com/community/articles/how-to-install-drupal-wi...
Написано под Ubuntu 13.04, я ставил в Debian 7, всё норм.
# Сначала ставим всё необходимое:
sudo apt-get update
 
sudo apt-get install mysql-server php5-<a href="http://www.php.net/mysql"   rel="nofollow" ><span style="color: #000066;">mysql</span></a>
 
sudo apt-get install nginx

# Запускаем сервер:
sudo service nginx start

# Устанавливаем PHP:
sudo apt-get install php5-fpm

# Настраиваем PHP:
открываем php.ini
sudo nano <span style="color: #66cc66;">/</span>etc<span style="color: #66cc66;">/</span>php5<span style="color: #66cc66;">/</span>fpm<span style="color: #66cc66;">/</span>php.ini

# Меняем на 0 (для безопасности):
cgi.fix_pathinfo=0

# Далее редактируем конфигурацию php5-fpm:
sudo nano <span style="color: #66cc66;">/</span>etc<span style="color: #66cc66;">/</span>php5<span style="color: #66cc66;">/</span>fpm<span style="color: #66cc66;">/</span>pool.d<span style="color: #66cc66;">/</span>www.conf

# В нём находим строку listen = 127.0.0.1:9000, и меняем 27.0.0.1:9000 на /var/run/php5-fpm.sock:
listen = <span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">var</span><span style="color: #66cc66;">/</span>run<span style="color: #66cc66;">/</span>php5-fpm.sock

# Рестарт php5-fpm:
sudo service php5-fpm restart

# Загружаем друпал:
wget http:<span style="color: #808080; font-style: italic;">//ftp.drupal.org/files/projects/drupal-7.25.tar.gz</span>

7.25 — меняем на актуальную версию.
(я делал драшем)
# Распаковываем:
tar xzvf drupal-7.25.tar.gz

7.25 — меняем на актуальную версию.
## Создаем БД и юзера:
# Заходим:
mysql <span style="color: #66cc66;">-</span>u root <span style="color: #66cc66;">-</span>p

# Создаем БД:
CREATE DATABASE drupal;

вместо drupal — можно любое название
# создаем юзера:
CREATE USER drupaluser<span style="color: #66cc66;">@</span>localhost;

# Устанавливаем пароль нового юзера password
SET PASSWORD <span style="color: #b1b100;">FOR</span> drupaluser<span style="color: #66cc66;">@</span>localhost= PASSWORD<span style="color: #66cc66;">(</span><span style="color: #ff0000;">"password"</span><span style="color: #66cc66;">)</span>;

# Даем юзеру привилегии:
GRANT ALL PRIVILEGES ON drupal.<span style="color: #66cc66;">*</span> TO drupaluser<span style="color: #66cc66;">@</span>localhost IDENTIFIED BY <span style="color: #ff0000;">'password'</span>;

# Обновляем MySQL:
<a href="http://www.php.net/flush"   rel="nofollow" ><span style="color: #000066;">FLUSH</span></a> PRIVILEGES;

# Выходим из MySQL:
<a href="http://www.php.net/exit"   rel="nofollow" ><span style="color: #000066;">exit</span></a>

# Копируем файлы:
Директория сервера в Ubuntu 13.04 находится в /usr/share/nginx/html/.
(У меня в Debian 7 в /usr/share/nginx/www/)
# Создаем директорию drupal:
sudo <a href="http://www.php.net/mkdir"   rel="nofollow" ><span style="color: #000066;">mkdir</span></a> <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>html<span style="color: #66cc66;">/</span>drupal

# Копируем файлы друпала из своей домашней директории:
cd ~
sudo mv drupal-<span style="color: #cc66cc;">7.25</span><span style="color: #808080; font-style: italic;">/* /usr/share/nginx/html/drupal/</span>

## Настройка Друпала:
# Копируем default.settings.php и переименовываем в settings.php
sudo cp <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>html<span style="color: #66cc66;">/</span>drupal<span style="color: #66cc66;">/</span>sites<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">default</span><span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">default</span>.settings.php <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>html<span style="color: #66cc66;">/</span>drupal<span style="color: #66cc66;">/</span>sites<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">default</span><span style="color: #66cc66;">/</span>settings.php

# Даем права на запись:
sudo <a href="http://www.php.net/chmod"   rel="nofollow" ><span style="color: #000066;">chmod</span></a> a+w <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>html<span style="color: #66cc66;">/</span>drupal<span style="color: #66cc66;">/</span>sites<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">default</span><span style="color: #66cc66;">/</span>settings.php

# Меняем права для директории:
sudo <a href="http://www.php.net/chmod"   rel="nofollow" ><span style="color: #000066;">chmod</span></a> a+w <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>html<span style="color: #66cc66;">/</span>drupal<span style="color: #66cc66;">/</span>sites<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">default</span>

# Устанавливаем php модуль:
sudo apt-get install php5-gd

# Рестартим
sudo service php5-fpm restart

## Настраиваем виртуальные хосты:
# Копируем дефолтный конфиг и переименовываем в drupal (конфиг для нашего сайта):
sudo cp <span style="color: #66cc66;">/</span>etc<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>sites-available<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">default</span> <span style="color: #66cc66;">/</span>etc<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>sites-available<span style="color: #66cc66;">/</span>drupal

# Редактируем наш конфиг:
sudo nano <span style="color: #66cc66;">/</span>etc<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>sites-available<span style="color: #66cc66;">/</span>drupal

Как то так:
server <span style="color: #66cc66;">{</span>
        listen   <span style="color: #cc66cc;">80</span>;
        root <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>html<span style="color: #66cc66;">/</span>drupal;
        index index.php index.html index.htm;
        server_name 162.243.9.129;
        location <span style="color: #66cc66;">/</span> <span style="color: #66cc66;">{</span>
                try_files <span style="color: #0000ff;">$uri</span> <span style="color: #0000ff;">$uri</span><span style="color: #66cc66;">/</span> <span style="color: #66cc66;">/</span>index.php?q=<span style="color: #0000ff;">$uri</span><span style="color: #66cc66;">&</span><span style="color: #0000ff;">$args</span>;
        <span style="color: #66cc66;">}</span>
        error_page <span style="color: #cc66cc;">404</span> <span style="color: #66cc66;">/</span>404.html;
        error_page <span style="color: #cc66cc;">500</span> <span style="color: #cc66cc;">502</span> <span style="color: #cc66cc;">503</span> <span style="color: #cc66cc;">504</span> <span style="color: #66cc66;">/</span>50x.html;
        location = <span style="color: #66cc66;">/</span>50x.html <span style="color: #66cc66;">{</span>
              root <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>html<span style="color: #66cc66;">/</span>drupal;
        <span style="color: #66cc66;">}</span>
        <span style="color: #808080; font-style: italic;"># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9$</span>
        location ~ \.php$ <span style="color: #66cc66;">{</span>
                <span style="color: #808080; font-style: italic;">#fastcgi_pass 127.0.0.1:9000;</span>
                <span style="color: #808080; font-style: italic;"># With php5-fpm:</span>
                fastcgi_pass unix:<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">var</span><span style="color: #66cc66;">/</span>run<span style="color: #66cc66;">/</span>php5-fpm.sock;
                fastcgi_index index.php;
                <span style="color: #b1b100;">include</span> fastcgi_params;
 
                 <span style="color: #66cc66;">}</span>

Т.е.:
— поменяли root на /usr/share/nginx/html/drupal
— поменяли server_name из localhost на доменное имя твоего сайта или его IP
— поменяли «try_files $uri $uri/ /index.html;» на «try_files $uri $uri/ /index.php?q=$uri&$args;»
!!! Есть более интересный вариант, если установить
sudo apt-get install nginx-doc

то в директории /usr/share/doc/nginx-doc/examples/, уже есть готовый конфиг, заточенный под друпал:
cd <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>doc<span style="color: #66cc66;">/</span>nginx-doc<span style="color: #66cc66;">/</span>examples<span style="color: #66cc66;">/</span> 
gunzip drupal.gz
# Активируем конфигурацию:
sudo ln -s <span style="color: #66cc66;">/</span>etc<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>sites-available<span style="color: #66cc66;">/</span>drupal <span style="color: #66cc66;">/</span>etc<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>sites-enabled<span style="color: #66cc66;">/</span>drupal

# Удаляем дефолтную:
sudo rm <span style="color: #66cc66;">/</span>etc<span style="color: #66cc66;">/</span>nginx<span style="color: #66cc66;">/</span>sites-enabled<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">default</span>

# Перегружаем сервер:
sudo service nginx restart

# Открываем IP сайта (или домен)/drupal/setup.php и устанавливаем друпал.
-------------------------------------------------------------------------------------------
А вот здесь уже готовый конфиг, но немного сложноватый:
https://github.com/perusio/drupal-with-nginx/blob/D7/README.md
с этим (от perusio) конфигом используем сборку сервера из http://debian.perusio.net/unstable/
3. Настройка мультисайтинга:
https://www.digitalocean.com/community/articles/how-to-enable-multiple-s...
4. настройка DNS:
я просто добавил домены в ДНС на оушене и прописал у регистратора — ns1.digitalocean.com ns2.digitalocean.com ns3.digitalocean.com.
5. Кэширование:
http://www.echoditto.com/blog/more-drop-bucket-drupal-8-nginx-and-microc...
# Микрокэширование
в файле конфига твоего сайта на nginx добавляешь
location ~ \.php$ <span style="color: #66cc66;">{</span>
set <span style="color: #0000ff;">$no_cache</span> <span style="color: #ff0000;">""</span>;
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$request_method</span> <span style="color: #66cc66;">!</span>~ ^<span style="color: #66cc66;">(</span>GET|HEAD<span style="color: #66cc66;">)</span>$<span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span>
set <span style="color: #0000ff;">$no_cache</span> <span style="color: #ff0000;">"1"</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$no_cache</span> = <span style="color: #ff0000;">"1"</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span>
add_header Set-Cookie <span style="color: #ff0000;">"_mcnc=1; Max-Age=2; Path=/"</span>;
add_header X-Microcachable <span style="color: #ff0000;">"0"</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$http_cookie</span> ~ SESS<span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span> <span style="color: #808080; font-style: italic;">#checks an auth'd user</span>
set <span style="color: #0000ff;">$no_cache</span> <span style="color: #ff0000;">"1"</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #808080; font-style: italic;">#... lots of fastcgi stuff to do the caching</span>
<span style="color: #66cc66;">}</span>

http://valic.me/article/how-configure-nginx-php-fpm-mysql-memcached-apc-...
http://www.accella.net/drupal-7-memcached-apc-nginx-php5-fpm-squeeze-opt...
# Сжатие gzip:
http://stackoverflow.com/questions/15999606/enable-gzip-compression-with...
я просто вот так раскомментировал в конфиге nginx /etc/nginx/nginx.conf:
<span style="color: #808080; font-style: italic;">##</span>
<span style="color: #808080; font-style: italic;"># Gzip Settings</span>
<span style="color: #808080; font-style: italic;">##</span>
gzip on;
gzip_disable <span style="color: #ff0000;">"msie6"</span>;
gzip_vary on;
gzip_proxied any;
gzip_comp_level <span style="color: #cc66cc;">6</span>;
gzip_buffers <span style="color: #cc66cc;">16</span> 8k;
gzip_http_version <span style="color: #cc66cc;">1.1</span>;
gzip_types text<span style="color: #66cc66;">/</span>plain text<span style="color: #66cc66;">/</span>css application<span style="color: #66cc66;">/</span>json application<span style="color: #66cc66;">/</span>x-javascript text<span style="color: #66cc66;">/</span>xml application<span style="color: #66cc66;">/</span>xml application<span style="color: #66cc66;">/</span>xml+rss text<span style="color: #66cc66;">/</span>javascript;

6. Защита:
— связка nginx, logwatch, fail2ban и ufw http://habrahabr.ru/post/153589/
пока только fail2ban поставил, якобы из коробки работает, посмотрим:
http://putty.org.ru/articles/fail2ban-ssh.html
Мэмкеш настроить пока не получилось (php 5.4).
Панель не ставил — но хорошие отзывы по веста.
7. Для внеклассного чтения подробные/детальные руководства/гайды:
Очень неплохое руководства в друпал-nginx группе: https://groups.drupal.org/node/388488
С картинками + защита от атак +SSL: http://dashohoxha.blogspot.ru/2012/10/using-nginx-as-web-server-for-drup...
PS: Кому что непонятно пишите в коментах, это позволит мне лучше расписать тему.
________________________________________________________________________________________________________________
<<<ПРОДОЛЖЕНИЕ ЗДЕСЬ>>>, т.к. сюда уже не вмещается.
Drupal глазами разработчика

Открыта подача докладов на DrupalCamp Donetsk 2014

Команда DrupalCamp Donetsk спешит сообщить вам, что открыта подача докладов на конференцию! Не упустите свой шанс поделиться своими знаниями и идеями с Друпал сообществом. Мы отбираем сессии в следующих категориях: Business, Community, Design, Development, Drupal 8, Front-end and Theming, Site Building.
Не стоит забывать, что билеты на конференцию для спикеров бесплатны!
У вас есть возможность предложить свой доклад до 10 Марта! Спешите! Отобранные доклады будут анонсированы 16 Марта.
Предложить доклад
Drupal глазами разработчика

Drupal@Tomsk первое Drupal Cafe в Томске

Друзья, предлагается активизировать томское друпал-сообщество!
Познакомиться, встретиться, провести доклады.
Инициатива зародилась в чате новосибирского друпал-сообщества.
Мы тут все мечтаем о проведении кемпа в Сибири, и все искали как же показать Сибирь чтоб людям было интересно.
И так появилась мысль что Томск самый сибирский город. Так сказать с душой.
и почему бы не провести кемп в Томске.
К томуже у вас уже есть массовые площадки инновус http://tomskforum.ru/
Готовы выехать к вам и помочь с организацией первого кафе.
Думаю Омичи тоже поддержат.
д.ру содержит информацию о ~220 участников из Томска
http://www.drupal.ru/profile/city/%D1%82%D0%BE%D0%BC%D1%81%D0%BA
Мы тут создали небольшой организационный чатик.
Дата пока не назначена, ориентировочно думаю конец марта, начала апреля.
Присоединяйтесь кому эта тема интересна.
Drupal@Tomsk
skype:?chat&blob=jkD7DpBJtXSAuV-CadKcSJ9QTHHMFzpyEIzyp8uJur4Qtm0XRBolxdHb_OEL3UzNuGZ5cCRGciCCjBix0JECp3qIgg1s
Drupal глазами разработчика

Восьмое DrupalCafe в Новосибирске. 1 марта 2014 г.

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

Планируются следующие темы докладов:

1. Ильин Евгений «Поиск на Drupal + Apache Solr для содержимого на русском языке — с нуля и до конечного результата»
2. Санданов Чингис «Drupal Commerce, либо Проекты на Drupal с точки зрения РП»
3. Прищепа Павел «Хостинг друпальных сайтов»
4. Валуев Вадим: «Rich text в Друпале»
5. Исай Руслан «Концепция страничка-ориентированной разработки на Drupal»
6. Калинин Антон «Compass CSS Framework»
Ждем Вас, ваших друзей, коллег и знакомых.
Участникам сообщества DrupalSib просьба зарегистрироваться заранее.
Если ты студент и никогда у нас не был — заполни анкету.
DrupalCafe пройдет 1 марта в 12:00 в здании НТЭ и ВТ по адресу:
ул. Красный проспект, 177, актовый зал.
+7 (913) 467 88 33
kiseleva.t@i20.biz
Drupal глазами разработчика

Drupalife Store - сборка интернет-магазина на Drupal Commerce


Всем привет! Рад анонсировать собственную сборку (дистрибутив) интернет-магазина на Drupal Commerce.
Целью данно сборки является простота и скорость установки магазина, сохранив при этом гибкость и не нагружать бесполезными модулями.
Из коробки решение имеет собственную тему, полностью настроенный магазин, полностью проработанное SEO, адаптивный дизайн и множество других приятных вкусностей.
Более подробно можно почитать в моём блоге: http://niklan.net/blog/57
Демо и загрузка: http://drupalife.com/lab/store
Песочница: http://simplytest.me/project/drupalife_store
Проект на Drupal.org: https://drupal.org/project/drupalife_store
Сборка совершенно бесплатная! Принимаются предложения, пожелания и замечания. В принципе также если у кого есть идеи других сборок, также буду рад выслушать идеи.
Drupal глазами разработчика

DrupalCamp Donetsk 2014, 25-27 Апреля


Дата: 25-27 Апреля 2014
Время: 10:00
Место проведения: Донбасс Палас, улица Артема, 80
Цена участия: 200-250 грн
Контакты для обратной связи: support@drupal.dn.ua
Сайт: http://camp2014.drupal.dn.ua
ДрупалКемп Донецк — это некоммерческое мероприятие, призванное объединить людей, которым интересна система управления контентом Друпал. Данное мероприятие будет полезно как начинающим разработчикам, которые не знакомы с Друпал, так и профессионалам, которые не первый год работают с данной системой. Конференция организована волонтерами из Донецкого Друпал сообщества. Цель мероприятия — объединение людей вокруг Друпал, его улучшение и обмен знаниями.
Программа конференции рассчитана на 3 дня в течение которых у вас будет возможность послушать доклады, принять участие в BOF-сессиях, код-спринте, а так же посетить вечеринку.
1 и 2 день
Данные дни будут посвящены докладам. Конференция будет проходить в 3 потока, благодаря чему вы сможете составить собственное расписание и посетить те доклады, которые наиболее вам интересны. Так же во время конференции будут формироваться BOF сессии. В любой момент вы можете предложить тему для обсуждения и организовать свой круглый стол. В конце второго дня будет проведена вечеринка в лучших традициях DrupalCamp.
3 день
Данный день будет полностью посвящен написанию кода и документации. На код спринте у вас будет возможность внести свой вклад в развитие Drupal! Для того что бы принять участие в код спринте необходимо взять с собой ноутбук и присоединится к команде. Темы и задачи для код спринта будут самые разнообразные, поэтому принять участие может любой желающий, от новичка до эксперта. Именно благодаря таким мероприятиям Drupal стал качественным продуктом который нас объединяет!
Drupal глазами разработчика

7 июня в Санкт-Петербурге Drupal White Nights 2014

Drupal White Nights 2014
Город, который пронизан своей особой культурой. Город, в котором каждый камень способен рассказать свою уникальную историю. Город, чья летняя ночь светла как день. Все это — наш любимый Санкт-Петербург. И этим летом наш гостеприимный город встречает друпалеров из разных городов и стран.
7 июня большой праздник для нас, в Питере пройдет долгожданный Кемп — Drupal White Nights 2014. Мы шли к этому событию два года, встречаясь на семинарах, спринтах, тренингах и в неформальной обстановке. И вот, время пришло для чего-то большего.
От лица организаторов и всего нашего питерского сообщества я приглашаю вас присоединиться к этому замечательному событию.
Мы готовы принять как минимум 150 человек, нам это с легкостью позволят комфортные залы конгресс-центра ПетроКонгресс. За один день в два потока пройдут порядка 15 докладов о разработке на Drupal, администрировании, управлении проектами, бизнесе и многом другом. Несколько докладов уже заявлено, и мы продолжаем принимать заявки. Если у вас есть интересный опыт, и вы готовы им поделиться, то милости просим.
После завершения официальной части Кемпа, нас ждет вечеринка, которая позволит пообщаться с интересными людьми вне конференц-залов и формальностей. У нас так много идей о том, где и как провести вечеринку, что мы еще не приняли окончательного решения. Но в одном мы уверены, что это будет весело!
Регистрация на конференцию открыта и идет полным ходом, так что поспешите купить билет. Тем более, в апреле действует ранняя цена.
И на сладкое, специально для сообщества мы приготовили сюрприз и учредили конкурс Счастливый билет на Drupal White Nights 2014. Победитель получит бесплатный билет на конференцию и всеобщую известность :)
Будем рады видеть и слышать вас!
--
Соорганизатор конференции Drupal White Nights 2014
Константин Комелин
Официальный канал русскоязычного drupal

Львовский Drupal Сafé #3: как это было


В последнюю пятницу января львовское Drupal-сообщество собралось на третье Drupal Café. Мы снова встретились в антикафе “CoMMuna” (финансовая поддержка, т.е. оплата аренды, была предоставлена компаниями Lemberg Solutions и EPAM). Несмотря на зимний пятничный вечер, мероприятие собрало более 20 человек. Мы увидели как и старых друзей, постоянных посетителей и активных участников наших “Drupal-посиделок”, так и новые лица. Уверены, что никто из участников не пожалел о своем присутствии на Drupal Café, поскольку доклады и дискуссии были очень интересными и познавательными!
Первым выступил Петр Кашпуренко (компания Symphony Solutions). Он рассказал о инструментах и особенностях создания адаптивной верстки. Как истинный фронт-энд девелопер, свой доклад Петр сделал з помощью CSS3 (ознакомиться с докладом вы можете здесь — dc2014cafe.symphony-solutions.eu).
Следующими выступили разработчики из компании Drucode.
В частности, Василий Гротов рассказал «как трансформировать Drupal сайт в скаковую лошадь, которая будет мчаться сквозь время и пространство». С его лаконичным, но интересным и познавательным докладом можно ознакомиться здесь.
Напоследок, с презентацией выступил коллега Василия, Денис Стоянов. Он попытался разложить “по полочкам” разнообразные фреймворки и инструменты, существующие в мире JavaScript, а также попытался заглянуть в будущее с ECMAScript 6. Кроме презентации (которую можно просмотреть здесь), Денис наглядно продемонстрировал возможности многих инструментов.
В завершении нашего Drupal Café выступил Иван Фесюк, который подвел итог событий из жизни Drupal-сообщества Украины, а также рассказал о некоторых планах развития портала drupal.ua. А Роман Паска и я анонсировали поездку нашей компании на Drupal Developer Days в Венгрии (Szeged) и предложили всем желающим посетить мероприятие присоединяться к нам. У нас есть идея организовать совместный выезд со Львова (уверены, так будет и удобнее, и выгоднее, и веселее!). Поэтому, если вы заинтересованы в поездке, обязательно обращайтесь к нам! Чтобы быть в курсе этой и других интересных Drupal-поездок, подписывайтесь на нашу рассылку.
Фотки со Львовского Drupal Сafé #3
Facebook Группа
Продолжение следует ;)
Официальный канал русскоязычного drupal

Sublime Text 2 для Drupal разработчика

Многим людям очень нравится редактор кода Sublime Text 2. Некоторые просто фанатеют от него, другие не очень хвалят. В этой статье я попробую оценить полезность данного инструмента для Drupal разработчика со своей субъективной точки зрения.
  1. Установим Sublime. Для этого перейдем на http://www.sublimetext.com/2, выберем подходящий для нас дистрибутив, скачаем и установим. Здесь вроде все стандартно

  2. Далее установим Sublime Package Control. Это менеджер пакетов для нашего редактора. Он позволяет устанавливать, удалять, обновлять необходимые пакеты. Для установки Sublime Package Control нажимаем комбинацию клавиш «ctrl+`» и вводим в появившуюся консоль следующую python строку:
    import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')
    Возможно, для Вашей OS команда будет иметь немного другой вид. Более подробно Вы можете ознакомиться с установкой Sublime Package Control на https://sublime.wbond.net/installation#st2
  3. Обновим настройки для поддержки Drupal Coding Standards (что это такое читаем здесь). Для этого идем в настройки, в секцию Settings — User и вставляем следующее (не забывая добавить запятую между этим и существующими правилами, но проверяем, что нету запятой в последней строке) :
    <span style="color: #ff0000;">"bold_folder_labels"</span>: <span style="color: #000000; font-weight: bold;">true</span>,
    <span style="color: #ff0000;">"caret_style"</span>: <span style="color: #ff0000;">"wide"</span>,
    <span style="color: #ff0000;">"default_line_ending"</span>: <span style="color: #ff0000;">"unix"</span>,
    <span style="color: #ff0000;">"draw_white_space"</span>: <span style="color: #ff0000;">"all"</span>,
    <span style="color: #ff0000;">"ensure_newline_at_eof_on_save"</span>: <span style="color: #000000; font-weight: bold;">true</span>,
    <span style="color: #ff0000;">"fade_fold_buttons"</span>: <span style="color: #000000; font-weight: bold;">false</span>,
    <span style="color: #ff0000;">"fallback_encoding"</span>: <span style="color: #ff0000;">"UTF-8"</span>,
    <span style="color: #ff0000;">"find_selected_text"</span>: <span style="color: #000000; font-weight: bold;">true</span>,
    <span style="color: #ff0000;">"font_options"</span>:
    <span style="color: #66cc66;">[</span>
      <span style="color: #ff0000;">"subpixel_antialias"</span>
    <span style="color: #66cc66;">]</span>,
    <span style="color: #ff0000;">"highlight_line"</span>: <span style="color: #000000; font-weight: bold;">true</span>,
    <span style="color: #ff0000;">"line_padding_bottom"</span>: <span style="color: #cc66cc;">1</span>,
    <span style="color: #ff0000;">"open_files_in_new_window"</span>: <span style="color: #000000; font-weight: bold;">false</span>,
    <span style="color: #ff0000;">"rulers"</span>:
    <span style="color: #66cc66;">[</span>
      <span style="color: #cc66cc;">80</span>
    <span style="color: #66cc66;">]</span>,
    <span style="color: #ff0000;">"shift_tab_unindent"</span>: <span style="color: #000000; font-weight: bold;">true</span>,
    <span style="color: #ff0000;">"tab_size"</span>: <span style="color: #cc66cc;">2</span>,
    <span style="color: #ff0000;">"translate_tabs_to_spaces"</span>: <span style="color: #000000; font-weight: bold;">true</span>,
    <span style="color: #ff0000;">"trim_automatic_white_space"</span>: <span style="color: #000000; font-weight: bold;">true</span>,
    <span style="color: #ff0000;">"trim_trailing_white_space_on_save"</span>: <span style="color: #000000; font-weight: bold;">true</span>,
    <span style="color: #ff0000;">"use_tab_stops"</span>: <span style="color: #000000; font-weight: bold;">true</span>,
    <span style="color: #ff0000;">"word_separators"</span>: <span style="color: #ff0000;">"./<span style="color: #000099; font-weight: bold;">\\</span>()<span style="color: #000099; font-weight: bold;">\"</span>'-:,.;<>~!@#%^&*|+=[]{}`~?"</span>

  4. О плагинах (пакетах) и как их устанавливать. Sublime чем-то похож на сам Drupal. Весь функционал можно наращивать с помощью расширений. Для установки плагинов нажимаем следующую комбинацию клавиш: CMD+SHIFT+P (актуально для Mac OS X, если Вы под Windows или Linux, то просто замените CMD на CTRL). В появившемся списке набираем pi и нажимаем Enter. После этого набираем название пакета (вернее его сокращенное название) и снова Enter для его установки. То есть пакеты можно ставить без мышки :)
  5. Плагины и их краткое описание
    AdvancedNewFile (сокращение: and)
    Создает новые файлы и директории. Вызывается нажатием CMD+ALT+n. Более подробно здесь
    Auto Semi-Colon (сокращение: asc)
    Этот плагин автоматически перемещает ";" за границу последних скобок, если нажали ";" внутри одной или более пар скобок. Более подробно здесь
    Bracket Highlighter (сокращение: bhi)
    Делает подсветку парных скобок [], (), {}, "", '',, а также многих других. Более подробно здесь
    DocBlockr (сокращение: db)
    Упрощает написание PHPDoc. Для вызова набираете /** и жмете <>. Более подробно здесь
    Drupal Project Autocomplete (сокращение: dpa)
    Этот плагин делает автокомплит для всех Drupal функций проекта. Более подробно здесь
    Goto Documentation (сокращение: gd)
    Этот плагин дает возможность переходить к документации относящейся к текущему слову. Он поддерживает не только php, но и много других языков. Для вызова можете воспользоваться комбинацией cmd-shift-p, после чего выберите «Goto Documentation». Конечно же проще настроить комбинацию клавиш для вызова данного плагина. Для этого добавляем в «Key Bindings — User» (куда мы попадаем через меню preferences) следующую строчку:
    <span style="color: #66cc66;">{</span> <span style="color: #ff0000;">"keys"</span>: <span style="color: #66cc66;">[</span><span style="color: #ff0000;">"super+shift+h"</span><span style="color: #66cc66;">]</span>, <span style="color: #ff0000;">"command"</span>: <span style="color: #ff0000;">"goto_documentation"</span> <span style="color: #66cc66;">}</span>

    Более подробно здесь
    Goto Drupal API (сокращение: gda)
    Аналогично предыдущему, этот плагин дает возможность переходить к документации, только в данном случае — это документация по Drupal API. Как и в случае с предыдущим плагином, намного проще настроить комбинацию клавиш для вызова данного плагина. Для этого добавляем в «Key Bindings — User» (куда мы попадаем через меню preferences) следующую строчку:
    <span style="color: #66cc66;">{</span> <span style="color: #ff0000;">"keys"</span>: <span style="color: #66cc66;">[</span><span style="color: #ff0000;">"super+shift+a"</span><span style="color: #66cc66;">]</span>, <span style="color: #ff0000;">"command"</span>: <span style="color: #ff0000;">"goto_drupalapi"</span> <span style="color: #66cc66;">}</span>

    Более подробно здесь
    Git (сокращение: git)
    Интеграция с git. Более подробно здесь
    MacTerminal (сокращение: mt)
    Работа с терминалом. По ctrl+command+t открывает терминал в папке, где находиться текущий редактируемый файл. здесь
    SASS (сокращение: sass)
    Поддержка SASS в Sublime. здесь
    SideBarEnhancements (сокращение: sbe)
    Улучшает возможности сайдбара в Sublime. здесь
    Sublimerge (сокращение: sumge)
    Плагин позволяет сравнивать и делать merge файлов прямо в редакторе Sublime Text 2. здесь
    SublimeLinter (сокращение: suli)
    Подсветка потенциально возможных ошибок… здесь

Часто используемые горячие клавиши

Выделение
⌘ + D – Выделить слово
⌘ + L – Выделить строку
⌘ + Shift + A – Выделить содержимое тага
Control + Shift + M – Выделить контент между скобками
Просмотр
⌘ + K, ⌘ + B – Показать/скрыть сайдбар
Shift + ⌘ + F — Полноэкранный режим
Control + Shift + ⌘ + F — Дистракционный режим
Редактирование
⌘ + Shift + D — Клонировать строку
⌘ + Shift + K — Удалить строку
⌘ + ] — Увеличить отступ, ⌘ + [ — Уменьшить отступ
⌘ + J – Соединить строки
⌘ + Option + [ — Свернуть блок
⌘ + Option + ] — Развернуть блок
⌘ + K, ⌘ + T — Свернуть атрибуты тагов
⌘ + K, ⌘ + J — Развернуть атрибуты тагов
Утилиты
Shift + ⌘ + P – Sublime коммандная панель
Control + ` – Консоль
⌘ + Option + P — Показать тип исходников
Навигация
⌘ + P – Показать быстрое переключение между файлами
⌘ + P, # – Перейти к слову
⌘ + R – Перейти к функции или классу
Control + G = ⌘ + P,: — Перейти к строке
⌘ + F2 – Добавить закладку. Для перехода между закладками используется F2
⌘ + I — Инкрементальный поиск
⌘ + G — Следующий результат поиска
⌘ + Shift + G — Предыдущий результат поиска
Настройки
⌘ +, – Settings — User
Выделение столбцов (OS X)
Левая кнопка мыши + Option
Или: Средняя кнопка мыши
Добавить к выделению: ⌘
Убрать из выделения: ⌘ + Shift
Используя клавиатуру
Ctrl + Shift + Up
Ctrl + Shift + Down
Оригинал статьи на stillfinder.net
Attached poll «Вам понравилась статья?».
Register or login to poll
Results:
Да: 5 голосов
Нет: 1 голос
Официальный канал русскоязычного drupal

[Краснодар] DrupalCafe #1/2014 - SEO и продвижение сайтов. 11 января 2014 в 15:00. Песочница

Всем привет.
Мы проведём очередное DrupalCafe в Краснодаре.
Время и место встречи — 11 января, суббота, 15:00, антикафе "Песочница".
Основная тематика встречи — SEO и продвижение сайтов.
Расскажет, покажет и ответит на все вопросы — Петр Селфин (pro-self.ru)
По всем вопросам можно:
звонить — 9183163495
писать — victor@rxb.name
Найти на таймпаде — http://semantics.timepad.ru/event/99093/
*
**
*
*
*
*
*
*
*
*
*
*
Антикафе Песочница, Краснодар, ул. Кирова, 59, Краснодар
Как добраться:
Энка: 67, 106а, 15, 5, 39. Выходить на остановке Гоголя по ул. Октябрьской
ФМР: 6, 9, 65, 67, 106а, 9, 10, 39. Выходить на остановке Гоголя по ул. Октябрьской
ЧМР: 28, 65. Выходить на остановке Гоголя по ул.Октябрьской
КМР: с 1 пересадкой. До Галереи на 17, от Галереи — 3, 26, 2, 9, 15, 31, 5, 9, 15, 45 Выходить на остановке Гоголя по ул. Октябрьской
ГМР:
ЦМР: 3, 2, 9, 15, 31, 5, 15 Выходить на остановке Гоголя по ул.Октябрьской
ЮМР: 95 Выходить на остановке Гоголя по ул. Октябрьской, 8, 49 Выходить на остановке Гоголя по ул. Кубанонабережная