понедельник, 10 сентября 2012 г.

Создание и развертывание дампа MySQL

Создание дампа

Разберем пример простейшее использования, задампим базу данных «database» при помощи перенаправления потока в файл «database.sql»:

mysqldump -uroot -h82.82.82.82 -p database > database.sql

где:
-u или -–user=... — имя пользователя
-h или --host=... — удаленный хост (для локального хоста можно опустить этот параметр)
-p или --password — запросить пароль
database — имя базы данных
database.sql — файл для дампа

Для того чтобы сделать дамп несколько баз данных, необходимо использовать параметр --databases (или сокращенно -B), пример:

mysqldump -uroot -h82.82.82.82 -p -B database1 database2 database3 > databases.sql

А для того чтобы сделать дамп всех баз данных, необходимо использовать параметр --all-databases (или сокращенно -A), пример:

mysqldump -uroot -h82.82.82.82 -p -A > all-databases.sql

Развертывание дампа

Перенаправляем поток в обратную сторону и развертываем базу данных:

mysql -uroot -h82.82.82.82 -p database < database.sql

Или через mysql-console:

mysql> use database;
mysql> source database.sql

Web-server ubuntu

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/site1

Команда создает новую запись виртуального хостинга копируя стандартную запись апача.

sudo gedit /etc/apache2/sites-available/site1

и в этом файле:
1) заменить все /var/www/ на /home/user/www/site1/
2) перед строкой "DocumentRoot /home/user/www/site1/" добавить строку "ServerName site1"

То есть должно быть так:

ServerName site1
DocumentRoot /home/user/www/site1/
sudo a2ensite site1
sudo gedit /etc/hosts

и в этом файле добавить строку

127.0.1.2 site1
sudo /etc/init.d/apache2 reload

Заглушка mail

#!/bin/sh
prefix="/var/mail/sendmail/new"
numPath="/var/mail/sendmail"

if [ ! -f $numPath/num ]; then
echo "0" > $numPath/num
fi
num=`cat $numPath/num`
num=$(($num + 1))
echo $num > $numPath/num

name="$prefix/letter_$num.html"
while read line
do
echo $line >> $name
done
chmod 777 $name
/bin/true
Скрипт сохраняем в папку /usr/bin под любым угодным вам именем и делаем исполняемым (sudo chmod +x). Я использовал fake_sendmail.sh.
Теперь все исходящие письма будут складываться в /var/mail/sendmail. Так же необходимо выставить для папки права на запись. (chmod 777 -R /var/mail/sendmail).
Примечание: Для сбора писем почтовиком (о чем ниже), нужно в этой папке создать следующую структуру папок: /var/mail/sendmail/ — new И дать права на запись.
Настройка PHP. У меня стоит Кубунта, так что все пути относительно нее. Итак, находим в папке /etc/php5/apache2 файл php.ini и меняем в нем путь к sendmail на:
sendmail_path = /usr/bin/fake_sendmail.sh

воскресенье, 22 мая 2011 г.

Улучшаем профайлер в Zend Framework (Костыли)

Из рубрики "Чего мне хотелось бы в Zend Framework, а его там нет".

ZFDebug показывает, что запросов на странице 30 - хорошо (всмысле плохо - много, но! знать об этом - это хорошо). Знать бы еще из какой модели был вызван запрос. Поправим это. Решение снова хардкорное :/ не смог придумать как бы его так сделать по-хорошему, пришлось (опять) менять ZF (да-да, знаю за это меня будут мучать вечно в програмистском аду)

Имена ключей в memcache backend Zend Framework (Костыли)

Из рубрики "Чего мне хотелось бы в Zend Framework, а его там нет".

в Zend_Cache_Core: Invalid id or tag 'my-namespace:my-key' : must use only [a-zA-Z0-9_]

по нашим внутренним правилам: Имена ключей в key-value хранилищах должны разделяться двоеточием (:) где используются переменные, а также в именах ключей минусом (-) заменяются пробелы, т.е.
'users:3', 'users:17', 'users-by-eye-color:desc', 'users-by-eye-color:asc' и т.п.

пятница, 15 апреля 2011 г.

Шпоргалка по настройке хоста в Ubuntu

О том как поднять локально хост на Ubuntu для разработки.

Никогда не запоминаю такие последовательности, особенно когда такое нужно делать раз в 2-3 месяца.

Верстка почтовых рассылок

В этой статье я бы хотел поделиться своими познаниями в кроссбраузерной и кроссмейлерной верстке почтовых рассылок. Под словом кроссмейлерность подразумевается — корректное отображение верстки во всех почтовых клиентах. Я считаю, что статья вполне актуальна, в виду того, что на хабре эта тема несколько раз освещалась, но некоторые нюансы были неточными, а другие просто устарели. По долгу службы я долгое время занимался версткой html расылок по всему миру, и приведенные ниже правила будут касаться следующих почтовых клиентов и веб-интерфейсов: MS Outlook 2003-2010, mail.ru, rabmler почта, Яндекс почта, Gmail, Yahoo! Mail (Classic), Thunderbird 2.0-3.0, Hotmail, Windows Live Mail, Apple Mail 3-4, AOL Mail, Lotus Notes 8-8.5.