> CentOS > CentOS服务器 >

建立Windows环境下的Linux打印服务器

一、前言

  办公室用的打印机是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)
Image00000
Image00001
Image00002

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

  在具体配置最好先配置一下系统的YUM源,以便在后续的安装中进行更简易的操作。有关配置YUM源的方法可以参考“启用yum升级RedHat Linux Enterprise ”(http://waringid.blog.51cto.com/65148/51947)。主要的YUM源如下所示:
1
2
3
4
5
6
<strong>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</strong>

 

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

 

安装完成后如下图所示:
Image00003

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

 

Image00004

配置打印服务

 
  在确认打印机连接正常后就可以对打印服务器进行配置了。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的管理界面。主要修改的地方如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Port 631                        CUPS服务默认开启的端口
<Location />
Allow 192.168.0.0/24
Order allow,deny
Allow @LOCAL
</Location>
<Location /admin>
Encryption Required
Allow 192.168.0.0/24
Order allow,deny
Allow @LOCAL
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Allow 192.168.0.0/24
Order allow,deny
Allow @LOCAL
</Location>

 

  为了保证在Windows系统下的打印正常,需修改以下文件的配置文件:
1
2
3
4
5
6
vi/etc/cups/mime.convs
# 大概在最后几行的地方,找到這一行,將注释去掉!
application/octet-streamapplication/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        
  成功后可以通过网页方式进行访问和设定,如下图所示:
Image00005
Image00006
Image00007

在Samba中发布打印机

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

 

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

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
useraddptadmin                     #先加入该用户,不然后续用户无法添加
smbpasswd –a ptadmin               #加入Samba共享管理用户
vi/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = printserver
netbios name = PrintServer
printcapname = 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= @usersptadmin
printer admin = ptadmin
[print$]
comment = Printer Drivers
path = /etc/samba/drivers
browsable = yes
readonly = yes
write list = ptadmin
mkdir/etc/samba/drivers
chownptadmin /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的包后如下图示:
Image00008
  测试SMB设置、查看smb驱动共享及打印机设置,将打印机加入smb共享。命令行如下:
1
2
3
4
<strong><strong><strong>testparm
service smb restart
smbbclient -L //127.0.0.1 -U ptamdin
cupsaddsmb -H localhost -U ptadmin -a –v</strong></strong></strong>

 

  设定完成后体图片如下所示:
Image00009
Image00010
也可以通过体WEB界面进行设定:
Image00011
Windows系统下打印测试 Image00012Image00013Image00014

 

(责任编辑:IT)