вторник, 11 августа 2015 г.
Docker для PHP Разработчка. Часть 2 - Практическая.
понедельник, 10 августа 2015 г.
Docker для PHP Разработчка. Часть 1 - Теоретическая.
Первое, что приходит на ум, если говорить о виртуализации локальных окружений - Vagrant. Vagrant - это, согласно официальной документации, утилита, для создания и конфгурирования легковесных, легко воспроизводимых и портативных дев окружений. В основном Vagrant поможет вам создать витруальную машину с уникальной комбинацией ПО, сконигурированного индивидуально для каждого проекта. Этот подход предлагает решить 3 вещи:
- Vagrant изолирует окружение для избежания конфликтов версий ПО.
- Vagrant сохраняет конфигурации и версии одинаковые для каждого члена команды.
- Vagrant можно настроить максимально похожим к продакшен окружению.
суббота, 30 августа 2014 г.
пятница, 22 августа 2014 г.
Подключение к БД MySQL по локальной сети
# nano /etc/mysql/my.cnf ... bind-addres = 0.0.0.0 ... # sudo service mysql restartПосле этого нужно создать пользователя, который может подключаться по сети к какой-то базе:
mysql> CREATE USER 'dbuser'@'%' IDENTIFIED BY 'YOUR_PASS'"; mysql> GRANT ALL PRIVILEGES ON `YOUR_DB` . * TO 'dbuser'@'%'; mysql> FLUSH PRIVILEGES;
пятница, 20 сентября 2013 г.
Обновляем версию PHP c 5.3 до 5.4 (last stable)
# sudo add-apt-repository ppa:ondrej/php5-oldstable # aptitude update # sudo apt-get install php5 libapache2-mod-php5ОСТРОЖНО! в репозитории ppa:ondrej/php5-oldstable - 5.4.Х а в ppa:ondrej/php5 - 5.5.Х (но для 5.5 не работает sphinx.so) Навеяно этим.
понедельник, 10 сентября 2012 г.
Создание ссылок на файлы
ln -s /etc/nginx/sites-avaliable/advice.loc /etc/nginx/sites-enabled/advice.loc
Рекурсивное удаление .svn папок
Заходим в папку и в ней выполняем. Удаляются все вложенные относительно текущей
rm -rf `find . -type d -name .svn`
Список процессов mysql
Список процессов можно посмотреть из коммандной строки или через phpmyadmin.
mysqladmin -u root --password=2442591 -v processlist
Создание и развертывание дампа PostgreSQL
Создание дампа
Разберем пример использования, задампим базу данных «database» при помощи перенаправления потока в файл «database.sql»:
sudo -u postgres pg_dump database > database.sql
где:
-u — имя пользователя (в данном примере "postgres")
pg_dump — команда для экспорта
database — имя базы данных
database.sql — файл для дампа
Для того чтобы сделать дамп только одной таблицы, необходимо использовать параметр -t, пример:
sudo -u postgres pg_dump -t sd_notifications socdate > socdate_notifications.sql
где:
-t sd_notifications — таблица которую будем экспортировать
Подробнее: http://www.postgresql.org/docs/8.4/static/app-pgdump.html
Развертывание дампа
Перенаправляем поток в обратную сторону и используем команду psql (если в скрипте нет очистки - необходимо вручную перед импортом очистить базу/таблицу):
sudo -u postgres psql socdate < socdate_notifications.sql
где:
-u postgres — имя пользователя
psql — команда для выполнения SQL скрипта
socdate — база данных в которую выполнятся команды скрипта
socdate_notifications.sql — файл дампа базы/таблицы откуда выполнятся команды скрипта
Подробнее: http://www.postgresql.org/docs/8.4/static/app-psql.html
Создание и развертывание дампа 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Скрипт сохраняем в папку /usr/bin под любым угодным вам именем и делаем исполняемым (sudo chmod +x). Я использовал fake_sendmail.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
Теперь все исходящие письма будут складываться в /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
пятница, 15 апреля 2011 г.
Шпоргалка по настройке хоста в Ubuntu
Никогда не запоминаю такие последовательности, особенно когда такое нужно делать раз в 2-3 месяца.
воскресенье, 9 января 2011 г.
Настройка окружения: phpUnit
суббота, 1 января 2011 г.
Описание окружения
В качестве IDE - PhpStorm.
Пишем на PHP (PHP 5.5) + Zend Framework v1/v2.
СУВ: git + gitosis (хостимся на своем сервере).
БД: MySQL, PostgreSQL redis.
Инструменты: memcache, PhpUnit, Codeception, Symfony, xDebug, APC, pivotaltracker.
Недавно отказались от eAccelerator (глючил с open_basedir) на офф. сайте есть патч, но это не серьезно (не серьезно, когда продашкен упал спустя 2 недели без видимых причин).
Стандарты кодирования от Zend
Сервер
PHP 5.4 (or more stable) + pcntl + pcre + mb + mcrypt + gd + curlnginx + php-fpm
MySQL 5.5 (or more stable)
memcached (php-memcache) (any stable)
phpMyAdmin (any stable)
git (any stable)
APC (any stable)
Рабочее место
Ubuntu 14.04PHP 5.5 (or more stable) + pcntl + pcre + mb + mcrypt + gd + curl
apache2 + mod_php
MySQL 5.5 (or more stable)
memcached (php-memcache) (any stable)
phpMyAdmin (any stable)
git (any stable)
APC (any stable)
xDebug (any stable)
PhpStorm (any stable)
SmartGit (free version!)