Показаны сообщения с ярлыком окружение. Показать все сообщения
Показаны сообщения с ярлыком окружение. Показать все сообщения

вторник, 11 августа 2015 г.

Docker для PHP Разработчка. Часть 2 - Практическая.

Давайте создадим изолированно приложение. Используя Docker создадим PHP приложение, которое будет доступно через nginx web-сервер и общаться с MySQL БД.

понедельник, 10 августа 2015 г.

Docker для PHP Разработчка. Часть 1 - Теоретическая.

Навеяно этим Docker for PHP Developers и Run a Symfony application using Docker and docker-compose. 

Первое, что приходит на ум, если говорить о виртуализации локальных окружений - Vagrant. Vagrant - это, согласно официальной документации, утилита, для создания и конфгурирования легковесных, легко воспроизводимых и портативных дев окружений. В основном Vagrant поможет вам создать витруальную машину с уникальной комбинацией ПО, сконигурированного индивидуально для каждого проекта. Этот подход предлагает решить 3 вещи:
  1. Vagrant изолирует окружение для избежания конфликтов версий ПО.
  2. Vagrant сохраняет конфигурации и версии одинаковые для каждого члена команды.
  3. Vagrant можно настроить максимально похожим к продакшен окружению.
Но, у Vagrant есть большой недостаток - он эмулирует аппаратную часть.

пятница, 22 августа 2014 г.

Подключение к БД MySQL по локальной сети

По-умолчанию к mysql серверу можно подключить только с локального хоста. Поэтому, первое, что нужно сделать - сказать mysql слушать всю сеть (для безопаностилучше укаать не всю сеть, а только локальную), для этого изменим параметр bind-address на 0.0.0.0 в /etc/mysql/my.cnf
# 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)

В своем work flow мы используем Ubuntu 12.04. По-умолчанию при развертывании рабочего места на это версии Ubuntu ставится PHP 5.3.10. Здесь я расскажу как безболезненно обновиться до 5.4.19 (на самом деле до любой стабильной 5.4, просто на текущий момент это 19) Итак, есть замечательный Ondrej :) которы собирает установочные пакеты (ну или как это называется) для Ubuntu. Нужно всего лишь добавить с свою систему его источник, и обновиться.
# 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 г.

Размер папки из консоли

du -hsx /usr/home/natan
du -h /* --max-depth=0

Создание ссылок на файлы

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
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

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

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

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

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

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

Настройка окружения: phpUnit

Перечитал много статей о том насколько хорошо писать тесты и какие они вообще бывают, но не нашел ни одного поста о том как настраивать окружение. Здесь расскажу как настроить окружение phpUnit (+ubuntu+NetBeans).

суббота, 1 января 2011 г.

Описание окружения

Вот уже c 2011 года мы работаем на Ubuntu (начинали с 10.04, сейчас уже 14.04) - чему безумно рады.
В качестве 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 + curl
nginx + php-fpm
MySQL 5.5 (or more stable)
memcached (php-memcache) (any stable)
phpMyAdmin (any stable)
git (any stable)
APC (any stable)

Рабочее место

Ubuntu 14.04
PHP 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!)

Итак, настройка рабочего места программиста..