3天前,荆老师给了我一台打印机,让我完成省赛代码打印系统的测试。
打印机型号为 HP P1007,算是一台比较老的打印了。javascript
本文记录了从打印机驱动安装到代码打印WEB部署的全过程php
HP在linux端没有提供官方的打印机驱动,还好,在HP Linux Imaging and Printing找到了第三方驱动。
刚开始我选择手动安装,然而驱动彷佛是正确安装了,可是打印机就是不工做。
后来采起的策略是先配置必要环境,再使用自动安装的脚本,具体记录以下:html
经过以下网站进行下载:java
https://sourceforge.net/projects/hplip/files/hplip/
http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/python
这里我选择了最新版本 hplip-3.16.5
,不过仍是推荐 hplip-3.16.3
最终咱们获得如下4个文件,一个安装脚本,一个插件,以及两个asc文件:mysql
hplip-3.16.5.run hplip-3.16.5-plugin.run hplip-3.16.5.run.asc hplip-3.16.5-plugin.run.asc
个人系统是 Ubuntu14.04 x64
, 其余版本参考 这里
运行以下命令,完成依赖的安装:linux
sudo apt-get install --assume-yes avahi-utils libcups2 cups libcups2-dev cups-bsd cups-client libcupsimage2-dev libdbus-1-dev build-essential ghostscript openssl libjpeg-dev libsnmp-dev snmp-mibs-downloader libtool libusb-1.0.0-dev wget policykit-1 policykit-1-gnome python3-dbus python3-gi python3-dev python3-notify2 python3-imaging python3-pyqt4 gtk2-engines-pixbuf python3-dbus.mainloop.qt python3-reportlab python3-lxml libsane libsane-dev sane-utils xsane sudo apt-get install python-dev
sudo chmod +x hplip-3.16.5.run ./hplip-3.16.5.run
会出现各类提示,顺着安装程序一路走下去,便可安装成功。nginx
sudo su
apt-get install python-software-properties add-apt-repository ppa:nginx/stable add-apt-repository ppa:ondrej/php5 apt-get update
apt-get install mysql-server
apt-get install php5 php5-fpm php5-mysql php-apc
apt-get install php-pear php5-dev php5-curl php5-gd php5-intl php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
apt-get install nginx
vim /etc/php5/fpm/php.ini
找到:cgi.fix_pathinfo=1
改成:cgi.fix_pathinfo=0
git
建立一个 /www 目录设置为 755 权限github
mkdir /www chmod 755 /www
vim /etc/nginx/sites-enabled/default
找到:root /usr/share/nginx/html;
改成:root /www;
找到:index index.html index.htm;
改成:index index.php index.html index.htm;
找到:location ~ .php$ { * }
区块,修改成:
location ~ \.php$ { try_files $uri =404; include snippets/fastcgi-php.conf; # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; }
vim /etc/nginx/fastcgi_params
在最后一行添加:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
vim /etc/nginx/snippets/fastcgi-php.conf
删除 ``try_files`` 所在的行
service php5-fpm reload service nginx reload
vim /www/index.php
输入 <?php echo phpinfo(); ?>
并保存。
打开你的浏览器访问: http://localhost
,若一切正常,将输出php环境信息
将此 代码打印程序 ,复制到 /www
目录下便可。
使用浏览器访问 http://localhost/codeprinter.html
便可。
核心代码以下:
<?php $name = $_POST['name']; $passwd = $_POST['passwd']; $content = $_POST['content']; $content = stripslashes($content); $result = false; $handle = fopen('namelist', 'r'); while($userinfo = fscanf($handle, "%s %s")){ list($team, $password) = $userinfo; if($team == $name && $passwd == $password) $result = true; } fclose($handle); if(!$result){ echo "<script language=javascript>alert('team number or password is wrong!');</script>"; echo "<script language=javascript>history.back();</script>"; }else { //phpinfo(); $filename = "./code/".$name."-".date('H-i-s'); $fp = fopen($filename, "wb"); $content = date('H-i-s')."\t\t".$name."\n\n".$content; fwrite($fp, $content); fclose($fp); $command = "lpr -o prettyprint ".$filename; system($command); echo "<script language=javascript>alert('Your code has been printed successfully, please wait a moment!');</script>"; echo "<script language=javascript>history.back();</script>"; } ?>
最终效果以下:
ubuntu14.04安装hp laserjet p1007打印机
基于ubuntu 14搭建nginx+php+mysql环境
php5.3 fastcgi方式 安装以及和nginx整合