Поиск по этому блогу

суббота, 6 мая 2017 г.

Монтирование нескольких каталогов в одну точку

Периодически возникает необходимость использования файлов модуля в каталоге с основной программой.
До этого использовал симлинки или mount -o bind.
Но такой способ оказался крайне неудобным, поскольку файлов в модуле много, они все сильно вложенные, так что приходится прописывать каждый файл... В общем, геморройно это.
Сегодня нашёл на просторах интернета интересный способ монтирования в одну точку и написал для этого такой скриптик, назовём его union_mount:

#!/usr/bin/env bash

# Union mount two directories into one mount point

dir1=$1
dir2=$2
result_mount_point=$3

if [[ (-z $dir1) || (-z $dir2) || (-z $result_mount_point) ]]; then
echo "Usage: $0 dir1 dir2 result_mount_point"
exit 1;
fi

sudo mount -t aufs -o br=${dir1}=rw:${dir2}=rw none $result_mount_point

exit 0;

Он разработан для двух каталогов, но ничто не мешает добавить сколько нужно.

Как он работает. Допустим, есть каталог A: /path1/Afile.txt, каталог B: /path2/Bfile.txt и каталог C: /path3 (рабочий каталог проекта)
Вызываем union_mount /path1 /path2 /path3
В результате получаем: /path3/{Afile.txt,Bfile.txt}, т.е., содержимое точки монтирования не "перетирается" последним смонтированным, а объединяется с предыдущим.

Надеюсь, идея понятна.

суббота, 11 марта 2017 г.

Конфиг xdebug

1) Узнаём, где у нас лежит xdebug.so, чтобы потом вставить этот путь в параметр zend_extension: find / -name xdebug.so
2) sudo vim /etc/php.d/15-xdebug.ini

zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=1
xdebug.remote_connect_back=1

xdebug.remote_handler=dbgp
xdebug.remote_port=9005

xdebug.var_display_max_depth = -1
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1

xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p

Я ещё добавляю xdebug.remote_autostart=1, хоть это немного и замедляет работу php, для разработки такое замедление некритично. Если ты, конечно, не используешь virtualbox filesystem. Там всё печально со скоростью, но это уже другая история.
Без автостарта нужно добавлять параметр XDEBUG_SESSION_START=idekey к запросу в браузере.

http://telegra.ph/XDEBUG-03-11