Официальный канал русскоязычного drupal

DrupalCamp Donetsk 2014 уже скоро!

DrupalCamp Donetsk 2014
Мы рады сообщить, что в Апреле этого года в Донецке состоится DrupalCamp 2014!
Это будет еще один захватывающий DrupalCamp от Донецкого Drupal сообщества, на котором будут представлены разнообразные доклады, направленные на дизайнеров, разработчиков, владельцев бизнеса, от начинающих до Drupal экспертов.
Регистрация начнется в ближайшее время! Для получения подробной информации подпишитесь на рассылку новостей или наш Твиттер.
У вас есть большой опыт и вы хотели бы поделиться им с сообществом Drupal, вы или ваша компания хотела бы стать спонсором? Регистрация докладов и контактная форма будут открыты в ближайшее время!
Официальный канал русскоязычного 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

[Краснодар] DrupalCafe #3/2014 - Ошибки при заказе и разработке сайта. 8 февраля 2014 в 15:00. Песочница

Всем привет.
Мы проведём очередное DrupalCafe в Краснодаре.
Время и место встречи — 8 февраля, суббота, 15:00, антикафе "Песочница".
Основная тематика встречи — какие ошибки совершают клиент, менеджер и разработчик при создании сайта или как сделать правильный сайт.
Геворг Мкртчян расскажет:
  • Чего хочет клиент и что ему нужно на самом деле?
  • Как нельзя составлять ТЗ?
  • Почему дизайнер не понимает менеджера и клиента, а программист в панике?
  • Почему программисту надо делать правильный сайт, в том случае если он может сделать с «костылями» и рабочий?
  • У вас дорого, мне то же самое предлагают на 70% дешевле или как правильно «торговаться» с разработчиками…
По всем вопросам можно:
звонить — 9183163495
писать — victor@rxb.name
*
Антикафе Песочница, Краснодар, ул. Кирова, 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 Выходить на остановке Гоголя по ул. Кубанонабережная
Официальный канал русскоязычного drupal

Слетает дизайн главной страницы

Добрый день!
Помогите пожалуйста разобраться:
При обновление главной страницы сайта периодически слетает дизайн, при следующем обновление страницы встает опять обратно...
Данное происходит только на главной странице сайта...
Скрины во вложение!
http://u10485.bourne.vps-private.net/
Может кто нибудь знает из за чего такое может быть?
Откуда копать?


ВложениеРазмер 11.png255.46 КБ 22.png684.73 КБ
Официальный канал русскоязычного drupal

Нагадили на сайте, как убрать левые страницы ?

Всем привет! Давненько на сайт не заходил, а тут зашел в вебмастер яндекс а там в исключенных роботом страницах HTTP-статус: Ресурс не найден (404) 2653 страницы!!! Все адреса страниц такого вида /how/255-fz-statya-14.html, причем how на сайте никакого нет где бы они могли быть. FTP весь перерыл нету воде бы нигде. У хостеров дыра где-то htaccess портили несколько раз. Как удалить эти страницы и где их найти?
Официальный канал русскоязычного drupal

Переводы терминов на мультиязычном сайте

Добрый день.
Не могу добиться, чтобы на сайте включились переводы терминов. Нужные модули установлены, термины переведены через Taxonomy Manager. Но, на какой бы язык сайта не был выбран, все термины на английском.
Куда копать?
Официальный канал русскоязычного drupal

Отсутствует блок с формой поиска

Очень странная телега. Модуль Search включен, права выставлены, но в блоках search отсутствует. Тема собственная, если переключится на стандартную, то блок появляется. Как такое может быть, есть мысли?
Официальный канал русскоязычного drupal

OpenLayers Locator + местоположение пользователя

При установке OpenLayers Locator появляется стандартный views, в котором есть фильтр. Благодаря нему можно выбрать точки (посты), которые находятся на заданном расстоянии от начальной точки. Т.е. нужно в фильтре вводить расстояние и адрес (или координаты и тд). Кто знает, как можно сделать так, чтобы пользователю не приходилось вводить адрес и прочее, а вместо этого начальной точкой считалось его местоположение? Есть какие-то модули, которые могут такое сделать? Конечно, можно с помощью Js заполнять поле адреса, но это будет как-то некрасиво :)
Официальный канал русскоязычного drupal

Перевод имени View в меню

Добрый вечер!
Есть вьюха, которая выводится в меню. Называется в меню News. Хочу чтобы, когда переключаюсь на русский, она называлась Новости, ну и т.д. по языкам. Как это можно сделать?
Официальный канал русскоязычного drupal

Вакансия: Sr. Drupal Developer, удаленка

Требуется ведущий разработчик Drupal.
От кандидата ожидается:
— Отличное знание PHP.
— Обширный опыт работы с Drupal, в том числе опыт разработки модулей, знание «внутренностей» на уровне кода.
— Знание best practices при разработке для Drupal.
— Разговорный английский будет большим плюсом.
Проект — расширение функционала и большой рефакторинг существующего eCommerce сайта.
Удаленная работа на полный рабочий день, оплата отпуска, праздников.
На этой позиции вы будете работать в нашей распределенной команде.
Вы будете использовать Skype, JIRA для коммуникаций с заказчиком и коллегами.
Оплата по итогам собеседования, $2500-3000 в месяц.
Если эта вакансия вас заинтересовала, пришлите свое резюме (на английском) на адрес: nitka-NTK0548@applications.recruiterbox.com
О компании: Nitka Inc. аутсорсинговая компания из США, центральный офис в городе New York.
Сейчас у нас работают около 200 технических специалистов разного профиля — .NET, Java, PHP, BI итд.
Мы работаем с клиентами из США и Западной Европы: финансовые компании, маркетинговые агенства, стартапы.