Выпишу её сюда для своего удобства, чтобы всегда была под рукой онлайн.
Архивация сайта
Тестовые адреса для некоторых стран
Устранение сбоя «Can't create directory 'generated/code'»
chmod -R -v 777 generated
Удаление кэша
Посредством bin/magento
bin/magento cache:clean
Посредством rm
(более гибко)
Без папки generated
(
o=(
../.cachestates.json
../cache
../page_cache
../view_preprocessed
{,.[!.],..?}*
)
rm -rf "${o[@]}"
)
С папкой generated
(
o=(
../../generated/*
../.cachestates.json
../cache
../di
../generation
../page_cache
../view_preprocessed
{,.[!.],..?}*
)
rm -rf "${o[@]}"
)
Удаление кэша + автосоздаваемых файлов PHP + конечных браузерных файлов
find var/* -type f -or -type d | grep -v 'session' | xargs rm -rf &&
rm -rf pub/static/* generated/*
Убийство PHP в Windows
taskkill /F /IM php.exe 2>/dev/null
Перезапуск Apache
net stop "Apache2.4" && net start "Apache2.4"
Создание конечных браузерных файлов
bin/magento setup:static-content:deploy -f
Для конкретной локали, области кода и оформительской темы:
bin/magento setup:static-content:deploy -f pt_BR --area frontend --theme Magento/luma
или
rm -rf pub/static/* && bin/magento setup:static-content:deploy -f pt_BR --area frontend --theme Magento/luma
Перезапуск Nginx
net stop Nginx & net start Nginx
или
taskkill /F /IM nginx.exe 2>/dev/null &&
./nginx
Обновление программного кода модулей из внешних репозиториев
composer self-update &&
composer update --prefer-source
Обновление модулей в Magento
Логическое продолжение предыдущей команды: Magento узнаёт об изменениях версий модулей, регистрирует/удаляет их, меняет схему БД.
bin/magento cache:clean && bin/magento setup:upgrade && rm -rf generated var/generation/*
Обновление сайта
rm -rf var/cache var/log && git pull && sudo /etc/init.d/php5-fpm restart
Компиляция кода PHP
bin/magento setup:di:compile
Создание резервной копии базы данных
mysqldump имя_БД > $(date '+%Y-%m-%d-%H-%M').sql
mysqldump \
--default-character-set=utf8 \
--host=<value> \
--password=<value> \
--user=<value> \
<database> | gzip > ~/_backup/$(date '+%Y-%m-%d-%H-%M').sql.gz
Дамп структуры базы данных Magento для сравнения и отладки
mysqldump --no-data <database> | sed 's/ AUTO_INCREMENT=[0-9]*\b//g' > <database>.sql
Дамп настроек Magento для сравнения и отладки
mysqldump \
--complete-insert \
--skip-compact \
--skip-extended-insert \
--where="1 ORDER BY path" \
<database> core_config_data > core_config_data.sql
Восстановление базы данных из резервной копии
mysql -e "DROP DATABASE имя_БД; CREATE DATABASE имя_БД;" && mysql имя_БД < имя_файла.sql
Удаление DEFINER
из дампа базы данных
grep DEFINER имя_файла.sql
sed -i 's/DEFINER=`<name>`@`<host>`//g' имя_файла.sql
Выполнение запланированных задач
bin/magento cron:run --bootstrap=standaloneProcessStarted=1
Перестройка расчётных таблиц
UPDATE indexer_state SET status = 'valid';
bin/magento indexer:reindex
Валидация файлов XML в IntelliJ IDEA
bin/magento dev:urn-catalog:generate ../.idea/01/.idea/misc.xml && \
bin/magento dev:urn-catalog:generate ../.idea/03/.idea/misc.xml && \
bin/magento dev:urn-catalog:generate ../.idea/04/.idea/misc.xml && \
bin/magento dev:urn-catalog:generate ../.idea/05/.idea/misc.xml
Отмена изменений файлов
git checkout -- composer.lock
git checkout -- composer.json
Узнаём, когда файл был удалён
git log -1 -- app/code/Magento/Catalog/Block/Adminhtml/Category/Tab/Attributes.php
Узнаём всю историю изменений файла
git log -- app/code/Magento/Catalog/Block/Adminhtml/Category/Tab/Attributes.php
Узнаём внешний адрес IP своего сервера
wget -qO- http://ipecho.net/plain ; echo
Узнаём значение опции интерпретатора PHP
php -i | grep <option name>
Создание учётной записи администратора с командной строки
chmod u+x bin/magento &&
(
o=(
--admin-email="admin@mage2.pro"
--admin-firstname="Dmitrii"
--admin-lastname="Fediuk"
--admin-password="Za1112Uj"
--admin-user="Dmitrii Fediuk"
)
bin/magento admin:user:create "${o[@]}"
)
Изменение пароля покупателя
Узнаём папку установки Magento 2
find / -name "CHANGELOG.md" -print 2>/dev/null
Узнаём параметры подключения к базе данных
grep -E "host|dbname|username|password|table_prefix" app/etc/env.php
Узнаём корневой URL магазина
mysql --host=<host> --user=<user> --password=<password> -D <database> -e "SELECT value FROM core_config_data WHERE path IN ('web/secure/base_url', 'web/unsecure/base_url');"
Узнаём корневой URL административной части
grep "frontName" app/etc/env.php
(
o=(
--default-character-set=utf8
--host=<host>
--password=<password>
--user=<user>
-D <database>
-e "SELECT path, value FROM core_config_data WHERE path LIKE 'admin/url/%'"
)
mysql "${o[@]}"
)
Узнаём расположение главного настроечного файла веб-сервера Apache (httpd.conf)
find / -name "httpd.conf" -print 2>/dev/null
Узнаём используемый веб-сервер
wget -SO- <website url> 2>&1 >/dev/null | grep "Server"
Увеличиваем продолжительность сессий
Быстрая компиляция Less для конкретного модуля
Исправляем настройки доступа к файлам в домашней папке
sudo chown ${USER:=$(/usr/bin/id -run)}:$USER ~
Удаление кэша Composer'a
composer clear-cache
Отключение / включение стороннего модуля
bin/magento module:disable <module name> && bin/magento setup:upgrade
Русификация
Измеряет полноту перевода:
bin/magento dfr:translation:state
Пополняет русскоязычные словари новыми фразами из ядра (эта команда предназначена только для разработчиков):
bin/magento dfr:translation:update
Настройки Magento для разработки
Дополнительные настройки Magento ≥ 2.2 для демонстрации клиентам их сайта на моем сервере
Поиск паролей Composer'a
find / -name "auth.json" -print 2>/dev/null
find ~ -name "auth.json" -print 2>/dev/null
Поиск конфликтующих модулей
bin/magento maintenance:enable
composer require magefan/module-conflict-detector:*
bin/magento setup:upgrade
rm -rf var/di var/generation generated/code && bin/magento setup:di:compile
rm -rf pub/static/* && bin/magento setup:static-content:deploy en_US <additional locales, e.g.: de_DE>
bin/magento maintenance:disable
Определяем операционную систему
cat /etc/*-release
Расшифровка пароля из настроек Magento
magerun config:store:get --decrypt <path>
How to decrypt a module's backend option value using n98-magerun2
?
Например, так читаем параметры аутентификации в PayPal:
(
ss=(
'api_password'
'api_signature'
'api_username'
)
for s in "${ss[@]}"; do
magerun config:store:get --decrypt $s
done
)
magerun dev:decrypt <encrypted string>
How to decrypt an arbitrary value using n98-magerun2
?
Как в разы уменьшить размер базы данных
Какие модули я использую почти в каждом проекте?
Находим самые большие таблицы
SELECT table_name, table_rows, round(((data_length + index_length) / 1024 / 1024),2) "Size in MB"
FROM information_schema.tables
WHERE "<database name>" = table_schema
ORDER BY (data_length + index_length) DESC;
Сокращаем размер БД в Magento 1
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE dataflow_batch_import;
DELETE FROM index_event;
TRUNCATE index_process_event;
TRUNCATE core_session;
TRUNCATE dataflow_batch_export;
TRUNCATE log_url;
TRUNCATE log_url_info;
TRUNCATE log_visitor;
TRUNCATE log_visitor_info;
TRUNCATE report_compared_product_index;
TRUNCATE report_event;
TRUNCATE report_viewed_product_aggregated_daily;
TRUNCATE report_viewed_product_index;
SET FOREIGN_KEY_CHECKS=1;
Отключаем предустановленный мусор
bin/magento module:disable Dotdigitalgroup_Chat
bin/magento module:disable Dotdigitalgroup_Email
bin/magento module:disable Vertex_AddressValidation
bin/magento module:disable Vertex_Tax
bin/magento module:disable Temando_Shipping
bin/magento module:disable Yotpo_Yotpo
bin/magento module:disable Magento_Signifyd
bin/magento module:disable Magento_NewRelicReporting
DELETE FROM `eav_attribute` WHERE `source_model` LIKE '%Temando%'