- Ubuntu Web Apps — Делаем из сайтов приложения
- Ubuntu App Showdown
- Установка Unity Web Apps
- Лог файлы Linux по порядку
- Основные лог файлы
- И другие журналы
- Чем просматривать — lnav
- Linux для веб-разработчика. Установка debian, nginx, php-fpm, mysql, nodejs, open-ssl, настройка программ и утилит
- Общая схема работы.
- Установка VirtualBox и Linux Debian 8
- Установка ssh-сервера на debian и ssh-клиента Putty в Windows
- Установка WinSCP и sftp net drive
- Установка nginx, php-fpm, настройка конфига nginx и запуск первого сайта
- Установка и настройка Mysql
- Установка и настройка dbForge Studio for Mysql
- Установка и настройка nodejs
- Установка git
- Вместо заключения
Ubuntu Web Apps — Делаем из сайтов приложения
Разработчики Ubuntu опять порадовали очень интересным приложением. Программа Unity Web Apps делает из сайтов клиенты для этих же сайтов. Звучит немного кривовато, но я не знаю как правильно описать данную новинку.
Суть в следующем. Если вы пользуетесь каким-либо сервисом, будь то социальная сеть, либо новостной сайт, либо какая-то другая страница (которая поддерживается Unity Web Apps) вы без проблем можете сделать себе клиент для пользования данным сайтом. Большой плюс в том, что получившийся клиент полностью интегрируется в Unity: в HUD, в апплет уведомлений, в звуковое меню, у клиента появляется свой квиклист и так далее.
- Управлять воспроизведением музыки с Last.Fm будет возможно через звуковое меню
- Все обновления в Facebook будут появляться в апплете уведомлений
- Оповещения с сайта BBC News будут отображаться с помощью Notify-OSD
- Вы сможете искать в Google Docs прямо из Dash
И это далеко не все возможные примеры. Предлагаю просто посмотреть демонстрацию Unity Web Apps:
А знаете, что самое приятное? Данные функции опциональны. Вы сами решаете интегрировать ли сайт в Unity, либо продолжать пользоваться им в обычном режиме. При заходе на поддерживаемый сайт вам просто будет задан вопрос по поводу интеграции, а решать как быть уже вам. Подтверждение интеграции в Chromium:
И в Firefox:
В данный момент Unity Web Apps работает только в этих двух браузерах.
Ubuntu App Showdown
Всё вроде бы хорошо, но вы не находите сходство Unity Web Apps и Fogger с GWoffice, которые участвуют в Ubuntu App Showdown? Немного смахивает на то, что идеи «чуть-чуть» украли. Надеюсь потом будут известны подробности этой ситуации, ибо не слишком хорошо получается.
Но стоит отметить, что у Unity Web Apps более глубокая интеграция в Unity, чем у приложений конкурса Ubuntu App Showdown.
Установка Unity Web Apps
Как пишут различные источники, Unity Web Apps доступен как для Ubuntu 12.10, так и для 12.04. Но вот что то я попытался установить на 12.04, но ничего не работает. Плагины для браузеров установились, куча пакетов тоже, а подтверждение интеграции не появляется.
Можете сами попробовать установить. Просто воспользуйтесь данными командами:
Источник
Лог файлы Linux по порядку
Невозможно представить себе пользователя и администратора сервера, или даже рабочей станции на основе Linux, который никогда не читал лог файлы. Операционная система и работающие приложения постоянно создают различные типы сообщений, которые регистрируются в различных файлах журналов. Умение определить нужный файл журнала и что искать в нем поможет существенно сэкономить время и быстрее устранить ошибку.
Журналирование является основным источником информации о работе системы и ее ошибках. В этом кратком руководстве рассмотрим основные аспекты журналирования операционной системы, структуру каталогов, программы для чтения и обзора логов.
Основные лог файлы
Все файлы журналов, можно отнести к одной из следующих категорий:
Большинство же лог файлов содержится в директории /var/log .
- /var/log/syslog или /var/log/messages содержит глобальный системный журнал, в котором пишутся сообщения с момента запуска системы, от ядра Linux, различных служб, обнаруженных устройствах, сетевых интерфейсов и много другого.
- /var/log/auth.log или /var/log/secure — информация об авторизации пользователей, включая удачные и неудачные попытки входа в систему, а также задействованные механизмы аутентификации.
- /var/log/dmesg — драйвера устройств. Одноименной командой можно просмотреть вывод содержимого файла. Размер журнала ограничен, когда файл достигнет своего предела, старые сообщения будут перезаписаны более новыми. Задав ключ —level= можно отфильтровать вывод по критерию значимости.
- /var/log/alternatives.log — Вывод программы update-alternatives , в котором находятся символические ссылки на команды или библиотеки по умолчанию.
- /var/log/anaconda.log — Записи, зарегистрированные во время установки системы.
- /var/log/audit — Записи, созданные службой аудита auditd .
- /var/log/boot.log — Информация, которая пишется при загрузке операционной системы.
- /var/log/cron — Отчет службы crond об исполняемых командах и сообщения от самих команд.
- /var/log/cups — Все, что связано с печатью и принтерами.
- /var/log/faillog — Неудачные попытки входа в систему. Очень полезно при проверке угроз в системе безопасности, хакерских атаках, попыток взлома методом перебора. Прочитать содержимое можно с помощью команды faillog .
- var/log/kern.log — Журнал содержит сообщения от ядра и предупреждения, которые могут быть полезны при устранении ошибок пользовательских модулей встроенных в ядро.
- /var/log/maillog/ или /var/log/mail.log — Журнал почтового сервера, используемого на ОС.
- /var/log/pm-powersave.log — Сообщения службы экономии заряда батареи.
- /var/log/samba/ — Логи файлового сервера Samba , который используется для доступа к общим папкам Windows и предоставления доступа пользователям Windows к общим папкам Linux.
- /var/log/spooler — Для представителей старой школы, содержит сообщения USENET. Чаще всего бывает пустым и заброшенным.
- /var/log/Xorg.0.log — Логи X сервера. Чаще всего бесполезны, но если в них есть строки начинающиеся с EE, то следует обратить на них внимание.
Для каждого дистрибутива будет отдельный журнал менеджера пакетов.
- /var/log/yum.log — Для программ установленных с помощью Yum в RedHat Linux.
- /var/log/emerge.log — Для ebuild -ов установленных из Portage с помощью emerge в Gentoo Linux.
- /var/log/dpkg.log — Для программ установленных с помощью dpkg в Debian Linux и всем семействе родственных дистрибутивах.
И немного бинарных журналов учета пользовательских сессий.
- /var/log/lastlog — Последняя сессия пользователей. Прочитать можно командой last .
- /var/log/tallylog — Аудит неудачных попыток входа в систему. Вывод на экран с помощью утилиты pam_tally2 .
- /var/log/btmp — Еже один журнал записи неудачных попыток входа в систему. Просто так, на всякий случай, если вы еще не догадались где следует искать следы активности взломщиков.
- /var/log/utmp — Список входов пользователей в систему на данный момент.
- /var/log/wtmp — Еще один журнал записи входа пользователей в систему. Вывод на экран командой utmpdump .
И другие журналы
Так как операционная система, даже такая замечательная как Linux, сама по себе никакой ощутимой пользы не несет в себе, то скорее всего на сервере или рабочей станции будет крутится база данных, веб сервер, разнообразные приложения. Каждое приложения или служба может иметь свой собственный файл или каталог журналов событий и ошибок. Всех их естественно невозможно перечислить, лишь некоторые.
- /var/log/mysql/ — Лог базы данных MySQL.
- /var/log/httpd/ или /var/log/apache2/ — Лог веб сервера Apache, журнал доступа находится в access_log , а ошибки — в error_log .
- /var/log/lighthttpd/ — Лог веб сервера lighttpd.
В домашнем каталоге пользователя могут находится журналы графических приложений, DE.
/.xsession-errors — Вывод stderr графических приложений X11.
/.xfce4-session.verbose-log — Сообщения рабочего стола XFCE4.
Чем просматривать — lnav
Почти все знают об утилите less и команде tail -f . Также для этих целей сгодится редактор vim и файловый менеджер Midnight Commander. У всех есть свои недостатки: less неважно обрабатывает журналы с длинными строками, принимая их за бинарники. Midnight Commander годится только для беглого просмотра, когда нет необходимости искать по сложному шаблону и переходить помногу взад и вперед между совпадениями. Редактор vim понимает и подсвечивает синтаксис множества форматов, но если журнал часто обновляется, то появляются отвлекающие внимания сообщения об изменениях в файле. Впрочем это легко можно обойти с помощью .
Недавно я обнаружил еще одну годную и многообещающую, но слегка еще сыроватую, утилиту — lnav, в расшифровке Log File Navigator.
Установка пакета как обычно одной командой.
Навигатор журналов lnav понимает ряд форматов файлов.
- Access_log веб сервера.
- CUPS page_log
- Syslog
- glog
- dpkg.log
- strace
- Произвольные записи с временными отметками
- gzip, bzip
- Журнал VMWare ESXi/vCenter
Что в данном случае означает понимание форматов файлов? Фокус в том, что lnav больше чем утилита для просмотра текстовых файлов. Программа умеет кое что еще. Можно открывать несколько файлов сразу и переключаться между ними.
Программа умеет напрямую открывать архивный файл.
Показывает гистограмму информативных сообщений, предупреждений и ошибок, если нажать клавишу . Это с моего syslog-а.
Кроме этого поддерживается подсветка синтаксиса, дополнение по табу и разные полезности в статусной строке. К недостаткам можно отнести нестабильность поведения и зависания. Надеюсь lnav будет активно развиваться, очень полезная программа на мой взгляд.
Источник
Linux для веб-разработчика. Установка debian, nginx, php-fpm, mysql, nodejs, open-ssl, настройка программ и утилит
Linux — отличная система для веб-разработки. Она хорошо настраивается, требует меньше ресурсов и многие вещи сделать проще, чем в Windows. Но что делать, если мы не хотим отказываться от привычных нам окошек, программ, утилит, которые предоставляет хорошо знакомая Windows? Можно поставить виртуальную машину с Linux на борту, установить все нужные программы, настроить окружение в Windows для работы с виртуалкой через sftp и работать, слушая при этом музыку через привычный аудиопрогрыватель. В статье показано, как можно настроить работу для тех, кто мало знаком с Linux и все еще думает, что это сложно и непонятно.
Общая схема работы.
Наша работа будет построена так: основная ОС — Windows, на ней виртуальная машина, в которой установлена Linux Debian 8. В Debian развернуто окружение для веб-разработки: nginx, php, mysql, nodejs. Никакого графического интерфейса, он нам не понадобится, только терминал. В Windows — ssh-клиент, sftp-клиент и настроен редактор кода для работы. Далее описываю всю схему более подробно. Примеры приведены для Windows 7 и Linux Debian 8.
Установка VirtualBox и Linux Debian 8
Дистрибутив debian скачиваем с официального сайта здесь — https://www.debian.org/distrib/, VirtualBox здесь — https://www.virtualbox.org/. Дальше нужно создать новую виртуальную машину и установить на нее debian. Не буду расписывать подробно, только основные моменты, которые использовал у себя:
- 1. Название — debian 8.
- 2. Жесткий диск .vdmk
- 3. Оперативная память — 1024 Мб
- 4. Система — предел загрузки цпу — 90%
- 5. Носители — добавить привод оптических дисков — выбираем наш образ
- 6. Сеть — тип подключения Сетевой мост
При установке debian выбираем пункт Install (просто Install). Установка самая обычная, затруднений быть не должно, большинство параметров оставляем по умолчанию. Создается суперпользователь root, для него создаем пароль (я задал root для удобства), и во время установки предлагается создать еще одного пользователя, назовем его developer.
Вот два пункта, которые я поменял за время установки
- 1. зеркало архива debian — поставил mirror.yandex.ru
- 2. Выбор ПО — снимаем все галки (все, что нам нужно, мы поставим сами)
На этом все, после перезагрузки система готова к работе, а мы к дальнейшей ее настройке.
Установка ssh-сервера на debian и ssh-клиента Putty в Windows
На самом деле установка Putty и работа с ним не обязательная часть. В виртуальной машине вполне можно работать и через консоль самой debian. Но Putty просто удобнее — это обычное Windows-приложение, мы можем в нем хранить настройки нескольких подключений, копировать команды из браузера и вставлять их в окно терминала и прочее.
Заходим в окно виртуальной машины и в терминале набираем команду su, вводим пароль root и готовимся установить openssh-сервер. Я пользуюсь aptitude («менеджер пакетов» в debian) вместо стандартного apt-get, поэтому сначала можно установить его а уже потом ssh-сервер
Все! Теперь, чтобы подключаться к терминалу debian из Windows, нам нужно знать только ip-адрес, присвоенный нашей системе. Набираем команду ifconfig и среди кучи строк ищем айпи, у меня, например, оказался 192.168.0.31. Дальше в настройках буду использовать его для примера. Теперь нам нужно скачать Putty здесь — http://www.putty.org/
Запустить его и создать новое подключение:
- 1. Host Name or IP address — 192.168.0.31
- 2. port — 22 (по умолчанию)
- 3. Saved Sessions — debian 8
- 4. Жмем кнопку Save
- 5. Жмем Open
- 6. В окошке «putty security alert» жмем «Yes»
Если все сделали правильно, откроется терминал с приглашением ввести имя пользователя и пароль. Больше окно debian в VirtualBox нам не понадобится.
Установка WinSCP и sftp net drive
WinSCP — это удобный файл-менеджер для работы по sftp, похож на Total Commander.
Качаем его здесь — https://winscp.net/eng/download.php
Создаем новое подключение с настройками:
- 1. Имя хоста — 192.168.0.31
- 2. Порт — 22
- 3. Имя пользователя — root
- 4. Пароль — root/li>
- 5. Жмем Сохранить
- 6. В ответ на запрос «Продолжить подключение к внешнему серверу и добавить ключ в кэш?» — жмем да
- 7. И наконец Войти
Чтобы можно было работать с файлами debian из привычного редактора, нужно установить sftp-драйвер.
Качаем здесь — https://www.nsoftware.com/netdrive/sftp/
В настройках вводим наш айпишник и запускаем. При этом у нас появится еще один диск, это и есть наша debian. Если при открытии мы попадаем в папку home и не можем подняться выше, нужно в настройках указать root directory «root folder on the Server — servers’s root folder» Теперь мы можем работать с файлами debian в любом редакторе кода.
Установка nginx, php-fpm, настройка конфига nginx и запуск первого сайта
Все, что мы делали до этого было подготовкой к самому интересному — непосредственному разворачиванию веб-сервера и php в debian. Установка выполняется двумя командами Все! Можно приступать к созданию нашего первого сайта в debian.
Небольшое отступление. Прежде чем запускать первый сайт, рекомендую установить тестовый редактор nano и замечательную программу tmux — что-то вроде оконного терминала. Дело в том, что можно вполне обойтись без них, файлы править в том же WinSCP, но, во-первых, иногда гораздо удобнее и быстрее сделать мелкие правки файлов прямо в консоли, а во-вторых, с самого начала привыкая работать в консоли linux, Вы сэкономите кучу времени в дальнейшем. Возможно, когда-то Вам придется работать с удаленными серверами, где будет только доступ по ssh и ничего больше. И скорее всего, этот момент наступит гораздо раньше, чем Вы предполагали. Подробности про nano и tmux расписывать не буду, легко гуглиться. Устанавливаются они так:
Перед созданием первого сайта хорошей практикой является создание отдельного пользователя для разработки, это будет созданный нами при установке developer, и отдельной папки под веб-проекты.
ВНИМАНИЕ: все дальнейшие операции в папке developer выполняются из пользователя developer, настройки конфигов nginx, php и прочих — от root-a. Желательно всегда работать под пользователем developer, а в root переключаться только для правки конфигов. В этой статье нам придется часто переключаться между пользователями, поэтому следите внимательно, с какими файлами Вы работаете. su переключает нас к пользователю root, su developer — к developer. Также для удобства можно завести 2 подключения в WinSCP — одно — от root-a, как мы и сделали, второе — от developer.
Для проектов создадим папку /home/developer/www, для логов — /home/developer/logs. В папке www создадим папку test.lc, а ней файл index.php с содержимым Все это делаем от имени developer.
Теперь нужно настроить конфиг виртуального хоста в nginx, подправить php.ini и запустить проект в браузере под Windows. Приступим (теперь делаем все от root-a) — создаем конфиг нового виртуального хоста и добавляем в него Уточняю — не стоит использовать этот конфиг в боевых условиях, он приведен только для примера разработки. Правильной настройкой конфигов nginx стоит заниматься специалистам в этой области 🙂
После этого нужно пофиксить cgi.fix_pathinfo=0 в файлике /etc/php5/fpm/php.ini и перезапустить nginx После этого в файле hosts в Windows добавляем строчку 192.168.0.31 test.lc и вводим в браузере http://test.lc/. Если все сделали правильно, то увидим строку «Hello, Debian 8» — все работает!
Установка и настройка Mysql
Следующим пунктом мы установим Mysql и подключимся к базе из нашего приложения. Зададим пароль для root — по привычке тоже root. Дальше мы создадим тестовую базу данных с одной табличкой, заполним ее данными и выведем в браузере ее содержимое.
Шаг 1. Создаем тестовую базу
Шаг 2. Создаем таблицу товаров (это одна команда)
Шаг 3. Заполняем таблицу данными
Шаг 4. Проверяем, что данных вставились успешно
Шаг 5. Выводим таблицу товаров на сайте. Для этого нужно заменить содержимое index.php следующим кодом
После всех этих действий обновляем страницу браузера и видим список наших товаров.
P.S. Хорошим тоном также считается создание новых пользователей Mysql под каждый проект, но для простоты и уменьшения кода мы этого не делали. На реальных проектах работать с базой от root-a не стоит, нужно создать отдельного пользователя с ограниченными правами.
Установка и настройка dbForge Studio for Mysql
Работать с Mysql через командную строку не очень-то удобно. Интереснее использовать клиент для работы с базой, например, phpmyadmin или workbench. Я покажу, как настроить работу с базой на примере dbForge, настройки для подключения к удаленной базе в других клиентах будут аналогичными. Скачать dbForge можно здесь — https://www.devart.com/ru/dbforge/mysql/studio/download.html
Для скачивания нужно только зарегистрироваться (бесплатно). После установки dbForge нужно создать новое подключение с такими настройками. Вкладка общие:
- 1. Название — debian8
- 2. хост — 127.0.0.1
- 3. порт — 3306
- 4. имя — root
- 5. пароль — root
- 6. Галочка «Сохранять пароль»
Вкладка безопасность
- 1. Использовать протокол ssh
- 2. Аутентификация с помощью пароля
- 3. Хост — 192.168.0.31
- 4. Порт — 22
- 5. Пользователь — root
- 6. Пароль — root
- 7. Сохранять пароль
Нажимаем проверить и ОК. После этого должно создаться новое подключение, где мы увидим нашу тестовую базу и таблицу товаров. Можно добавить/изменить строки таблицы и убедиться в браузере, что все работает корректно.
Установка и настройка nodejs
И последним пунктом статьи будет описание настройки nodejs и запуск тестового проекта. Общая схема будет такой же, как и с php, поэтому описываю только основные моменты.
Шаг 1. Установка nodejs Проверяем установку командой node —version — смотрим версию nodejs.
Шаг 2. Создаем конфиг для нового хоста
Шаг 3. Тестовый проект.
Создаем папку /home/developer/www/test_node.lc. В папке создаем файл server.js с содержимым
Шаг 4. Запуск в debian.
Перезапускаем nginx и запускаем наш сервер.
Шаг 5. Проверка в Windows. В файле hosts добавляем строчку
192.168.0.31 test_node.lc
В браузере открываем http://test_node.lc/
Если все сделано правильно, то увидим приветствие «Hello World on port 3000». Все работает.
Установка git
А на эту тему написана отдельная статья — Как установить git в Linux
Вместо заключения
В этой статье мы кратко рассмотрели установку и настройку такой схемы веб-разработки, где непосредственно приложение работает в Linux, а доступ к этому приложению мы получаем из Windows. Возможно, у кого-то возникает вопрос: а зачем все это нужно? Ведь можно намного быстрее и проще настроить в самой винде, поставить денвер или OpenServer и не заморачиваться так. Или сразу перейти на Linux и не придумывать схемы работы с двумя ОС. Конечно, вопрос о том, как организовать свою работу, субъективный, это дело привычки и удобства. Но для себя я выделил несколько пунктов, почему стал работать именно так.
- 1. Нежелание полностью отказываться от Windows, от ее привычных программ, проигрывателей, кнопки Пуск, привычных настроек и драйверов, игр, в конце-концов
- 2. Неготовность переходить на Linux, ставить ее в качестве основной ОС. Перепробовал несколько дистрибутивов Linux, ни один не показался настолько удобным, как Windows 7.
- 3. Удобство установки и настройки нужных программ в Linux
- 4. Только командная строка, никакого графического интерфейса. Рано или поздно придется столкнуться с командной строкой на боевых сайтах, где не получится настроить GUI. К тому же, освоив командную строку Linux, будет легко работать, например, в терминале MacOS.
- 5. Отказ от «комплектов» вроде денвера и установка всего руками, чтобы лучше понимать, что и как работает и настраивается
- 6. Скорость работы Linux и отсутствие необходимости устанавливать в основной ОС программы и сервисы для работы.
Источник