- Веб-Шаблоны
- Шаблон интернет-магазина
- Шаблоны для CMS
- Facebook шаблоны
- Конструктор сайтов
Magento 2. Работа с интерфейсом командной строки (CLI). Основные команды для работы с магазином и их применение
Май 24, 2017
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]
Вспомогательные команды
- Кэш
Отображает статус типов кэша:
[~]$ 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Настройки, указанные в команде выше, являются обязательными.
- Настройка
Фронтенд 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
Выполнив setup:upgrade, Вы обновите компоненты базы данных Magento, а также удалите ряды папок var/di (если они скомпилированы) var/view_preprocessed и var/generation. Команду нужно выполнить, если было установлено или активировано определённое расширение:
[~]$ php magento setup:upgrade
Генерирование и компиляция кода запуска путем применения 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 Templateog体育首页_blog --clear-static-content
Деинсталлируйте модуль Magento:
[~]$ php magento module:uninstall Templateog体育首页_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 и выберите наиболее подходящий для вашего проекта.