歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 基於LAMP構架動態Web電子圖像服務器

基於LAMP構架動態Web電子圖像服務器

日期:2017/2/27 9:40:58   编辑:更多Linux

  隨著互聯網和數碼產品的普及,許多用戶希望自己制作的數碼相片以Web方式和朋友分享。使用Gallery(http://gallery.sourceforge.net/)可以輕松實現。目前LAMP (Linux + Apache + mysql + PHP) 近幾年來發展迅速,已經成為Web 服務器的事實標准。PHP是一種跨平台的服務器端的嵌入式腳本語言,它大量的借鑒C、Java和Perl語言的語法,並加入了PHP自己的特性,使Web開發者能夠快速地寫出動態頁面。PHP支持所有主流數據庫。它是完全免費的,使用時不需要支付任何費用。本文將要搭建Web 電子相冊基於Linux的完全免費的PHP技術的實現方法。本文使用操作系統:Fedora Core 3.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命令。

#apt-get install netpbm libjpeg-progs jhead unzip

  其中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表示安裝成功,如果有錯誤會自動退回到開始的對話框讓你從新設定。

圖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在自己的網站中引用網站的圖片。

  從網站上復制或者下載圖片,然後放在自己的網站上使用。  完全杜絕這兩種盜用行為是不現實的,但是通過技術手段可以使得這種盜用非常困難。在Linux Apache環境下,通過配置可以限制網站圖片被盜用。   1.標識需要保護的文件  作為保護的第一步,首先需要標識出需要保護的文件,然後才能進一步對被標識的文件進行保護。在Apache配置文件中添加如下內容:

<FilesMatch "\.(gifjpg)"> [這裡添加保護限制命令]

</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 "\.(gifjpg)">

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的電子相冊軟件,它安裝很簡單,有完善的安裝向導,並且提供給使用者非常直觀方便的創建和管理工具。圖片管理工具包括自動創建預覽小圖、改變圖片尺寸、旋轉圖片、圖片分類、添加圖片標題和說明等等。




Copyright © Linux教程網 All Rights Reserved