Пингвин-вебмастер

 | 12.22

Мой Компьютер, №22 (526), 20.10.2008

Не так давно я сделал очень решительный шаг — окончательно отправил в небытие «форточки» на своем домашнем компе. Основной причиной было то, что я завязал с программированием на Delphi и полностью переключился на веб-разработку. Поскольку в игры я играю нечасто (да и под Linux игр уже немало), то в Windows меня больше ничего не держало.

Внимание свое я обратил на дистрибутив Ubuntu, о котором так много говорят в последние два года. И не пожалел, установив его себе.

С офисными и мультимедийными приложениями вопросов не было. А вот что Linux может предложить веб-разработчику? Погуглив и полазив по форумам, я пересмотрел довольно много разнообразного ПО и выбрал, на мой взгляд, самое удобное.

Удаленные файлы

Множество php-редакторов как под Windows, так и под Linux поддерживают работу с файлами через ftp. Как правило, редакторы работают по ftp так: файл скачивается с сервера, помещался во временную папку, а при сохранении заливался обратно на сервер. Но Линукс не был бы Линуксом, если бы в нем не присутствовало более элегантное и удобное решение.

Одной из особенностью этой ОС является поддержка множества файловых систем и удобная работа с ними путем монтирования их всех в единую древовидную структуру. Существует проект FUSE, который позволяет монтировать не только физически существующие на носителях системы, но и системы виртуальные (см. МК №1 (432) за 2007 год).

На основе FUSE создано множество утилит для монтирования (в т.ч. и хорошо зарекомендовавшая себя ntfs-3g, монтирующая ntfs-разделы в r/w режиме). Среди них я нашел очень полезную и удобную curlftpfs, позволяющую монтировать содержимое ftp-серверов.

Данная утилита доступна в дистрибутиве Ubuntu 8.04:

cyberadmin cyberadmin ~: sudo apt-get install curlftpfs

Монтирование осуществляется следующим способом:

curlftpfs -o allow_other ftp://user:[email protected]/path_to_folder/ /path/to/mount/point/

Например, для монтирования содержимого папки /public_html/ на сервере ftp://myhosting.com/ с логином my и паролем mypass надо ввести:

cyberadmin cyberadmin ~: sudo curlftpfs -o allow_other ftp://my:[email protected]/public_html/ /web/mysite/

ВНИМАНИЕ ! ЕСЛИ В ЛОГИНЕ ВСТРЕЧАЕТСЯ СИМВОЛ @, ЕГО СЛЕДУЕТ ЗАМЕНИТЬ НА %40!

С монтированием samba-ресурсов проблем вообще нет — в Ubuntu есть поддержка файловой системы smbfs, установить которую можно командой cyberadmin cyberadmin ~: sudo apt-get install smbfs.

Монтирование осуществляется следующим образом:

cyberadmin cyberadmin ~: sudo smbmount //сервер/ресурс /path/to/mount/point/ -o username=логин,password=пароль,uid=1000,mask=000

Например, у меня дома стоит сервер для разработки под FC4. Я создал Samba-ресурс root$, соответствующий всей файловой системе сервера, и разрешил к нему доступ только root’у. Монтирую я его следующей командой:

cyberadmin cyberadmin ~: sudo smbmount //192.168.222.5/root$ /web/devel/ -o username=root,password=пароль_root,uid=1000,mask=000

Для удобства можно создать специальную папку, в подкаталоги которой монтировать отдельные проекты, с которыми Вы работаете. Например, у меня все проекты лежат в /web. В этой же папке лежат два скрипта:

mount.sh

smbmount //192.168.222.5/root$ /web/devel -o username=root,password=пароль_root,uid=1000,mask=000

curlftpfs -o allow_other ftp://doomer%40rock-kingdom.com.ua:

парольфтп[email protected] /web/rockkin_devel

curlftpfs -o allow_other ftp://rockkin:парольфтп[email protected]/

public_html /web/rockkin_prod

# и т.д.

umount.sh

smbumount /web/devel

umount /web/rockkin_devel

umount /web/rockkin_prod

# и т.д.

Когда мне надо работать с проектами, я запускаю sudo /web/mount.sh, после работы с ними — sudo /web/umount.sh. Аналогично можно добавить запуск скрипта mount.sh в rc.local для автоматического монтирования при старте системы (как альтернативу fstab).

Поддержка ssh

С поддержкой ssh в Линуксе куда проще, чем в Windows. В то время как даже с Vista поставляется только telnet клиент, и под Windows необходимо устанавливать сторонние утилиты вроде PuttY, в Linux, еще с самых первых версий ОС, была встроенная команда ssh. С ней работать предельно просто:

cyberadmin cyberadmin ~: ssh имя_пользователя@хост

Далее программа запросит пароль, вводим его — и мы в удаленной консоли. Теперь можно chmod’ить файлы, копировать их, архивировать и делать другие операции, которые надо выполнять непосредственно на сервере.

Редактор

Для Linux существует множество php-редакторов — начиная от простых, имеющих не намного большие возможности чем Ubuntu’овские аналоги «Блокнота» (gedit, kate, vim), и заканчивая целыми студиями (Eclipse+PHP-Eclipse, Zend Studio, Net Beans IDE), содержащими оптимизаторы кода, встроенные отладчики и прочую ерунду, которая большинству разработчиков совершенно не нужна.

