一、前言

  办公室用的打印机是HP彩色喷墨打印机,一直以来用的都是它,但是随着打印量的增加,发现购买墨盒是一笔不小的开支(买的全是原装的)。随后弄了一台HP 3050的黑白激光打印机,以前的彩打带有网络打印模块所以整个办公室的安装后就可以使用了,但现在这台激光的不带这个模块,而且办公室也没有全天开放的Windows服务器。为了完成将打印机发布到网络中的任务,在我的一台Linux服务器下折腾了一两天终于将这个打印服务器搞定,现将安装过程记录如下。

二、环境说明

  操作系统:Centos 5(可对照RHEL 5)文本模式,安装默认的编译工具。自定义安装了Apache、PHP、PureFTP以及Mldonkey下载软件(这些软件的安装配置以后有时间再另行贴出)。CPU为P4 2.8G,内存512M,两块硬盘共80G。
  打印机是HP LaserJet 3050 多功能一体打印机,用的是USB端口。其中HP的官方网站并未给出Linux的驱动程序,这也是最折腾人的地方。(http://h50176.www5.hp.com/support/Q6504A/drivers/?lang=zh-hans&cc=cn&submit=%C3%A5%C2%BC%C2%80%C3%A5%C2%A7%C2%8B%C3%A6%C2%90%C2%9C%C3%A7%C2%B4%C2%A2%20%C3%82%C2%BB)
建立Windows环境下的Linux打印服务器_第1张图片
建立Windows环境下的Linux打印服务器_第2张图片
建立Windows环境下的Linux打印服务器_第3张图片

三、配置过程
安装基本组件

  在具体配置最好先配置一下系统的YUM源,以便在后续的安装中进行更简易的操作。有关配置YUM源的方法可以参考“启用yum升级RedHat Linux Enterprise ”(http://waringid.blog.51cto.com/65148/51947)。主要的YUM源如下所示:
vi /etc/yum.repo.d/utteramblings.repo      该文件主要用于更新PHP,其它采用默认源
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka


  首先须安装CUPS及Samba组件,可以通过下面的指令执行。
yum –y install cups cups-windows cups-libs hal-cups-util samba samba-client samba-common


安装完成后如下图所示:
建立Windows环境下的Linux打印服务器_第4张图片
确认打印机是否成功安装
  在配置打印机前请将打印机联机,并通过以下指令来确定系统是否正常识别,这里的实际环境用的是USB口,如果是串口或并口的数据线请按实际情况进行。默认情况下USB打印机的设备名为/dev/usb/lp0,系统利用自带的即插即用(PnP)的功能自动检测,我们可以用下面的指令进行检测。

建立Windows环境下的Linux打印服务器_第5张图片

配置打印服务

  在确认打印机连接正常后就可以对打印服务器进行配置了。CUPS的配置信息默认情况下都位于/etc/cups文件夹下,其中重要的几个文件为:
/etc/cups/printers.conf      打印机的设定值,有关打印机的设定都在该文件中
/etc/cups/cupsd.conf        CUPS的主要设定,包括作为服务器的设定都在该文件中
/etc/cups/ppd/*.ppd        打印机的驱动程序
usb:/dev/usb/lp0          USB接口
parallel:/dev/lp0          并口
ipp://ip/打印机型号         网络打印机
smb://user:password@host/打印机   网上邻居式打印机
  修改cupsd.conf进行配置。设定的原则是允许192.168.0.0/24网段中的计算机访问CUPS的管理界面。主要修改的地方如下:
Port 631                        CUPS服务默认开启的端口

  Allow 192.168.0.0/24
  Order allow,deny
  Allow @LOCAL


  Encryption Required
  Allow 192.168.0.0/24
  Order allow,deny
  Allow @LOCAL


  AuthType Default
  Require user @SYSTEM
  Allow 192.168.0.0/24
  Order allow,deny
  Allow @LOCAL


  为了保证在Windows系统下的打印正常,需修改以下文件的配置文件:
vi /etc/cups/mime.convs  
# 大概在最后几行的地方,找到這一行,將注释去掉!
application/octet-stream   application/vnd.cups-raw   0   -
vi /etc/cups/mime.types
# 大概在最后几行的地方,找到這一行,將注释去掉!
application/octet-stream


  完成设定后记得下载安装HP3050驱动(http://www.openprinting.org/show_printer.cgi?recnum=HP-LaserJet_3050),该页面中的文件较多,真正需要下载安装的是http://www.openprinting.org/download/printdriver/RPMS/i486/gutenprint-5.0.1-1lsb3.1.i486.rpm,下载该文件并安装然后再重启CUPS服务:
wget http://www.openprinting.org/download/printdriver/RPMS/i486/gutenprint-5.0.1-1lsb3.1.i486.rpm
yum install gutenprint-5.0.1-1lsb3.1.i486.rpm
service cups restart        
  成功后可以通过网页方式进行访问和设定,如下图所示:
建立Windows环境下的Linux打印服务器_第6张图片
建立Windows环境下的Linux打印服务器_第7张图片
建立Windows环境下的Linux打印服务器_第8张图片

在Samba中发布打印机

  在Linux下安装的打印机基本就可以使用了,但是需要支持Windows系统则还须通过相应的程序发布,在打印机语言中通过Postscript打印语言可以保证各系统下的正常打印。用户只要提供Postscript驱动给Samba服务器就可以支持Windows驱动程序的自动安装。

  在安装Postscript前需安装设定Samba服务器,相关设定如下:

useradd ptadmin                     #先加入该用户,不然后续用户无法添加
smbpasswd –a ptadmin               #加入Samba共享管理用户
vi /etc/samba/smb.conf
[global]
        workgroup = WORKGROUP
        server string = printserver
        netbios name = PrintServer
        printcap name = cups
        load printers = yes
        printing = cups
[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = yes
        guest ok = yes
        writable = yes
        printable = yes
        public = yes
        valid users = @users ptadmin
        printer admin = ptadmin 
[print$]
        comment = Printer Drivers
        path = /etc/samba/drivers
        browsable = yes
        read only = yes
        write list = ptadmin
mkdir /etc/samba/drivers
chown ptadmin /etc/samba/drivers
service smb restart


加入Postscritp驱动

  先到网站(http://ftp.easysw.com/pub/cups/windows/)下载相应的程序安装,先安装http://ftp.easysw.com/pub/cups/windows/cups-samba-5.0rc3.tar.gz,然后再安装http://ftp.easysw.com/pub/cups/windows/cups-windows-6.0-1.i386.rpm。也可以在windows系统中将“C:\WINDOWS\system32\spool\drivers\w32x86\3”目录中的PS开头的文件复制到/usr/share/cups/drivers/下(如果该目录不存在请自行建立)。需注意的是在复制到/usr/share/cups/drivers中后不能有大写字母开头的文件,否则后面的复制不成功。
  安装完CUPS-Samba的包后如下图示:
建立Windows环境下的Linux打印服务器_第9张图片
  测试SMB设置、查看smb驱动共享及打印机设置,将打印机加入smb共享。命令行如下:
testparm
service smb restart
smbbclient -L //127.0.0.1 -U ptamdin
cupsaddsmb -H localhost -U ptadmin -a –v


  设定完成后体图片如下所示:
建立Windows环境下的Linux打印服务器_第10张图片
建立Windows环境下的Linux打印服务器_第11张图片
也可以通过体WEB界面进行设定:
建立Windows环境下的Linux打印服务器_第12张图片
Windows系统下打印测试 建立Windows环境下的Linux打印服务器_第13张图片建立Windows环境下的Linux打印服务器_第14张图片建立Windows环境下的Linux打印服务器_第15张图片