科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>网络频道>ZD评测>基于LAMP构架动态Web电子图像服务器

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

PHP支持所有主流数据库。它是完全免费的,使用时不需要支付任何费用。本文将要搭建Web 电子相册基于Linux的完全免费的PHP技术的实现方法。本文使用操作系统:Fedora Core3.0 Linux。

来源:天极网 2008年06月25日

关键字:网吧服务器架设 网吧组网 网吧

  随着互联网和数码产品的普及,许多用户希望自己制作的数码相片以Web方式和朋友分享。使用Gallery(http://gallery.sourceforge.net/)可以轻松实现。目前LAMP (Linux + Apache+ MySQL+ PHP) 近几年来发展迅速,已经成为Web 服务器的事实标准。

  PHP是一种跨平台的服务器端的嵌入式脚本语言,它大量的借鉴C、Java和Perl语言的语法,并加入了PHP自己的特性,使Web开发者能够快速地写出动态页面。PHP支持所有主流数据库。它是完全免费的,使用时不需要支付任何费用。本文将要搭建Web 电子相册基于Linux的完全免费的PHP技术的实现方法。本文使用操作系统:Fedora Core3.0 Linux。

  一、准备工作

  首先配置一个LAMP服务器和ImageMagicK软件,后者主要用于对图像进行转换、编辑、组合、特殊处理等,是一款非常好用的图像处理工具。它支持对多种格式的图像进行处理,最多支持的图像格式有157种格式,包括目前流行的TIFF、JPEG、PNG、PDF、PhotoCD及GIF等。Image MagicK还支持动态图像创建,这一点非常适合在Web页面上使用。除了要搭建一个基于LAMP的网络构架、运行Gallery的软件必需的netpbm 、libjpeg-progs 、jhead、unzip。系统其他要求:软件:它要求内核(Kenerl)至少在2.2以上。KDE 2.0,桌面颜色至少16位增强色。硬件:中央处理器:奔腾II 450 以上 ,内存 128 兆 ,硬盘空间 600兆 。

  为了避免软件相互冲突,这里笔者使用基于的Debian发行版本APT方法添加软件,Debian GNU/Linux 是APT(Advanced Package Tool)的缔造者。初衷是利用工具来解决软件安装时候的依赖性问题。其工作原理大致为:用户安装APT客户端工具,查寻APT服务器端的资料库(repositories)上的RPM软件包信息,并分析软件包之间的依赖性然后下载并进行安装。APT 除了可以让你很方便且快速地安装 RPM 软件外,你也可以用它来更新系统。虽然APT是基于Debian的软件包管理工具,但是已经被一个巴西公司Conectiva移植到基于RPM的系统上。因此对于基于RPM软件包管理的平台,如Red Hat、TurboLinux、SuSe、Mandrake等Linux发行版本,APT是一个非常优秀的软件管理工具。

  1. 为Fedora Core 3.0 Linux配置APT

  运行APT之前需要确认服务器上Apache 已经可以提供WWW服务,并且 /var 分区有足够的空间。

  #wget http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/3/apt/apt-0.5.15cnc6-1.1.fc3.fr.i386.rpm

  #wget http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/3/apt/apt-devel-0.5.15cnc6-1.1.fc3.fr.i386.rpm

  #rpm -ivh apt-devel-0.5.15cnc6-1.1.fc3.fr.i386.rpm

  #rpm -ivh apt-0.5.15cnc6-1.1.fc3.fr.i386.rpm

  接着需要加入freshrpms.net的公共钥匙GPG-KEY, 然后在/etc/apt下建立一个/gpg文件夹,将GPG-KEY保存在那里,以便日后管理。

  # rpm --import http://ftp.freshrpms.net/pub/freshrpms/RPM-GPG-KEY

  安装图形前端 ,freshrpms.net站点提供了一个图形界面的apt-rpm接口Synaptic,使用图形界面的apt更加方便,可以直接利用apt安装Synaptic:

  # apt-get install synaptic

  在几行提示之后Synaptic就安装好了,进入Xwindow后,Synaptic会出现在“系统设置”菜单里面。界面见图1。

图1 APT图形化前端Synaptic

  APT系统主要包括:

  

命令

 描述

apt-get update

 更新本地apt-get的本地数据库,使其与服务器的pkglist文件同步。在升级以前一般都要执行本命令实现与服务器的一致。

apt-get check

验证本地系统的完整性。

apt-get dist-upgrade 

安装所有的基础软件包,并升级一切软件包,并在需要时安装新软件包。

apt-get remove package_name

删除该软件包,同时会删除依赖于它的软件包。

 apt-get install package_name 

安装某个软件包及其相关软件包。

apt-get source package_name 

下载软件包的source rpm。

apt-get clean

 删除保存在缓存目录下(/var/cache/apt/archives)的被下载的软件包。

apt-get upgrade package_name

 升级指定的软件包,并升级其依赖的软件包。

apt-cdrom add 

自动mount安装光盘并建立列表。

apt-cache depends package_name

 显示软件包的依赖性关系。

apt-cache package_name

 在网络上搜索指定的软件包

apt-config dump 

显示目前的配置信息。

  其中常用:apt-cache、apt-cdrom、apt-config和apt-get四个命令,用户使用最多的就是apt-get命令。

  其中netpbm是一个图象的格式转换和简单编辑软件。通过交互式的界面,能帮助你方便的使用,就像Linux上的Adobe Photoshop。它支持超过100种图象格式,包括JPEG、MPEG、PNG、GIF、TIFF、BMP、XWD、XBM、G3 fax以及其他特殊格式,像数字相机和掌上电脑。它还拥有超过40种的编辑修改工具,可以基本上满足编辑的需求。libjpeg-progs和jhead是相关函数库。Unzip是解压缩工具。

  另外还要修改Apache服务的配置文件:添加以下内容:

  <Directory /home/username/public_html>

  AllowOverride Limit Options FileInfo

  </Directory>

  软件安装将下载的软件拷贝到目录下后执行:

  #cd /var/www/html

  #mkdir#建立Web电子相册存储目录#

  #wget http://umn.dl.sourceforge.net/sourceforge/gallery/gallery-1.4.4-pl2.tar.gz

  #tar vxf gallery-1.4.4-pl2.tar.gz

  #cd gallery

  #touch .htaccess;touch config.php #建立空白文件#

  #chmod 0777 albums #赋予相应权限#

  # chmod 777 .htaccess

  # chmod 777 config.php

  二、开始安装

  重新启动Apache后,使用Firefox浏览器在URL输入:

  http://localhost/gallery/setup/index.php,进行设定。一共四个步骤其中第二部分(Step 2)最为关键,这里要需要设定管理员密码和Web服务器设定选项,见图2.其中红色表示必须设定:

图2 Web服务器设定选项

  Admin password: xxxxx #管理员密码#

  Album directory: /var/www/albums/ #Web电子相册存储目录#

  Temporary directory: /tmp/#临时目录#

  Gallery URL: http://localhost/gallery

  Albums URL: http://localhost/albums

  填写结束后按“Next Tap ”继续,所有配置结束后系统如果出现图3表示安装成功,如果有错误会自动退回到开始的对话框让你从新设定。

  安全设定:

  测试成功后系统提醒你出于安全考虑,要修改一些文件的权限:

  # chmod 644 .htaccess

  # chmod 644 config.php

  # chmod 400 setup

  # chown -R nobody:nogroup albums

  # chmod 755 albums

  重新登录

  再次登录系统,由于修改一些文件权限,所以只能以系统管理员的身份登录,见图4.

图4 Web 电子相册的管理员控制面板

  管理员控制面板,一共七个大版面:每个版面里有各项功能的使用详解。另外在安装页的“FAQ”中有200页的常见问题回答。这样你也可以自己轻松管理Web电子相册了。下面要做的是建立一个子相册然后上传图片,见图5。

图5 上传图片到服务器

  三、管理技巧

  1.Web电子相册备份和恢复

  Web电子相册自己不能备份数据,需要手工完成,备份命令:

  # tar -czvf albums.tar.gz albums

  恢复数据使用命令:

  # tar -xvzf albums.tar.gz

  2.一次上传整个文件目录

  Gallery一次允许最多上传十个图片,不过可以使用GalleryRemote.1.4.1这个工具软件实现上传整个文件目录。

  #wegt http://umn.dl.sourceforge.net/sourceforge/gallery/GalleryRemote.1.4.1.Linux.VM.bin

  #chmod +x GalleryRemote.1.4.1.Linux.VM.bin

  #./GalleryRemote.1.4.1.Linux.VM.bin #安装过程非常简单,依照安装先导即可完成。#

  使用GalleryRemote可以一次上传整个目录的图片到Web服务器。见图6。

图6 使用GalleryRemote将这个目录上传

  3. 设定 Gallery 使其可以通过动态IP访问?

  首先备份原来的配置文件:

  #cp /etc/gallery/config.php /etc/gallery/config.php_backup#

  然后使用编辑器将文件:/etc/gallery/config.php中的两行:

  $gallery->app->photoAlbumURL = "http://localhost/gallery";

  $gallery->app->albumDirURL = "http://localhost/albums";

  替换为以下内容即可。

  $gallery->app->photoAlbumURL = "/gallery";

  $gallery->app->albumDirURL = "/albums";

  Gallery是一个用php脚本语言编写的、基于Web的电子相册软件,它安装很简单,有完善的安装向导,并且提供给使用者非常直观方便的创建和管理工具。图片管理工具包括自动创建预览小图、改变图片尺寸、旋转图片、图片分类、添加图片标题和说明等。符合W3C标准的带缩略图和幻灯的静态XHTML 映射图,支持的图像格式:PNG、GIF、JPEG。图7是Garllery通过浏览器访问时的界面。

图7 通过浏览器访问的工作界面

  四、有效保护电子相册的图像版权

  每个网站所有者都在尽力美化自己的网站,使它看上去更酷、更具有吸引力,其中最常见的方法就是使用图片、标志等。但是,这也会带来一个问题,因为越漂亮、越吸引人的网站漂亮的图片等就容易被别的网站悄悄的盗用。下面我们就一起讨论如何保护自己的劳动成果。目前存在的常见问题:

  使用HTML标记IMG在自己的网站中引用网站的图片。

  从网站上复制或者下载图片,然后放在自己的网站上使用。

  完全杜绝这两种盗用行为是不现实的,但是通过技术手段可以使得这种盗用非常困难。在LinuxApache环境下,通过配置可以限制网站图片被盗用。

  1.标识需要保护的文件

  作为保护的第一步,首先需要标识出需要保护的文件,然后才能进一步对被标识的文件进行保护。在Apache配置文件中添加如下内容:

  <FilesMatch "\.(gif|jpg)">[这里添加保护限制命令]

  </FilesMatch>

  将容器命令包含在 或 等容器中,或者单独列出,不处于任何保护容器中,这样就会对网站所有文件进行保护,甚至可以存放在.htaccess文件。将该容器放在不同的位置,保护的范围机会有所不同。

  2.Referer HTTP头字段

  当用户访问Web服务器请求一个页面时,用户浏览器发送的HTTP请求中会有一个被称为HTTP请求头(HTTP Request Header)的信息,这个头信息中包含客户请求的一些信息,例如发出请求客户主机的浏览器版本、用户语言、用户操作系统平台、用户请求的文档名等,这些信息以变量名/变量值的方式被传输。

  在这些信息中,Referer字段对于实现防止图片盗用非常重要。Referer字段指定客户端最后一个页面的URL地址。例如,如果用户访问页面A,然后点击在页面A上到页面B的链接,访问页面B的HTTP请求会包括一个Referer字段,该字段会包括这样的信息“这个请求是来自于页面A”。如果一个请求不是来自于某个页面,而是用户通过直接在浏览器地址栏输入页面A的URL地址的方式来访问页面A,那么在HTTP请求中则不会包括Referer字段。这样对于我们防止盗链有什么帮助呢?Referer字段是帮助判断对图像的请求是来自自己的页面,还是来自其它网站。

  3.使用SetEnvIf对图像进行标记

  作为一个简单的例子,假设需要保护的网站的主页面为http://my.apache.org,这时候希望限制所有不是源于本网站的网络访问请求(例如只允许访问包含在本网站页面内的图片)。这里可以使用一个环境变量作为一个标记,如果条件满足时就设置该变量,如下所示:

  SetEnvIfNoCase Referer "^http://my\.apache\.org/" local_ref=1

  当Apache处理一个请求时,它会检查HTTP请求头中的Referer字段,如果该请求来源于本网站(也就是请求页面的URL为本网站域名),则设置环境变量local_ref为1。

  4.在访问控制中使用环境变量

  Apache配置文件中的Order、Allow和Deny命令可以实现对文档的基于环境变量的访问控制,使用Order、Allow和Deny命令首先要考虑的是Allow和Deny命令的顺序对于Apache处理结果的影响,应该以下面的方式使用:

  Order Allow,Deny

  这里表示Apache首先处理该HTTP请求相关的Allow命令,然后处理相关的Deny命令。这种处理方式的默认策略是Deny,所以除非有明确的允许的设置,否则该请求就会被拒绝,任何非法访问将无法成功。

  因此,在Apache的配置文件httpd.conf中添加如下命令,来实现本地引用发挥作用:

  Order Allow,Deny

  Allow from env=local_ref

  这样只有在local_ref变量被定义的情况下,该请求才会被允许;否则其它所有请求和访问将会被拒绝,因为这些请求不满足Allow条件。

  注意,请不要在.htaccess和httpd.conf中使用 容器命令,这里不需要该容器命令,除非有特殊的需求,例如希望Get请求和Post请求进行不同的处理。 把这些相关设置放在一起,在Apache的配置文件中就会有如下内容:

  SetEnvIfNoCase Referer "^http://my\.apache\.org/" local_ref=1

  <FilesMatch "\.(gif|jpg)">

  Order Allow,Deny

  Allow from env=local_ref

  </FilesMatch>

  配置可以存放在服务器配置文件httpd.conf中,或者存放在.htaccess文件中,最后的效果是一样的:在这些命令作用的范围内,只有从本网站引用的图片才可以被访问。

  5.对图片进行水印处理

  当一位作者耗费心血创造了一件数码作品,并将其运用于信息网络中,而非法使用者可以很方便地得到与原作一模一样的拷贝,并可任意进行伪造和篡改,而合法用户却很难证明自己对作品的所有权,更无法确认伪造和篡改的程度,也就无法通过法律武器 保护自己的权益。浏览者在非法网站直接访问非法的图片,而合法网站的版权受到侵害,却得不到赔偿,甚至无法发现这种盗用。因为Web的工作方式对这种类型的盗用实际上无法被阻止,但是可以使得这种盗用更加困难。完全杜绝这种盗用行为是不现实的,但是通过技术手段可以使得这种盗用非常困难。一个数字图片进行水印处理是指在图片中加入一个特殊的签名编码,并且可以进行验证和检测,数字水印并不会降低图片的质量,甚至可以实现图像被切割以后的剩余部分仍然会包括水印信息。图片被再次编辑、打印,并再次扫描以后,水印仍然可以被检测到。因此,水印技术是一个非常好的保护图片不被盗用的技术。这是将特制的不可见的数字标记隐藏在数字产品中,用以证明原创作者对作品的所有权,并作为起诉非法侵权者的证据,从而保护作者的合法权益。数字产品包括图像、声音、文档、视频信息等等。下面介绍一个加上数字水印的过程。假设有一幅数码摄影图像,

  使用GIMP打开欲添加水印的图片,选好添加水印的位置。如果添加水印是为防止图片被盗用,那么水印最好与图片主要内容部分相混合,这样可以增大防盗用的难度。如果只是作为自己的签名,那么通常放在图片的边缘,只要签名清晰即可。选择GIMP工具箱中的文字工具,这时光标就会变为文字编辑样式。单击欲添加水印的位置就会出现文字对话框,该对话框上部可以设置添加文本的字体、样式和大小,最后在预览文本框中加入水印文字,这时图片上就会出现预览中键入的文字,并且为选区文字,此时可以自由移动该文字的位置,文字位置确定后就不可以移动了。接下来打开GIMP图像窗口选单,选择“对话框/图层、通道和路径”选项,在打开的图层、通道和路径对话框中选中文本图层,单击新建图层按钮将文本作为一个单独的图层。选中文本图层,并调节该层的Alpha(不透明)值为6~50之间,这时该图片的水印效果就出来了。另外为自己的杰作加上水印,就像画家要为自己的作品加上签名一样。见图8。

图8 添加水印的电子相册

  目前基于Gallery Web服务器的电子相册已经应用于在香港、澳门、台湾以及国外许多博客网站。它是一个用php编写的、基于Web的电子相册软件,它安装很简单,有完善的安装向导,并且提供给使用者非常直观方便的创建和管理工具。图片管理工具包括自动创建预览小图、改变图片尺寸、旋转图片、图片分类、添加图片标题和说明等等。

推广二维码
邮件订阅

如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

重磅专题