Встановлення ядра Drupal як сабмодуля

29.11.2013
Drupal Core Installation As A Submodule
Автор:

Отож, з чого почнемо? Насамперед, необхідно забезпечити (якщо його нема) віддалений доступ до віддаленого ж сервера (напр. по ssh). На цьому сервері треба ініціалізувати два git репозиторія - один для ядра, інший - для самого сайту, на якому ядро Drupal буде встановлюватись. Для прикладу, створимо на сервері користувача, що має ім’я "git". Тоді ініціалізація репозиторїв виглядатиме наступним чином:

cd /home/git/
mkdir bare
cd bare
mkdir core
mkdir project
cd core
git init --bare
cd /home/git/bare/project
git init --bare

Наступним кроком буде створення майстер гілки в репозиторії ядра. Зробити це можна з будь-якої тестової площадки: треба лише створити директорію, в якій будуть знаходитьсь файли ядра (в нашому випадку це /var/www/site_core), підтягнути git репозиторій ядра, що його було створено на попередньому етапі (припустимо, доступ до віддаленого сервера здійснюється шляхом ssh://git@192.168.0.1), а далі виконати перший комміт для створення майстер гілки в репозиторії. Виглядатиме все це так:

cd /var/www/
mkdir site_core
cd site_core
git clone ssh://git@192.168.0.1/home/git/bare/core ./
touch Readme.txt
echo 'Core repo' > Readme.txt
git add .
git commit -m "Initial commit"
git push origin master

Таким чином у нас є повністю ініціалізований та готовий до роботи git репозиторій ядра Drupal, хоча поки що в ньому нема самих файлів ядра. Отож, додаємо їх (зауважте, знаходимось ми все ще у /var/www/site_core). Крім того, нам треба видалитись та покласти під .gitignore ті папки, які можуть зазнати змін в процесі роботи над сайтом. Якщо ж цього не зробити, то при запускові комманди оновлення сабмодулів (git submodule update) вміст таких папок буде  приведений до первісного стану, а отже, додані модулі будуть видалені. Це папки "modules" та "sites":

git checkout -b 8.x
wget http://ftp.drupal.org/files/projects/drupal-8.x-dev.tar.gz
tar -xzvf drupal-8.x-dev.tar.gz -C /tmp && mv /tmp/drupal-8.x-dev/* /var/www/site_core
rm -rf sites/ modules/
git add .
git commit -m "Add core files"
git push origin 8.x
touch .gitignore
echo modules > .gitignore
echo sites >> .gitignore
git add .gitignore
git commit -m "Disalow modules and sites folders"
git push

Якщо можливі зміни в інших файлах, чи котрісь із файлів можуть бути додані в корінь в процесі роботи над сайтом (напр., .htaccess файл або ж різного роду html файлы метрик), їх також слід додати в .gitignore.

На даному етапі ми маємо повністю готовий до використання репозиторій ядра, яке можна встанавлювати як сабмодуль. Відповідно, веб розробник можемо приступати безпосередньо до встановлення нового сайту. Для цього створимо на сервері чи локально (задля тестового режиму) каталог (наприклад, new_site), в якому будуть зберігатись всі файли сайту. Вміст каталогу необхідно підтягнути із git репозиторія сайту, який ми створювали на першому этапі, також нам знадобиться виконати перший коміт для ініціалізації майстер гілки репозиторію:

cd /var/www/
mkdir new_site
cd new_site
git clone ssh://git@192.168.0.1/home/git/bare/project ./
touch Readme.txt
echo 'Core project' > Readme.txt
git add .
git commit -m "Initial commit"
git push origin master

Ось ми дістались до головного моменту - встановлення Drupal'а як сабмодуля. Усі наступні дії належить виконувати з домашньої директорії сайту.

Важливо: оскільки ядро теперь буде сабмодулем, то воно не може знаходитись безпосередньо в домашній директорії сайту, а відповідно, повинне бути встановлене в певній директорії (напр. htdocs). Все це потрібне для того, аби,  директорія із сабмодулем не містила жодних сторонніх файлів. Сам процес встановлення виглядає так:

git checkout -b dev
git submodule add ssh://git@192.168.0.1/home/git/bare/core htdocs
cd htdocs
git checkout 8.x

Результатом усіх цих дій ми маємо домашню директорію сайту /var/www/new_site (із встановленим ядром Drupal в директорію /var/www/new_site/htdocs, що ми перемикали на потрібну нам гілку (8.x).

Зараз саме час повернутись до видалених раніше папок "modules" та "sites". Нам вони потрібні, проте, як вже було сказано, вони не можуть знаходитись під сабмодулем ядра. Тому і маємо за необхідне створити ці папки в корені сайту та налаштувати зсилки до них так, ніби вони знаходяться у спільній з ядром директорії:

cd /var/www/new_site
mkdir sites
mkdir modules
ln -s /var/www/new_site/sites/ /var/www/new_site/htdocs/
ln -s /var/www/new_site/modules/ /var/www/new_site/htdocs/
git add .
git commit -m "Install Drupal core"
git push origin dev

Ось і все -  встановлення ядра Drupal як сабмодуля завершене! Інсталяція додаткових модулів повинна виконуватись у папку "modules", що знаходиться в корені сайту. Для прикладу, встановимо модуль Administration menu:

cd /var/www/new_site/
git submodule add --branch 8.x-3.x http://git.drupal.org/project/admin_menu.git modules/admin_menu
git add .
git commit -m "Install admin menu module"
git push

На цьому ми завершуємо огляд встановлення ядра Drupal як сабмодуля git'а. Сподіваємося, інформація стане для вас корисною.

Голосів: 1 Рейтинг: 5

Також по темі

1

Вигляд форми авторизації/реєстрації тепер можна змінити через інтерфейс адміністратора за допомогою нашого модуля Customize login form.

2

Завдання імпорту контента часто буває нетривіальним. Написання імпорту "з нуля" для кожного випадку - варіант ...

3

В даній статті описано процес розгортання CMS Drupal із використанням Oracle DB на Debian сервері.

4

Facebook є однією з найпопулярніших соціальних мереж в світі. На сьогодні цей сайт налічує більше 1...

5

Друпал-розробники зі стажем не уявляють роботи без утіліти Drush (Drupal shell), адже з її допомогою більшість рутинних дій в друпалі випоконуються...

Subscribe to our blog updates