Сервер сканирования на базе centos 6.

в 2018 году centos 6 уже не актуален. Он доживает свой век и скоро вообще уйдет в архивы.

Однако, до сих пор есть куча железа, которое прекрасно работает на centos 6… а с 7ой версией были какие-то проблемы со стабильностью.

Далее краткое how-to как сделать из centos 6 небольшой сервер сканирования.
И сканировать будем не только через веб интерфейс, но так же и из нативных приложений в винде.

В репозиториях хранятся старые утилиты для драйвера sane, поэтому сразу готовимся устанавливать все руками.

sane

скачиваем два архива (или клонируем)

  • https://gitlab.com/sane-project/backends.git
  • https://gitlab.com/sane-project/frontends.git

Первое это сам драйвер sane, второе набор утилит для работы с ним. тк у нас на сервере нет графики, то только демон saned нам и нужен.

оба проекта собираются просто:

./configure && make && make install
php

пхп по умолчанию тоже старый в репозиториях. и старый это 5.3… Нам нужен хотя бы 5.6. Поэтому подключим расширенные репозитории:

yum install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-9.noarch.rpm
yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

после чего можно будет установить php нужной версии

yum install php56 php56-common php56-cli
apache

в качестве веб сервера будет апач.
просто потому что для выполнения задачи нужно будет выполнить всего 3 команды:

yum install apache
chkonfig on
/etc/init.d/httpd start

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

я выбрал первый вариант:

usermod -a -G lp apache
xinetd

для доступа к сканеру по сети будет использован старый-новый xinetd

yum install xinetd
chkonfig xinetd on

правим конфиг /etc/xinetd.d/saned-stream

service sane-port
{
    socket_type = stream
    server = /usr/sbin/saned
    protocol = tcp
    user = apache
    group = apache
    wait = no
    disable = no
}

правим конфиг /usr/local/etc/sane.d/saned.conf.
просто пишем адреса, которые могут подключаться к серверу:

Access list
192.168.46.0/24

и можно запускать xinetd:

/etc/init.d/xinetd start

И как бы все готово для того, чтобы оно все поехало.

Web сканирование

В качестве веб интерфейса могу выделить на данный момент 4штуки:

  1. phpSANE
  2. PHP Scanner Server
  3. scanserv
  4. Openwrt Scan Server

1ый в списке — тк это очень старый проект, который в свое время сильно помогал. Сейчас он заброшен… и, в моем случае, мне пришлось немного изменить код, чтобы оно заработало как надо с моим сканером.

второй пункт выглядит очень серьезным продуктом. Куча анимации, настроек.  Есть поддержка нескольких сканеров.

третий вариант попроще, но, очень приятный внешне. нет никаких изысков, просто работает. есть поддержка нескольких сканеров.

последний вариант самый простой. там всего 3 кнопки выбора разрешения. Супер вариант для реализации сканирования на роутере, например (да, название говорит само за себя).

Windows сканирование

есть несколько приложений, которые работают с удаленными сканерами.
старейшее и более не поддерживаемое sanetwain собрано только для 32х битных систем. Работало ранее и на 64х битных, но на последней сборке win10 уже не работает.

чуть современнее SaneWIN. Он работает в win10 x64, но, он некрасив и не удобен.

и wiasane — это драйвер-эмулятор. Система видит сканер как будто он установлен локально. работает исправно.

конец

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

вопросы приветствуются. ответы будут.