Categories

Новые шаблоны

Magento 2. Работа с интерфейсом командной строки (CLI). Основные команды для работы с магазином и их применение

Rating: 5.0/5. From 3 votes.
Please wait...

Magento 2 ввел встроенный инструмент интерфейса командной строки на основе Symfony Console Component. Этот инструмент позволяет выполнить широкий спектр повторяющихся задач, например, индексирование, работа с кэш, развертывание файлов статического вида и т.д. Нижеприведённые инструкции кратко проинформируют Вас о часто используемых командах Magento 2/Unix и расскажут об их применении.

Magento 2 ввел встроенный инструмент интерфейса командной строки на основе Symfony Console Component.

Этот инструмент позволяет выполнить широкий спектр повторяющихся задач, например, индексирование, работа с кэш, развертывание файлов статического вида и т.д. Нижеприведённые инструкции кратко проинформируют Вас о часто используемых командах Magento 2/Unix и расскажут об их применении.

Обратите внимание! Этот туториал подразумевает, что ваша окружающая среда настроена в соответствии с системными требованиями Magento и распознаёт команды Magento.

Команды Unix

  • Выполните вход на сервер через Secure Shell( SSH). Определите ваше текущее местоположение;

    pwd

    Отвечает за рабочий каталог печати. Команда выведет путь папки, в которой Вы в данный момент находитесь. В большинстве случаев, путем будет ваш системный docroot в иерархии папок.

    Примеры:

    [~]$ pwd
    /home/user/public_html

    В этом примере, пользователь расположен в папке public_html, где /home/user — это корневая папка.

    Обратите внимание! public_html, htdocs — это названия, которые, как правило, дают домашним (корневым) подпапкам. Если у Вас проблема с нахождением вашего docroot, свяжитесь с хостинг-провайдером на прямую!

  • Измените вашу рабочую папку;

    cd

    Команда cd, которая отвечает за изменение папки, позволит Вам перемещаться в вашей иерархии файловой системы.

    Примеры:

    [~]$ cd public_html/magento/var 

    Выполнив вышеуказанную команду, Вы попадете из вашей текущей рабочей папки, котороя является родительской папкой public_html, в папку var. Обратите внимание, public_html/magento/var означает папку, которая называется var и расположена в папке magento, которая, в свою очередь, расположена в папке public_html, которая является дочерней папкой текущей рабочей папки.

    [~]$ cd /home/user/public_html

    Вы, должно быть, заметили косую черту в начале пути во втором примере, в отличии от первого. Единичная косая черта (/) указывает на корневую папку сайта, что значит что выполнение команды начинается в корне документа.

    Эта команда приведёт Вас на один уровень ниже.

    [~]$ cd .. 

    При помощи этой команды Вы можете перейти в вашу домашнюю папку.

    [~]$ cd ~ 

  • Показать содержимое папки;

    ls

    Обозначает список. Эта команда отобразит содержимое папки. Синтаксис:

    ls [OPTION]... [FILE]...

    Например:

    [~]$ ls var 
    ./  ../  cache/  composer_home/  generation/  log/  page_cache/  session/

    Пример выше покажет содержимое папки var.

    [~]$ ls -l var 

    Значок -l с командой ls выводит список всех объектов в папках и подпапках, названия файлов в указанной папке, размер файлов, их привилегии и дату последнего изменения.

  • Найти файл;

    find

    find — это сильная команда, которая используется для поиска файла в системе файлов на основе различных критериев поиска, например: расширение, привилегии, размер, дата изменения и т.д. Команда отображает список файлов и папок на основе условий, указанных для файлов, соответствующих аргументам в формулировке команды. Синтаксис:

     find [OPTION] path... [expression]

    Примеры:

    [~]$ find var -type d -name Cache

    Вышеуказанная команда найдет все папки с аргументом (-type d, который называется Cache( аргумент -name), в папке var.

    [~]$ find app/design -type f -name "*.xml"

    Эта команда будет искать в папке design все файлы, которые отвечают аргументу, указанному в формулировке, например, только файлы формата -type f, -name «*.xml» с расширением .xml.

  • Изменение/Указание привилегий;

    chmod

    Расшифровывается как изменить биты режима файла. chmod — это запрос системы на основе unix, который может изменить привилегии доступа к объектам файловой системы. Он определяет, кто может получить доступ к тому или иному файлу/папке, и способ, посредством которого к этому файлу/папке можно получить доступ. Синтаксис:

    chmod [OPTION]... Mode [,Mode]... file...

    Настройки:

    • -R влияет на папки рекурсивно;

    • -f — принудительно: подавляет ошибки и принуждает к дальнейшему выполнению;

    • -v — вербализировать: выводит обработанные объекты;

    Примеры:

    [~]$ chmod -Rfv 0777 var

    Вышеуказанная команда, выполненная в [magento_install_dir] изменяет привилегии папки var и всех других объектов в этой папке на 0777 или rwxrwxrwx.

    [~]$ chmod -v 0644 composer.json
    режим 'composer.json' изменяется с 0777 (rwxrwxrwx) на 0644 (rw-r--r--)

    Эта команда применяет изменения к конкретному файлу. Возможно, Вам интересно, есть ли способ применить различные привилегии к папкам и файлам на глобальном уровне. Здесь мощь команды find может быть Вам полезна, так как chmod, по умолчанию, не имеет настроек для сортирования объектов по критериям.

    Выполните эту команду из [magento_install_dir], для того чтобы задать привилегии 0755 всем подпапкам в папке приложения magento:

    [~]$ find -type d -exec chmod -fv 0755 {} \;

    Выполните эту команду в [magento_install_dir], для того чтобы добавить привилегии 0644 для всех файлов в папке приложения magento:

    [~]$ find -type f -exec chmod -fv 0644 {} \;

    Выполните следующую команду в [magento_install_dir], для того чтобы найти подпапки с привилегиями 0775 и изменить их на 0755:

    [~]$ find -type d -perm 0775 -exec chmod -fv 0755 {} \;

    Выполните следующую команду в [magento_install_dir] для того чтобы найти подпапки без привилегий 0755 и изменить их на 0755:

    [~]$ find -type d ! -perm 0755 -exec chmod -fv 0755 {} \;

    Обратите внимание! здесь не нужно использовать флажок -R. Он игнорирует аргументы команды find и, тем самым, применяет привилегии глобально к файлам и папкам в указанной подпапке.

  • Удаление объекта;

    rm

    Команда rm используется для удаления объектов, таких как файлы и папки из подобных Unix операционных систем. Синтаксис:

    rm [OPTION]... FILE...

    Настройки:

    • -r влияет на файлы и папки рекурсивно, для того чтобы не осталось файлов без папок;

    • -f переопределяет запрос подтверждения, никогда не запрашивает подтверждения перед удалением файлов. Не удалит папки, которые защищены от записи;

    • -v поясняет то, что было сделано и какие объекты были удалены;

    • -i спрашивает о подтверждении перед удалением;

    Примеры:

    [~]$ rm -rfv var/generation

    Команда рекурсивно удаляет папку generation со всем её содержимым.

    Удаляет содержимое папки var:

    [~]$ rm -rfv var/*

    Другим способом удалить подпапки конкретной папки, в нашем случае pub/static, без удаления родительской папки, является использование rm вместе с командой find:

    [~]$ find pub/static -mindepth 1 -maxdepth 1 | xargs rm -rfv

    ПРЕДУПРЕЖДЕНИЕ! Убедитесь, что Вы проверили текущую рабочую папку, настройки команды и файлы, которые будут удалены, перед выполнением rm -rf. Команда необратима.

  • Подведём итоги;

    man

    man это онлайн отсылка на "manual". man являются страницами вручную, которые предоставляют детальную документацию про команды Unix, файлы настройки, запросы системы и т.д.

    Примеры:

    [~]$ man xargs
    [~]$ man chmod
    [~]$ man wget

    Вышеприведенные команды при выполнении открывают страницу ручного выполнения указанной команды в консоли командной строки.

Краткое описание команд Magento 2

Войдите на ваш сервер при помощи Secure Shell(SSH). cd в папку /[magento_install_dir]/bin, в которой следует выполнять команды. Примеры:

[~]$ cd /home/user/public_html/bin
[~]$ php magento

Эта команда выводит версию установленного приложения, а также список доступных команд.

Команды можно также выполнить следующим образом:

[~]$ php /[magento_install_dir]/bin/magento [command]
[~]$ cd /[magento_install_dir]/
[~]$ php bin/magento [command]
  • Вспомогательные команды

    1. [~]$ php magento --list

      Эта команда отобразит список всех доступных команд Magento 2 и их краткое изложение;

    2. [~]$ php magento [command] -h
      [~]$ php magento setup:upgrade -h

      Используйте флажок -h в конце команды magento, для того чтобы получить детальное описание конкретной команды.

  • Кэш

    Отображает статус типов кэша:

    [~]$ php magento cache:status

    Отключить/включить кэш/типы кэша:

    [~]$ php magento cache:disable full_page eav
    [~]$ php magento cache:enable

    Очистить кэш magento. Команда удаляет элементы из включенных типов кэш:

    [~]$ php magento cache:clean

    Очистить кэш magento. В отличии от cache:clean, cache:flush очищает все хранилище кэш, включая хранилище отключенных типов кэш:

    [~]$ php magento cache:flush
  • Индексаторы

    Отображать статус индексатора:

    [~]$ php magento indexer:status

    Переиндексировать все индексаторы или любой выбранный индексатор:

    [~]$ php magento indexer:reindex
    [~]$ php magento indexer:reindex catalog_product_attribute

    Измените режим индексирования при помощи CLI, например, Обновлять при сохранении (Update on Save), Обновлять по расписанию (Update by Schedule):

    [~]$ php magento indexer:set-mode realtime
    [~]$ php magento indexer:set-mode schedule
  • Администрирование

    Если Вы потеряли ваш пароль админа, Вы можете восстановить доступ к админ панели, создав нового пользователя-админа. Команда-пример создает пользователя по имени John Doe с именем пользователя john и паролем johndoe123:

    [~]$ php magento admin:user:create --admin-user john --admin-password johndoe123 
    --admin-email johndoe@email.com --admin-firstname john --admin-lastname doe

    Настройки, указанные в команде выше, являются обязательными.

  • Настройка
    1. Фронтенд Magento отображается из папки pub/static. Эта папка может быть кэширована браузерами, то есть выводиться не динамически. Если новое расширение, или шаблон установлены или изменены, Вам, возможно, понадобится удалить существующее содержимое папки pub/static и развернуть файлы статического вида:

      [~]$ php magento setup:static-content:deploy

      Языковые пакеты являются обычными расширениями, которые нужно развернуть после установки. Найдите языковую локаль, выполнив следующую команду:

      [~]$ php magento info:language:list

      Разверните файлы статического вида языкового пакета, добавив его локаль в конец команды:

      [~]$ php magento setup:static-content:deploy es_ES

      Разверните файлы статического вида конкретного шаблона:

      [~]$ php magento setup:static-content:deploy --theme Magento/luma
    2. Выполнив setup:upgrade, Вы обновите компоненты базы данных Magento, а также удалите ряды папок var/di (если они скомпилированы) var/view_preprocessed и var/generation. Команду нужно выполнить, если было установлено или активировано определённое расширение:

      [~]$ php magento setup:upgrade
    3. Генерирование и компиляция кода запуска путем применения setup:di:compile (встроенный компилятор кода). Команда создаст папку var/di и скомпилирует классы factories, proxies, interceptors. Команда не обязательна для выполнения, если ваше приложение работает в стандартном режиме или режиме разработчика. Код приложения нужно перекомпилировать после определённых изменений кода, если Вы находитесь в режиме production:

      [~]$ php magento setup:di:compile
  • Модули

    Отобразите список доступных включенных/отключенных модулей, используя команду module:status:

    [~]$ php magento module:status

    Включите/отключите модули при помощи CLI:

    [~]$ php magento module:disable Namespace_Module

    Отключите расширение Blog и очистите все его файлы статического вида:

    [~]$ php magento module:disable TemplateMonster_blog --clear-static-content

    Деинсталлируйте модуль Magento:

    [~]$ php magento module:uninstall TemplateMonster_blog
  • Режим техобслуживания

    Magento имеет настройку включения/отключения режима техобслуживания при настройке/обслуживании сайта:

    [~]$ php magento maintenance:enable

    Команда создаёт файл var/.maintenance.flag, который используется Magento для определения статуса.

    Включить режим техобслуживания для любого кроме 192.10.0.0, 192.192.2.11:

    [~]$ php magento maintenance:enable --ip=192.10.0.0 --ip=192.192.2.11

    Команда создаёт файл var/.maintenance.ip. Отключить режим технического обслуживания:

    [~]$ php magento maintenance:disable

Советы

Вместо того чтобы вводить полное название команды, Вы можете использовать аббревиатуры и акронимы. Система поймет, какую команду Вы вводите и выполнит её, хотя она и не однозначна. Например:

[~]$ php magento i:rein

для indexer:reindex.

[~]$ php magento c:f

для cache:flush

Вы можете также ознакомиться с детальным видео-туториалом ниже:

Magento 2. Работа с интерфейсом командной строки (CLI). Основные команды для работы с магазином и их применение

Ознакомьтесь поближе с коллекцией шаблонов Magento и выберите наиболее подходящий для вашего проекта.

Magento Шаблоны
Эта запись была размещена в Magento туториалы и помечена как CLI, command-line, commands, magento2, Symfony Console Component. Добавьте в закладки постоянную ссылку.

Submit a ticket

Если вы не смогли найти подходящее решение проблемы, пожалуйста воспользуйтесь следующей ссылкой, чтобы отправить запрос команде технической поддержки.
Отправить запросВы получите ответ в течение 24 часов