Создание сайта на CMS Drupal 7. Урок 1
Друзья, хотелось бы поделиться своим опытом работы с этой CMS. Сразу оговорюсь - если вам будет интересно - продолжу уроки на эту тему от “накликать сайт мышкой” до “программирования собственных модулей”. Поэтому дайте знать в комментариях и голосами за пост.
Итак, поехали. Если вкратце - Drupal - Это очень гибкая, но прожорливая цмс`ка. В админке всё не совсем очевидно, поэтому порог вхождения у неё высокий. Но когда разберетесь - сможете очень быстро поднимать сайты со сложной логикой.
Ниже я покажу как поднять сайт на локальной машине под управлением Windows(Mac OS), никаких виртуалок не нужно. Затем мы русифицируем систему и создадим несколько материалов
В качестве локального сервера я использую XAMPP
https://www.apachefriends.org/ru/index.html (X - все операционные системы, A - Apache, M - MySQL, P - PHP, P - Perl)
https://i.imgur.com/Hg8Q2kn.png
Если вы использовали Denwer - это примерно тоже самое.
В принципе подойдет и любая сборка веб-сервера, но денвер использовать не рекомендую, так как он видимо давно не поддерживается и php там версии 5.3
Скачивайте установщик под вашу ОС, устанавливаете как обычную программу. Непосредственно к CMS это не относится, поэтому не буду заострять на этом внимание.
Создание виртуального хоста
Чтобы сайт заработал - в Apache нужно создать хост(грубо говоря доменное имя, адрес сайта). Прописывается это в конфиге апача.
Сам конфиг лежит в <путь до xampp>\apache\conf\extra\httpd-vhosts.conf
В этом файле вы увидите примеры виртуальных хостов. Мой новый хост выглядит вот так:
<VirtualHost *:80>
DocumentRoot "F:/golos.local"
ServerName golos.local
<Directory "F:/golos.local">
# AllowOverride All # Deprecated
# Order Allow,Deny # Deprecated
# Allow from all # Deprecated
# --New way of doing it
Require all granted
</Directory>
</VirtualHost>
https://i.imgur.com/uS8pxvI.png
Это означает, что мой локальный сайт будет открываться в браузере по адресу golos.local , а файлы сайта лежат на диске F в папке golos.local
Имя папки может не совпадать с хостом. При одинаковых именах сайт просто удобно найти.
Теперь ОС нужно Сказать, что домен golos.local нужно искать на локальной машине. Для этого добавляем в файл hosts строчку 127.0.0.1 golos.local
Файл лежит тут C:\Windows\System32\drivers\etc\hosts
https://i.imgur.com/VPrh0z2.png
Теперь всё готово и можно запустить Apache. Если он уже запущен - то перезагрузите его или просто выключите и включите, после этого веб-сервер подхватит ваш виртуальный хост.
XAMPP прячется в трее, кликайте по ней дважды и откроется её окно. Напротив апача жмите Stop и затем Start. Если вы правильно прописали виртуальный хост - то ошибок быть не должно и апач корректно запустится.
https://i.imgur.com/QxMHpik.png
Теперь я попробую открыть свой сайт в браузере. Так как файлов сайта ещё нет - я получаю 403 ошибку. Это говорит о том, что веб сервер успешно работает и домен смотрит в папку сайта.
Если вы видите тоже самое - то можно приступать непосредственно к установке сайта.
https://i.imgur.com/pN7XvHy.png
Из чего состоит сайт и почему его надо устанавливать.
Сайт - это набор скриптов и файлов + база данных(БД). Для установки сайта необходимо скачать в директорию сайта сам движок сайта(все файлы) и подготовить базу данных, в которой установочные скрипты создадут все необходимые таблицы и в часть из них внесут данные.
Функциональность Drupal`а состоит из модулей. Каждый модуль несёт в себе какой-то функционал. Модули могут использовать функции ядра и других модулей. Они могут зависеть друг от друга и требовать библиотеки.
Оформление сайта находится в теме. Тем у сайта как правило две - админская и публичная.
На официальном сайте Drupal Все модули и темы движка бесплатны.
Подготовка движка
Сам движок можно скачать тут https://www.drupal.org/project/drupal
https://i.imgur.com/Rpjkxqp.png
Для скачивания доступны 7 и 8 версии CMS. И хотя восьмёрка вышла достаточно давно и в ней закрыли многие баги - использовать её я не рекомендую. Для неё не написаны многие модули и в целом она сыровата. Да, обратной совместимости тут нет - модули для 7 версии подойдут только к седьмому друпалу. Для 8 и 6 версий надо писать отдельные модули.
Так что скачивайте 7 версию. Я скачаю zip архив и распакую его в свою директорию указанную в виртуальном хосте.
https://i.imgur.com/h7OWoGj.png
Смотрите, чтобы в папке сайта не было вложенной папки с движком.
Теперь подготовим базу данных.
С XAMPP в комплекте идёт PHPMyAdmin - это самая распространённая web-админка для БД. Она доступна по адресу http://localhost/phpmyadmin/
https://i.imgur.com/23tWcOy.png
По-умолчанию логин root и пароль root(или вообще нет пароля). На локальной машине это нормально, но на сервере пароль должен быть сложным.
Открывайте в ней пункт Базы данных и в поле Имя базы данных вписывайте название БД, которую вы хотите создать. Я назову её mygolos. Сравнение выбирайте utf8mb4_unicode_ci - это кодировка БД.
Почему я выбрал utf8mb4_unicode_ci, а не utf8_unicode_ci. Если при добавлении информации в БД вы попытаетесь добавить туда смайлики(с iOS/Android) - то база с кодировкой utf8_unicode_ci выдаст ошибку. utf8mb4_unicode_ci корректно прожуёт такие символы.
https://i.imgur.com/jteTOb5.png
После создания БД она у вас сразу откроется. Теперь вам нужно создать пользователя для работы с этой базой.
Заходите в “Привилегии” и жмите “Добавить учетную запись пользователя”
https://i.imgur.com/mgtdMFA.png
Имя пользователя пишем golos_user (или любое другое)
Имя хоста пишем localhost
Пароль golosPass (на локалке можно простой пароль)
Глобальные привилегии - жмите “Отметить все”.
Внизу кнопка “Вперёд”
https://i.imgur.com/JnohFHx.png
Всё, пользователь готов.
Открываем в браузере наш виртуальный хост и друпал перекидывает нас на установщик.
https://i.imgur.com/TcXK3ys.png
Установку выбирайте стандартную. Язык тоже оставляем английский, перевод сделаем после установки.
Указывайте данные для доступа к БД.
Префикс необязателен, но он будет очень полезен в том случае, если у вас на сервере будет несколько друпал сайтов и один из них начнёт давать нагрузку на БД. Тогда по запросам вы легко отследите проблемный сайт.
Я укажу префикс gol_
https://i.imgur.com/6RGaoLd.png
Жмите далее. Начнётся установка.
https://i.imgur.com/acPNP73.png
Задавайте имя суперадминистратора(в друпале это пользователь под номером 1) и пароль.
Локализация
Руссифицируется друпал очень легко.
Открывайте раздел Modules и ищите модуль Locale. Отмечайте его и жмите Save.
https://i.imgur.com/l3HcNOV.png
После этого жмите пункт Configuration в меню и ниже ищите Languages
https://i.imgur.com/u1FB94H.png
Тут жмите Add language и выбирайте свой язык.
https://i.imgur.com/TDEISdB.png
Отметьте его как язык по-умолчанию.
https://i.imgur.com/II7wQ8Y.png
Теперь, чтобы поддерживать локализацию в актуальном состоянии скачайте модуль Localization update.
Данный модуль есть только для 7 версии. Если какой-то модуль есть для 6,7 и 8 - то скачивайте только для 7. Я скачаю zip архив версии 7.x-2.1(актуальна на сегодняшний день)
https://i.imgur.com/N0kQoM7.png
Распакуйте архив и закиньте его в папку sites/all/modules. Именно туда, а не просто в modules, друзья мои хорошие!
https://i.imgur.com/hu9kHgB.png
Опять хочу обратить ваше внимание - никаких вложенных папок(с версией модуля в имени папки) быть не должно. Хотя, если вы сделаете там вложенную папку - друпал рекурсивно всё обойдёт и найдёт ваш модуль.
После этого модуль будет доступен в разделе модулей. Включайте его.
https://i.imgur.com/nf1ad9p.png
При первом включении будет скачан перевод для включаемого модуля, это займёт немного времени.
https://i.imgur.com/3VvYXs3.png
При включении новых модулей их локализация будет происходить автоматически.
Локализация ядра
Открываем Configuration и внизу пункт Translate interface
https://i.imgur.com/i4EV8n3.png
В открывшемся окне переключайтесь на таб Обновить (этот пунт меню создан модулем Localization update, который был локализован при включении, поэтому он уже переведён) и нажмите на Проверить вручную*.
https://i.imgur.com/Pree6TM.png
После этого модуль Localization update дёрнет сервер переводов и сообщит, что есть переводы для ядра.
Оставляете отмеченным чекбокс с вашим языком и жмёте Обновить переводы.
https://i.imgur.com/9XE34od.png
Сейчас будет происходить обновление переводов ядра и всех контрибных(включенных в состав ядра) модулей.
https://i.imgur.com/UCu0xox.png
В дальнейшем вы всегда можете открыть раздел и нажать кнопку обновления переводов - и вы получите самые свежие переводы для всех модулей и ядра.
Теперь у вас есть полностью рабочий сайт на друпале на вашем языке. Нажмите F5 и главное меню “переведётся”.
Теперь можете нажать пункт на тулбаре Добавить материал и создать материал либо типа Article, либо Basic page. Подробнее о типах материалов будет в следующем уроке.
https://i.imgur.com/zrXHrFU.png
После сохранения материала он сразу же будет доступен.
https://i.imgur.com/111JuU8.png
На первый раз всё. Традиционно большое количество изображений и минимум пока ещё необязательных подробностей.
Итог
Если у вас получилось всё это повторить - то вы готовы к следующему уроку. А пока можете покопаться в админке, посмотреть что там к чему.