Бекап через SSH.

Вариант 1. Полный.

Под полным бекапом сайта я понимаю это снятие дампа базы данных всех таблиц и всех файлов сайта.

База данных.

mysqldump -u USERNAME -pPASSWORD --default-character-set=UTF8 DATABASE_NAME > backup/sitedb_backup.sql
  • USERNAME — имя пользователя
  • pPASSWORD — пароль(буква «p», не опечатка, такой синтаксис)
  • DATABASE_NAME — база данных
  • backup — папка в которую поместить бекап
  • sitedb_backup.sql — БД

Файлы.

tar cvvzf backup/backup_site.gz  web

папка web

Вариант 2. Исключаем лишнее.

Делаем бекап с исключением лишних данных и БД и не нужных файлов.

База данных.

Выполняем две команды.

mysqldump -u USERNAME -pPASSWORD --default-character-set=UTF8 --no-data DATABASE_NAME > backup/sitedb_backup.sql
mysqldump -u USERNAME -pPASSWORD --default-character-set=UTF8 --no-create-info --ignore-table=DATABASE_NAME.TABLE_NAME --ignore-table=DATABASE_NAME.TABLE_NAME --ignore-table=DATABASE_NAME.TABLE_NAME ... DATABASE_NAME >> backup/sitedb_backup.sql
  • —no-data — бекап таблиц без данных
  • —ignore-table=DATABASE_NAME.TABLE_NAME — делает бекап структуры таблицы без сохранения данных

Файлы.

tar cvvzf backup/backup_site.gz --exclude='sites/*' --exclude='images/*' web

Создаем архив без папки sites и images.

 

Windows. Настройка рабочего места web-разработчика.

ПО и инструменты которые помогают работать.

Локальный сервер — XAMPP;

Редактор — Sublime text 3, Notepad++;

FTP и проводник: WinSCP, Total Commander;

IDE: phpStorm;

Система контроля версий: GIT;

Загрузка пакетов: Composer;

Читать далее Windows. Настройка рабочего места web-разработчика.

Ошибка в Drupal

Warning: move_uploaded_file(/tmp/firefox_wallpaper.png): failed to open stream: Disk quota exceeded в функции drupal_move_uploaded_file() (строка 1639 в файле /home/users/a/akmal-93437/domains/akmal-93437.myjino.ru/includes/file.inc).
Warning: move_uploaded_file(): Unable to move '/home/users/a/akmal-93437/tmp/phptMXaGX' to '/tmp/firefox_wallpaper.png' в функции drupal_move_uploaded_file() (строка 1639 в файле /home/users/a/akmal-93437/domains/akmal-93437.myjino.ru/includes/file.inc).
Ошибка закачки файла. Невозможно переместить закачанный файл.

Для дебага этой ошибки необходимо вывести временный каталог, сделать это просто. Открыть index.php и добавить туда следующий код:

$tmp_dir = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir();
die($tmp_dir);

Выведет примерно следующее:

Потом перейти по адресу «адрес вашего сайта/admin/config/media/file-system» и изменить «Временный каталог» на полученный выше путь

 

Ubuntu. MySQL загрузка большого файла

Создаем каталоги upload и save

sudo mkdir /etc/phpmyadmin/upload sudo mkdir /etc/phpmyadmin/save

Устанавливаем права

sudo chmod a+w /etc/phpmyadmin/upload
sudo chmod a+w /etc/phpmyadmin/save

Открываем на редактирование конфиги

sudo gedit /etc/phpmyadmin/config.inc.php

Ищем строки  с $cfg[‘UploadDir’] и $cfg[‘SaveDir’] и прописываем следующее

$cfg['UploadDir'] = '/etc/phpmyadmin/upload';
$cfg['SaveDir'] = '/etc/phpmyadmin/save';

Теперь копируем дамп базы в папку upload и переходим в phpmyadmin жмем «Импорт» там появиться новый пункт «Выберите из каталога загрузки сервера /etc/phpmyadmin/upload/

выбираем дамп и вперед.

Ubuntu включаем mod_rewrite.

Перешел с Windows на Linux и столкнулся с проблемой, что проекты на Laravel не запускаются. Выяснил что это происходит из-за неправильной настройки локального хоста.

В главной директории Laravel находиться файл .htaaccess в котором включается mod_rewrite, который не как не реагировал.

В первую очередь нежно проверь есть ли файл rewrite.load, переходим в /etc/apache2/mods-available ищем этот файл, если отсутствует rewrite.load, то нужно выполнить команду: a2enmod rewrite.

Если есть, то все хорошо и переходим  в modsenabled и делаем символьную ссылку на rewrite.load

sudo ln -s ../mods-available/rewrite.load rewrite.load

Теперь проверяем виртуальные хосты:

Ubuntu до 14.0: открываем /etc/apache2/sites-available/default (или файл вашего хоста, например test.local.conf)

Ubuntu старше 14.0: открываем файл /etc/apache2/apache2.conf

И меняем AllowOverride None на AllowOverride All

 

Перезагружаем apache

sudo /etc/init.d/apache2 restart

Все должно работать.

 

Поиск 404 ошибки.

 

Основная цель поиск страниц которые ведут на страницы 404.

Первый этап был сканирование всех ссылок сайта и поиск битых ссылок.

Сканирование сайта.

Подготовка ссылок.

Первым делом проверяем есть ли у Вас карта сайта. Если нет, то ищем генератор sitemap, например https://gensitemap.ru/. Сохраняем xml файл, потом открываем его с помощью MS Exel, будет много предупреждений просто жмем Ок. Видим примерно следующее:

Удаляем заголовки и копируем первый столбец, потом вставляем ссылки в текстовый редактор, который сохраняет переходы на строку, в моем случае это Sublime Text 3, сохраняем как TXT.

Читать далее Поиск 404 ошибки.

phpStorm. Добавление своих снипетов в Emmet.

Переходим в настройки phpStorm(CTRL+ALT+S) открываем вкладку «Live Templates»  переходим в категорию html/xml и жмем + справа.

Прописываем Abbreviation(по какому значению будет вызываться) добавляем описание и пишем текст шаблона ниже будет кнопка «Change» выбираем расширение фалов в которых будет применяться снипет. Так же справа есть настройка(Expand with) по какой клавише будет вызов.

custom_emmet

 

Laravel. Вывод SQL запроса.

Для отладки SQL запроса требуется посмотреть, какой запрос выполняется решение для Laravel ниже

 

$data->where(...);
$sql = $data->toSql();
$bindings = $data->getBindings();
foreach ($bindings as $binding) {
    $value = is_numeric($binding) ? $binding : "'".$binding."'";
    $sql = preg_replace('/\?/', $value, $sql, 1);
}
echo $sql;

Выведет примерно следующее.

select * from `conversions` where exists (select * from `landings` inner join `visits` on `landings`.`id` = `visits`.`landing_id` where `conversions`.`id` = `visits`.`id` and `landings`.`id` = 1) and `date` >= '2017-01-03' limit 15