Добрый день. На reg.ru развернул composer (по инструкции https://help.reg.ru/hc/ru/articles/4408047351569-Установка-PHP-Composer-на-виртуальном-хостинге), он работает. Подскажите как к нему присоединить уже существующий сайт, чтобы можн обыло запускать команды типа (composer require "drupal/address ~1.0")? используется Drupal 9.
Домашняя директория вида /var/www/u160XXXX/data
Сайт находится в каталоге /www/mysite.ru/
Добавить в Composer существующий проект на reg.ru
Главные вкладки
Лучший ответ
Вот запускать composer req нужно из www/mysite.ru/ , где находится composer.json проекта
Комментарии
Для этого сайт нужно перевести на использование composer, если изначально он собран в режиме "легаси".
Вот краткая инструкция.
Я бы не сказал, что это очень сложно сделать, но без хороших знаний drupal и composer будет очень трудно разобраться
нет, как раз изначально он собирался на composer, но локально на ПК у другого человека, после чего он выгружал проект на reg.ru, сейчас связи с ним нет, приходится выкручиваться.
И в любом случае, пишут что для ядра старше версии 8.8 все не так страшно
https://drupalbook.org/ru/docs/8/install/add-composer-to-an-existing-site
но как подвязать отдельно поднятый Сomposer на уже готовый Drupal 9 я описания не нашел
Покажите ваш composer.json в папке с которым вы выполняете composer require
он находится в домашнем каталоге и пуст:
}
но глубже по дереву, в папке с сайтом www/mysite.ru/ есть еще один файл, возможно с ним раньше сайт и обновляли
"name": "drupal-composer/drupal-project",
"description": "Project template for Drupal 9 projects with Composer",
"type": "project",
"license": "GPL-2.0-or-later",
"authors": [
{
"name": "",
"role": ""
}
],
"repositories": [
{
"type": "composer",
"url": "https://packages.drupal.org/8"
}
],
"require": {
"php": ">=7.3",
"composer/installers": "^1.9",
"cweagans/composer-patches": "^1.7",
"drupal/admin_toolbar": "^3.0",
"drupal/antibot": "^1.4",
"drupal/colorbox": "^1.7",
"drupal/core-composer-scaffold": "^9.1",
"drupal/core-recommended": "^9.1",
"drupal/devel": "^4.1",
"drupal/easy_breadcrumb": "^1.15",
"drupal/field_group": "^3.1",
"drupal/image_effects": "^3.1",
"drupal/menu_link_attributes": "^1.2",
"drupal/metatag": "^1.15",
"drupal/paragraphs": "^1.12",
"drupal/pathauto": "^1.8",
"drupal/redirect": "^1.6",
"drupal/responsive_favicons": "^1.6",
"drupal/simple_sitemap": "^3.9",
"drupal/swiftmailer": "^2.0",
"drupal/twig_tweak": "^3.0",
"drupal/video_embed_field": "^2.4",
"drupal/viewsreference": "^1.7",
"drupal/webform": "^6.0",
"drush/drush": "^10.3",
"vlucas/phpdotenv": "^5.1",
"webflo/drupal-finder": "^1.2"
},
"require-dev": {
"drupal/core-dev": "^9.1",
"zaporylie/composer-drupal-optimizations": "^1.2"
},
"conflict": {
"drupal/drupal": "*"
},
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
"discard-changes": true,
"sort-packages": true
},
"autoload": {
"classmap": [
"scripts/composer/ScriptHandler.php"
],
"files": ["load.environment.php"]
},
"scripts": {
"pre-install-cmd": [
"DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
],
"pre-update-cmd": [
"DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
],
"post-install-cmd": [
"DrupalProject\\composer\\ScriptHandler::createRequiredFiles"
],
"post-update-cmd": [
"DrupalProject\\composer\\ScriptHandler::createRequiredFiles"
]
},
"extra": {
"drupal-scaffold": {
"locations": {
"web-root": "web/"
}
},
"installer-paths": {
"web/core": ["type:drupal-core"],
"web/libraries/{$name}": ["type:drupal-library"],
"web/modules/contrib/{$name}": ["type:drupal-module"],
"web/profiles/contrib/{$name}": ["type:drupal-profile"],
"web/themes/contrib/{$name}": ["type:drupal-theme"],
"drush/Commands/contrib/{$name}": ["type:drupal-drush"]
},
"composer-exit-on-patch-failure": true,
"patchLevel": {
"drupal/core": "-p2"
},
"patches": {
}
}
}
Вот запускать composer req нужно из www/mysite.ru/ , где находится composer.json проекта
Именно в этой папке и надо запускать composer, тогда возможно всё получится. Перед экспериментами, конечно, нужно сделать резервную копию.
Все получилось! Я думал есть какая-то привязка composer к конкретному проекту, о котрой я не знаю, а получается в зависимости от директории он подхватывает в ней существующий composer.json, не ожидал. Спасибо! Получается через один composer можно сопровождать несколько проектов