Skenovací server v Linuxu

Potřeboval jsem dnes naskenovat jednu stránku. Jenže tiskárna Deskjet F300 je napojena na můj NAS server. Jak tedy skenovat přes síť?

Předně je skenování nutné rozchodit "lokálně". V tomto případě je nutné nainstalovat hplip ovladač. Jelikož tiskárna není nejnovější, použil jsem ten z repozitářů v distribuci. Pomocí příkazu hp-setup jsem provedl nastavení. K tomuto ovladači se dodává pěkný program hp-check, který dokáže zkontrolovat spoustu chybějících programů a nastavení. Spouštět je ho dobré s parametrem -r (je to rychlejší nez bez něj).

Lokálně lze skenovat například přesměrováním X protokolu přes ssh a spuštěním xsane. Jakmile toto funguje, můžeme se pustit do skenování "na dálku" pomocí jednoduché webové aplikace ScannerServer. Tu muhou používat i takzvaní "negíci" (od slova geek).

Celý ten máslostroj funguje jako CGI skript, takže jsem použil oblíbený webový server lighttpd a nakonfiguroval jej následovně:



V podstatě tento soubor stačí zkopírovat z ukázkové konfigurace, není třeba měnit. Vidíme, že cgi-skripty se čtou v adresáři /usr/lib/cgi-bin. Tam jsem tedy nakopíroval obsah programu (adresář scan). Ale pod jakým uživatelem skripty poběží?

# grep username /etc/lighttpd/lighttpd.conf
server.username = "www-data"


Uživatel www-data. Bezva. Jo mimochodem můžete si to rozchodit se svým oblíbeným http serverem (např. apache). Takže jak to bylo? Jo - www-data. Ve vaší distribuci to může být třeba nobody, nebo www. Je to jedno. ale musíme správně nastavit práva, protože CGI skript potřebuje někam zapsat konfiguraci a pochopitelně také naskenované obrázky. Že ano.

# chown -R www-data /usr/lib/cgi-bin/scan

Bacha, To ale není všechno. Nyní ten špek, který mi zabral asi 40 minut bádání, než jsem to vydoloval z logů. Uživatel www-data musí dostat práva na skenování.

# usermod -G lp,lpadmin,saned www-data

Asi by stačila jen skupina "saned", ale už nemám ani chuť ani čas zjišťovat, jestli lze ostatní skupiny vyhodit. Nyní stačí spustit lighttpd a přejít na adresu localhost/cgi-bin/scan/index.cgi a v nastavení kliknot na tlačítko detekce scanneru. V adresáři scan/config by se měl vytvořit soubor s konfigurací. Pokud je prázdný, skener není správně funkční a vraťte se k "lokálnímu" nastavování. Pokud je to ok, můžete ihned začít skenovat.

Zítra mi přijde šest nových her na Playstation 3, takže se na chvilku zase odmlčím. Navíc mám ještě asi čtyři "na dohrávku" :-) Dobrou noc.

Update: Instalace pro RHEL6 a Apache2 je snadná:

1) Rozbalit do /var/www/html/scan/

# ls /var/www/html/scan/
config download.cgi inc index.cgi print.cgi README scans

2) Konfigurace a restart Apache:

# cat /etc/httpd/conf.d/scan.conf

Options +ExecCGI


AddHandler cgi-script cgi

3) Instalace hplip, přidání do skupiny

# yum -y install hplip sane-backends libsane-hpaio
# hp-setup -i
# ls -al /dev/sg0
crw-rw---- 1 root disk 21, 0 Aug 27 16:18 /dev/sg0
# usermod -G disk apache
# logout




24 February 2011 | linux
twitter.com linkedin.com
google.com/+ facebook.com
flickr.com youtube.com