Обе «крайности» были мною отвергнуты. Первая группа редакторов — за излишнюю простоту и отсутствие необходимых возможностей, вторая — наоборот, за излишнюю громоздкость.

Zend Studio и Net Beans IDE вообще представляют собой Java-приложении и на моем ПК порядочно тормозили.

Мне хотелось найти нечто промежуточное между простенькими редакторами и мощными, хотелось редактор, похожий на уже освоенные мною PHP Expert Editor или PHP Designer. И я нашел такой редактор.

Итак, дамы и господа программисты, я представляю нам гвоздь нашей программы — ActiveState Komodo Edit 4. Заранее предупреждаю, чтобы Вы не путали его с Komodo IDE от той же фирмы. В отличие от своего старшего собрата, Komodo Edit совершенно бесплатный.

Получить Komodo Edit можно на сайте ActiveState: http://www.activestate.com/Products/komodo_ide/komodo_edit.mhtml. Сайт автоматически определяет Вашу ОС и предлагает скачать соответствующую версию программы. Если же автоматическое определение ОС не удалось, то можно нажать ссылку view all binaries и выбрать нужную версию вручную.

Прямая ссылка на последнюю версию для Linux: http://downloads.activestate.com/Komodo/releases/4.4.1/Komodo-Edit-4.4.1-1774-linux-libcpp6-x86.tar.gz (33.9 Мб).

Весьма интересно, что под Linux программа поставляется не в виде исходных кодов или пакета, а имеет собственный installer. Для установки следует распаковать содержимое и запустить install.sh от имени суперпользователя. Далее установка проходит при помощи интерактивного Wizard’a и особых сложностей в ней нет. После установки Komodo Edit появляется в меню Приложения > Программирование.

Продукт компании ActiveState заслуживает для описания всех своих возможностей и преимуществ целой статьи, поэтому здесь я рассмотрю только основные «изюминки», делающие редактор практически уникальным среди подобного ему ПО.

  1. Поддержка подсветки синтаксиса для более чем 100 языков программирования и разметки. Среди них как используемые в веб-разработке языки (PHP, HTML, Perl, JavaScript, XHTML, XML, JSON, VBScript, CSS и даже Smarty!), так и другие (Basic, Pascal, C, Java…)
  2. Расширенная поддержка проектов. В проекты можно добавлять как локальные, так и удаленные файлы (через протокол ftp). Но изюминкой является поддержка «живых» папок. Содержимое «живой» папки импортируется автоматически, и автоматически обновляется (рис. 1).
  3. В настройках можно задать, файлы с какими расширениями следует импортировать, а с какими — нет. Таким образом проект можно создать буквально за несколько кликов мышкой, без добавления в него файлов вручную!
  4. Удобное автодополнение тэгов. Когда вы начинаете закрывать тэг, Komodo автоматически анализирует предшествующий код, и пытается определить, какой же открытый тэг Вы закрываете. Варианты закрывающих тэгов отображаются в выпадающем списке. Так же в Komodo превосходно реализовано автодополнение имен и значений параметров в html-тэгах и даже в CSS.
  5. Мощная поисковая система. Komodo позволяет вести поиск с использованием регулярных выражений, и не только в текущем файле, а и во всех открытых файлах, в отдельных каталогах и даже во всем проекте (рис. 2)! В режиме мульти-замены выводится список всех найденных файлов с количеством совпадений и для каждого файла можно посмотреть подвергаемые замене участки (рис. 3).
  6. Встроенный синтаксический анализатор php. Если в какой-то строке ошибка, она подчеркивается красной волнистой линией, при наведении на нее появляется всплывающая подсказка с описанием ошибки (точно таким же, какое бы выдал php).
  7. поддержка расширений (как Firefox). Официальная коллекция аддонов находится по адресу http://community.activestate.com/addons/.

Рис. 1. «Живой» импорт файлов проекта в Komodo

Рис. 2. Не каждый редактор поддерживает поиск регулярных выражний

Рис. 3. Поиск по всему проекту полезен при глобальных изменениях

В следующей статье мы продолжим рассматривать Линукс-софт для разработки и уделим внимание ПО для управления базами данных MySQL и браузерной надстройке FireBug, упрощающей разработку AJAX-приложений.

Linux forever!

ЧТО НУЖНО ВЕБ-РАЗРАБОТЧИКУ?

• доступ к удаленным файлам на сервере. Обычно он осуществляется по ftp. При наличии корпоративного сервера разработки на нем могут использовать samba-ресурсы. (Подробнее о методе — в статье С. Яремчука «Что такое SAMBA»? (http://www.mycomp.com.ua/text/4311)). Наконец, файлы могут заливаться через svn или cvs.

• удобный редактор. Набирать код можно и в vi, но в специализированном софте с подсветкой синтаксиса, поддержкой проектов, мощными поисковыми возможностями, инспектором кода и автодополнением тэгов намного удобнее.

• веб-разработка сопряжена с работой с СУБД (в основном с MySQL). Так что понадобится также mysql менеджер для снятия/восстановления бекапов и прогона запросов.

• средства для отладки javaScript, анализа html-документов, их разбития на элементы (например, из одного сверстанного файла сделать несколько шаблонов для Smarty), трассировки POST и GET запросов.

Иногда может понадобиться консоль на сервере. Следовательно, нужен и ssh-клиент.

CyberAdmin

Robo User
Web-droid editor

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *