Ruslan Brest, rb.labtodo.com

Разработка ПО, сайтов и веб-сервисов. CodeIgniter, PHP, MySQL, W3C CSS/XHTML, MaxSite CMS, OpenCart, PrestaShop

Linux

Подписаться на эту рубрику по RSS

Opencart module extract (Linux shell script)

Опубликовано: 5 апреля 2012.
Автор: Ruslan Brest.

Рубрика: Web development | Linux | OpenCart.
Метки: .

Mодули для Opencart обычно используют одно и то же имя для контроллеров, моделей, view и языковых файлов, поэтому этот скрипт может облегчить задачу по поиску и извлечению всех файлов модуля из рабочей копии магазина с сохранением всей структуры каталогов.

Навеяно модулем http://opencartforum.ru/topic/8272-module-extract-извлечение-модулей/, но мне показалось, что линуксоидам будет проще и удобней одной строкой в шелле это делать (локально или на сервере), без установки модуля в Opencart (установить, разрешить, зайти, найти, скопировать...)

Ни я, ни тот модуль не занимаются анализом PHP-кода и действительно полным выковыриванием всех используемых модулем файлов. Так что результат, конечно, не гарантирует полное и точное извлечение. Но будет работать в подавляющем большинстве случаев.

Далее...

Как облегчить процесс публикации изменений на сервер

Опубликовано: 18 декабря 2011.
Автор: Ruslan Brest.

Метки: .

[Git, FTP] Для FTP и shared hosting (без SSH доступа и полноценной консоли)

Рекомендую готовый скрипт: Extract changed files from Git and prepare a deployment (Bash script).

По команде, в которой указывается диапазон коммитов, создаёт папку .deployment с готовым деревом и изменившимися файлами. И список удаленных файлов, которые придётся удалить вручную (если пользуетесь FTP клиентом) или через SSH на сервере (если есть такая возможность).

[Git, SSH] При полноценном хостинге (с SSH доступом)

Судя по всему, у меня сделано один в один как в http://habrahabr.ru/blogs/Git/127213/, поэтому не вижу смысла описывать то же самое. У меня немного отличается структура папок проектов, но это несущественно. Суть проста - на сервере лежит как Git-репозиторий, так и обычная рабочая копия (на которую смотрит веб-сервер). Точнее, на одну из папок репозитория - public_html. Потому что в репозитории хранится ещё документация, служебные скрипты, тестовые и чистые SQL дампы.

И при новых коммитах от разработчиков (git push) репозиторий по хуку делает автоматически две операции - обновление локальной серверной копии (git pull origin dev) и копирование набора файлов из config_sets (здесь у меня хранятся файлы, специфические для разных конфигураций: для одного разработчика, для другого, для dev2-windows, dev2-linux, для production1, production-dev и так далее, если надо ещё больше). Понятна идея? Требуемый набор конфигов просто перезаписывается поверх того, что есть в репозитории (а туда могут попасть и локальные конфиги девелоперов, если они не исключены через .gitignore), и получается чистая и настроенная конфигурация. Быстро, без чек-листов, ручных проверок-исправлений и условий-ветвлений с множеством девелоперских конфигов (зачем они на сервере?).

Естественно, на сервере настроено использование SSH-ключей, чтобы избавиться от необходимоси ввода пароля после git pull.

Есть, конечно, мелкие особенности - за неделю мы уже наступили на пару граблей и может это стоило бы описать.

См. также

[PHP, FTP] Web based FTP Sync Tool written in PHP. Есть возможность запрещать синхронизацию для отдельных файлов/папок.

Оказывается, Ubuntu можно обновить до следующего релиза через CD

Опубликовано: 10 ноября 2011.
Автор: Ruslan Brest.

Рубрика: Linux.
Метки: .

Не знал, для меня это оказалось приятным сюрпризом. Апгрейд до следующего релиза через сеть происходит очень долго - несколько утомительных часов, насколько помню. С возможными вопросами и проблемами посреди процесса. И это слабо зависит от скорости сети. Я обновлялся ближе к вечеру и пришлось на ночь ноутбук оставить докачивать и устанавливать, запретив впадать в спячку.

Через CD тоже процесс небыстрый, но гораздо меньше времени занимает. Так что советую попробовать ISO образ скачать, записать на болванку, и с неё уже обновляться.

Цветовые схемы для Geany

Опубликовано: 1 октября 2011.
Автор: Ruslan Brest.

Рубрика: Web development | Linux.
Метки: .

Одновременно с появлением вчера шрифтов Ubuntu Mono и Ubuntu Condensed вспомнил, что хотел ещё цвета в Geany настроить.

В итоге обзавёлся десятком (или даже двумя) новых светлых и тёмных тем Далее...

Вывод Git branch в подсказку командной строки

Опубликовано: 19 сентября 2011.
Автор: Ruslan Brest.

Рубрика: Web development | Howto | Linux | Git, SVN.
Метки: .

При активном использовании Git-а и переключений между разными ветками часто хочется видеть, в какой ветке находишься. Удобно добавить вывод названия branch-а в подсказку командной строки bash:

