扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
随着互联网和数码产品的普及,许多用户希望自己制作的数码相片以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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
去集群 更超群——大容量网络演进之路
2019 IBM 中国论坛
H3C 2019 Navigate 领航者峰会
助推数据中心网络现代化转型 打造灵活可靠基础架构平台