Добавить в Composer существующий проект на reg.ru

Главные вкладки

Аватар пользователя AlistaM AlistaM 13 апреля 2022 в 15:57

Добрый день. На 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/

Лучший ответ

Аватар пользователя ivnish ivnish 13 апреля 2022 в 17:20

Вот запускать composer req нужно из www/mysite.ru/ , где находится composer.json проекта

Комментарии

Аватар пользователя ivnish ivnish 13 апреля 2022 в 16:11

AlistaM wrote: Подскажите как к нему присоединить уже существующий сайт

Для этого сайт нужно перевести на использование composer, если изначально он собран в режиме "легаси".

Вот краткая инструкция.

Я бы не сказал, что это очень сложно сделать, но без хороших знаний drupal и composer будет очень трудно разобраться

Аватар пользователя AlistaM AlistaM 13 апреля 2022 в 16:32

нет, как раз изначально он собирался на composer, но локально на ПК у другого человека, после чего он выгружал проект на reg.ru, сейчас связи с ним нет, приходится выкручиваться.

Аватар пользователя AlistaM AlistaM 13 апреля 2022 в 16:35

И в любом случае, пишут что для ядра старше версии 8.8 все не так страшно
https://drupalbook.org/ru/docs/8/install/add-composer-to-an-existing-site
но как подвязать отдельно поднятый Сomposer на уже готовый Drupal 9 я описания не нашел

Аватар пользователя AlistaM AlistaM 13 апреля 2022 в 17:15

он находится в домашнем каталоге и пуст:

{
}

но глубже по дереву, в папке с сайтом 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": {
        }
    }
}
Аватар пользователя marassa marassa 13 апреля 2022 в 17:21

AlistaM wrote: глубже по дереву, в папке с сайтом www/mysite.ru/ есть еще один файл, возможно с ним раньше сайт и обновляли

Именно в этой папке и надо запускать composer, тогда возможно всё получится. Перед экспериментами, конечно, нужно сделать резервную копию.

Аватар пользователя AlistaM AlistaM 13 апреля 2022 в 17:40

Все получилось! Я думал есть какая-то привязка composer к конкретному проекту, о котрой я не знаю, а получается в зависимости от директории он подхватывает в ней существующий composer.json, не ожидал. Спасибо! Получается через один composer можно сопровождать несколько проектов