rb@rb-msi:~/projects/opencart-a4u (master)$ 

Далее...

Первичные настройки Git

Опубликовано: 11 сентября 2011.
Автор: Ruslan Brest.

Рубрика: Web development | Howto | Linux | Git, SVN.
Метки: , .

Представляемся надолго, чтобы коммиты не были ничейными:

git config --global user.name "Your Name Comes Here"
git config --global user.email you@yourdomain.example.com

Облегчаем визуальное восприятие изменений:

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global color.ui auto

Не забываем про заплетающиеся пальцы (вы способны быстро набрать "status" без опечаток?! Раз 50 в день?!?! Ого!):

git config --global alias.st status
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.logd 'log --oneline --graph --decorate'
git config --global alias.logst 'log --stat=140,100'
git config --global alias.bav 'branch -av'

И не забывайте про существование возможности авторизоваться на гит-сервере с репозиториями с помощью своего публичного SSH ключа: пара генерируется один раз, публичный ключ раздаёте тем, кто должен вас узнавать и пускать без стука, и забываете про ввод паролей.

Если нужен gitk, то перед вторым запуском (первый под Линуксом нужен, чтобы слегка удивиться, проморгаться и взбодриться) исправьте в ~/.gitk интерфейсные шрифты:

set mainfont {{andale mono} 9}
set textfont {{andale mono} 9}
set uifont {clean 10 bold}
set tabstop 4

Хотя это в принципе и через GUI сделать можно.

Eclipse PDT и Ubuntu

Опубликовано: 24 августа 2011.
Автор: Ruslan Brest.

Рубрика: Web development | Linux.
Метки: , , .

Eclipse - монстрообразинко. Шевелится неторопливо, интерфейс разлапистый и на любителя. Сперва поставил полный (sudo apt-get install eclipse), а из него - последний доступный PDT (3.x.x) через Help - Install new software. Получил постоянные ошибки при попытках открыть PHP файлы, доустановил какой-то WST (на него были намёки в сообщениях об ошибках). Никаких изменений в лучшую сторону.

Вчера не выдержал, удалил всё и попробовал ограничиться малым: оставил только минимум эклипса (sudo apt-get remove eclipse && sudo apt-get autoremove && sudo apt-get install eclipse-platform), а PDT взял с Galileo репозитория (там только 2.x.x какая-то версия доступна, слово Galileo присутствовало на заставке Эклипса при запуске, хотя второй репозиторий не сам же собой появился). Наконец-то после всех его рестартов увидел Эклипс в работоспособном состоянии. Хотя на некоторых PHP файлах его всё равно плющит (например, он не может открыть index.php из приложения Yii фреймворка).

Поживёт пока. Знакомство с Yii Framework пока только добавляет плюсов к впечатлениям о CodeIgniter. С Eclipse пользоваться и изучать Yii и всю его перенавороченную иерархию странностей будет полегче, надеюсь.

Бекап, контроль изменений и откат на стабильные конфигурации "/etc" в Linux'е с помощью Git

Опубликовано: 13 августа 2011.
Автор: Ruslan Brest.

Рубрика: Howto | Linux | Git, SVN.

Как говорят, если вас посетила гениальная мысль -- в линукс-сообществе это уже давно реализовано или создаётся.

Решил добавить /etc в Git-репозиторий, чтобы получить все плюшки контроля версий. И, разумеется, оказалось, что я не слишком оригинален :)

Более подробно для интересующихся и сомневающихся это уже подробно описано ранее Антоном Чернышовым в статье Управление каталогом /etc с использованием tar и git.

См. также:

Распробовал Git

Опубликовано: 8 августа 2011.
Автор: Ruslan Brest.

Рубрика: Web development | Linux | Git, SVN.

Распробовал Git: он действительно оказался во многом гораздо удобнее, чем SVN. В первый день мне не очень понравилась большая, чем в Subversion, атомарность действий и необходимость каждый раз добавлять изменённые файлы в коммит. Я понимал, что это сулит и чем может быть полезно, но сперва показалось неудобным: ты машина — ты и следи/добавляй, раз всё известно, зачем мне лишняя рутина? Позже у коммита обнаружился ключ -a вдобавок к "git add .", так что по этому поводу ворчать стало некуда. Ну а потом всё-таки понравился этот мелочный контроль (можно некоторые файлы держать у себя изменёнными для экспериментов и не пускать их в репозиторий).

Что нравится и заметно в первую очередь в Git после SVN, так это:

Далее...

Bash & Tar: скрипт инкрементального бекапа с помощь after-date

Опубликовано: 19 июля 2011.
Автор: Ruslan Brest.

Рубрика: Howto | Linux.
Метки: .

Подробная статья о том, как весь этот процесс обустраивается: http://ilab.me/howto/bash-tar-vps-backup/

Я обычно делал гораздо проще (бекап по списку, который берётся из файла), без инкрементальных заморочек: http://baadoo.livejournal.com/25398.html.

Но только потому, что архивы были невелики и усложнять себе жизнь не было мотивов.