Архив рубрики: Linux

deb-пакеты php5.5 и php5.3 под Debian Wheezy

Для одного клиента потребовалось обеспечить возможность переключения версии PHP для различных сайтов в панельке ISPConfig. На сервере установлен Debian Wheezy, в котором есть только PHP5.4.
Поэтому я скачал исходники PHP5.3 и PHP5.5 с сайта PHP: http://php.net/downloads.php, скомпилировал их и собрал из них простенькие deb-пакеты. Они включают в себя стандартный набор расширений и предоставляют бинарники для командной строки, cgi и php-fpm.
Выложил на github, вдруг кому-нибудь надо, чтоб быстро и работало:
https://github.com/scukonick/phpdeb

Можно спокойно устанавливать паралелльно дефолтному PHP, т.к. используются разные директории для установки.

Автор: AlexWinner

Устанавливаем дрова на сетевую карту Atheros AR9485

Прикупил себе сегодня новый бук взамен доблестно умершего. Моделька новая. Lenovo G500. Почитать о ней можно тут. Соответственно и железки новые. Не исключение и наша сетевуха. По умолчанию заработал тока Wi-Fi и локальная петля. Ethernet`а не было и в помине.

Читать

Как в Ubuntu запустить виртуальные хосты Apache под разными пользователями

Зачем нужно запускать виртуальные хосты под разными пользователями?

По-умолчанию Apache работает “от имени и по поручению” юзера www-data. Это значит что для веб-сервера будут доступны только те ресурсы (файли и каталоги), которые доступны для юзера www-data, соответственно и изменить он сможет только их. Как правило, на одном веб-сервере может располагаться сразу несколько виртуальных хостов (несколько сайтов), по-умолчанию все они будут доступны для юзера www-data и в случае взлома или поражения одного из ресурсов, остальные также могут быть поражены. Поэтому с целью обеспечения дополнительной безопастности существет возможность запуска виртуальных хостов от имени разных юзеров.

Читать

Создание DJVU книг в Linux

1. Сканирование.

Используется API (интерфейс программирования приложений) SANE (Scanner Access Now Easy) с его графической оболочкой XSane.

Ещё предлагается к использованию ScanTWAIN, но это я не пробовал.

Примечание: если в Windows основными промежуточными форматами сканообработки являются tiff и bmp, то для Linux таким форматом будет являет pnm (ppm — цветные, pgm — полутоновые, pbm — чёрно-белые).

2. Сканообработка.

Используется всеми любимый Scan Tailor, так как есть версия для Linux.

Я использую ST Enchanced, поэтому устанавливал его из исходников с официального сайта.

Для установки из исходников в систему пришлось добавить пакеты build-essential, cmake, libqt4-dev, zlib1g-dev, libjpeg62-dev, libpng12-dev, libtiff4-dev, libboost-all-dev и libxrender-dev.

Сборка осуществляется командой cmake . (c точкой).
Далее команда make. Потом — sudo make install

(Данный процесс инсталляции не предусматривает создания пункта меню)

Под wine также запускаются Scan Kromsator и Book Restorer.

3. Djvu-кодирование.

Происходит так:
— сжатие каждой страницы отдельно в зависимости от её содержания (автоматизируется)
— добавление текстового слоя (опционально)
— сборка из отдельных djvu-файлов одного общего (итогового)

Для работы нужны пакеты djvulibre-bin, netpbm и imagemagick

Установка:
sudo aptitude install djvulibre-bin netpbm imagemagick

Кодирование чёрно-белых изображений.

Для сжатия чёрно-белых изображений исходники надо перевести в формат pbm:
for file in *.tiff; do anytopnm $file | ppmtopgm | pgmtopbm -value 0.499 > ${file%tiff}pbm; done

Преобразование pbm-файлов в djvu-файлы:
cjb2 -dpi DPI ВХОДНОЙ_ФАЙЛ.pbm ИТОГОВЫЙ_ДОКУМЕНТ.djvu

Опция -dpi означает возможность варьировать dpi.

Кодирование изображений в оттенках серого.

Сканы нужно конвертировать в формат pgm:
anytopnm ИМЯ_ИСХОДНОГО_ФАЙЛА | ppmtopgm > ВЫХОДНОЙ_ФАЙЛ.pgm

Кодирование:
cpaldjvu -dpi DPI -colors КОЛИЧЕСТВО_ОТТЕНКОВ_СЕРОГО ВХОДНОЙ_ФАЙЛ.pgm ВЫХОДНОЙ_ФАЙЛ.djvu

Чем больше значение -colors (количество оттенков серого), тем больший объём имеет сжатая страница. Для не очень качественных сканов подойдёт значение 3 или 4 — этого вполне достаточно, чтобы получить пусть и бледноватую, но читабельную картинку.

Кодирование цветных изображений.

Обложки или иллюстрации для начала конвертируются в ppm:
convert ИСХОДНЫЙ_СКАН РЕЗУЛЬТИРУЮЩИЙ_ФАЙЛ.ppm

Кодирование в djvu:
c44 -dpi DPI ИСХОДНИК.ppm РЕЗУЛЬТАТ.djvu

Сборка итогового djvu-файла.

Выполняется такой командой:
djvm -c ВЫХОДНОЙ_ФАЙЛ.djvu *.djvu

Автор: Sergey Bolshakov

Восстановление загрузчика Grub2 после установки Windows

Установил вчера Windows 7 Professinal, и, естественно, загрузчик Windows затёр загрузчик Linux.

Опишу здесь способ восстановления Linux-загрузчика Grub2, которым я воспользовался чтобы при включении ноутбука было возможным выбрать систему для загрузки.

Для начала, нужен Live СВ с Ubuntu (или чем-то подобным, я конечно же воспользовался тем диском, с которого устанавливал Linux Mint), в составе которого есть хитрая утилита chroot.

Гружусь с Live CD, запускаю терминал.

Ввожу команду, которая покажет мою таблицу разделов на жёстком диске:
sudo fdisk -l
Это для того, чтобы вспомнить/узнать, на каком диске установлена Linux.

Монтирую раздел с установленной Mint:
sudo mount /dev/sda6 /mnt

Примечание: sda — диск в системе, sda6 — раздел на этом диске. У других конечно может быть по другому, в том числе и отдельно вынесенный раздел /boot.

Дальше »

Автор: Sergey Bolshakov

Команды disown и nohup в Linux. Продолжение выполнения заданий после выхода из системы.

Задача: работая локально в терминале или удалённо по ssh, запустить на выполнение какую-либо команду, чтобы та не перестала выполняться после разлогинивания (получения SIGHUP). Безумно полезно в работе по ssh при ненадёжном интернет-соединении.

Есть 2 ситуации: 1. команда уже запущена, а мысль о том, что её выполнение нужно оставить на попечение системы, отвязав от текущей сессии, пришла после; 2. команда ещё не запущена и мы хотим сделать её самостоятельной заранее.

1. Если команда уже запущена, то нажимаем CTRL+Z, тем самым остановив её выполнение:

apt-get update && apt-get upgrade -y
В кэше http://archive.ubuntu.com raring Release.gpg
В кэше http://security.ubuntu.com raring-security Release.gpg                                                                                            
В кэше http://archive.canonical.com raring Release.gpg                                                                                                   
Получено:1 http://archive.ubuntu.com raring-updates Release.gpg [933 B]                                                                                  
26% [Ожидание заголовков] [2 Release 9 731 B/40,8 kB 24%] [Ожидание заголовков] [Ожидание заголовко�^Z
[1]+  Остановлено  apt-get update

 Затем, переводим её выполнение в фоновый режим командой bg и отвязываем от текущей сессии (удаляем из активных заданий) командой disown:

bg && disown

 Теперь, можно нажимать CTRL+D, не опасаясь что обновление системы оборвётся при разлогинивании.

2.Более разумное решение — воспользоваться командой nohup, которая сразу сделает выполняемую задачу устойчивой к SIGHUP и по умолчанию сохранит выход stdout в файл nohup.out в текущей директории, что удобно, чтобы позднее проверить выполнилась ли данная задача или нет. Вывод, так-же может быть перенаправлен в произвольный файл стандартными средствами — знаком > после команды. Примеры:

nohup ping -c 1000 ya.ru &

nohup ping -c 1000 ya.ru > ping_`date +%d.%m.%y_%H.%M` &

 В первом примере команда ping посылает 1000 запросов сайту ya.ru и записывает результаты в файл nohup.out в текущей директории.
Во втором примере  команда ping посылает 1000 запросов сайту ya.ru и записывает результаты в файл, содержащий слово ping и текущие дату и время, находящийся в текущей директории.

Автор: Yar4e