跳到主要內容

IIIF的安裝筆記

IIIF伺服器比較好搞的大概是IIP吧,Apache也可以跑,可以參考官網的資料。不過網頁已經2008年的內容了,安裝時被舊軟體弄的頭昏腦脹,以下使用xampp(2019/6/5)版處理。


重點1:

xampp的Apache已經到2.4版,不用再抓2.2。

重點2:

mod_fcgid 2.3.10下載地址:
下載mod_fcgid-2.3.10-win64-VS16.zip或mod_fcgid-2.3.10-win32-VS16.zip

重點3:

不用裝Visual C++ 2005 SP1。

重點4:

新版的 IIPImage server
下載iipsrv-1.0-win32.zip

重點5:

詳細安裝步驟如下:

第一步:裝好xampp,確定web伺服器可以順利開啟後,下載mod_fcgid,解壓縮後把mod_fcgid.so丟到apache\modules資料夾。

第二步:打開httpd.conf,加入以下幾行:
# Load mod_fcgid
LoadModule fcgid_module modules/mod_fcgid.so

第三步:解壓縮iipsrv-1.0-win32.zip,把裡面的fcgi-bin資料夾放到web伺服器的網頁資料夾底下(一般是xampp\htdocs)。

第四步:在apache\conf\extra底下新增httpd-iipimage.conf,貼入以下內容:

# Settings for user home directories
#
# Required module: mod_fcgid
# Create a directory for the iipsrv binary
ScriptAlias /fcgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/fcgi-bin/"
# Set the options on that directory
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/fcgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
# Set the module handler
AddHandler fcgid-script .fcgi
</Directory>
# Set our environment variables for the IIP server
DefaultInitEnv VERBOSITY "0"
DefaultInitEnv LOGFILE "c:/windows/temp/IIPImageServer.log"
DefaultInitEnv MAX_IMAGE_CACHE_SIZE "10"
DefaultInitEnv JPEG_QUALITY "50"
DefaultInitEnv MAX_CVT "3000"
# Define the idle timeout as unlimited and the number of processes we want
IdleTimeout -1

「C:/Program Files/Apache Software Foundation/Apache2.2/fcgi-bin/」跟「C:/Program Files/Apache Software Foundation/Apache2.2/fcgi-bin」
改成第三步裡「fcgi-bin」資料夾的實際路徑(注意有/)。
「c:/windows/temp/IIPImageServer.log」是log檔位置,可以隨便換個地方。

第五步:再次打開httpd.conf,加入以下幾行:
<IfModule fcgid_module>
# IIPImageServer configuration directory
Include conf/extra/httpd-iipimage.conf
</IfModule>

第六步:重啟apache,看看這個路徑能不能跑
「127.0.0.1」是本機位置,可以換成「localhost」或IP。
正常的話會看到「IIPImage Server」「Version 1.1」這幾行字。

有時候新版的 IIPImage server會無法執行,這時可以降到0.97版,在最前面參考網頁中的「7) Download IIPImageServer」。

重點6:

下載iipmooviewer,解開後放到xampp的網頁資料夾
(不要用IIP官網的iipzoom,那是flash做的古董了。)

改這兩行就好了
   var server = '/fcgi-bin/iipsrv.fcgi';
   var image = '/path/to/image.tif';
server就是iipsrv.fcgi的所在位置
image圖檔路徑,圖檔不用放在web資料夾裡,所以這個路徑是「根目錄」的位置,例如在「D:\img\image.tif」就是寫「\img\image.tif」

然後前往網頁
http://localhost/iipmooviewer/

重點7:

由於只能讀取tiled過的tif檔,所以要先tiled,以下是用php處理:
第一步:安裝ImageMagick
找適合的裝,我是用php_imagick-3.4.4-7.3-ts-vc15-x64
第二步:把解壓縮後的php_imagick.dll丟到「php/ext」資料夾,其他CORE_RL 跟 IM_MOD_RL開頭的檔案丟到「php.exe」所在位置。
第三步:打開php.ini,加入這一行:
extension=php_imagick.dll
第四步:重啟apache,執行php檔案,內容如下:

$tempImg = new Imagick();
$tempImg->readImage('/img/img.jpg');
$tempImg->setFormat('ptif');
$tempImg->setImageDepth(8);
$tempImg->setOption('tiff:tile-geometry','256x256');
$tempImg->writeImage('/img/img.tif');

順利的話就能得到tiled過的tif檔。

還是無法執行Imagick的話,試著把CORE_RL 跟 IM_MOD_RL開頭的檔案丟到「apache\bin」「Windows\System32」「Windows\SysWOW64」再重啟。
還是不行的話重複第一步,多試幾個版本的ImageMagick。

留言

這個網誌中的熱門文章

網站掃描CSP弱點問題

 最近被網站弱點掃描的CSP問題困擾很久,CSP問題主要是兩種: 1.在CSP中允許內聯腳本執行 2.從CSP中缺少必要的指令 AppScan這兩個問題提供的處理方式都是「配置正確值的Content-Security-Policy」,等於沒說。 後來才發現AppScan無法處理多層的Content-Security-Policy,例如在httpd.conf中設定: default-src 'self' 'unsafe-inline'; 又在htaccess設定 script-src 'self'; 正常來說瀏覽器會採用htaccess的設定,即「script-src 'self';」而不是「script-src 'self' 'unsafe-inline'」,以安全性來說是符合的,但AppScan無法判斷,直接當你沒設定好CSP,解決方法只有不要重複設定,保留一項設定就好。

2016鳥取島根岡山之旅(三)

松江站身輕便(松江駅身がる便) 松江站提供的行李寄送服務,服務對象是宍道湖溫泉和玉造溫泉的住宿客,服務時間為早上九點到下午三點,三點以後會開始配送行李到各個旅館,通常五點前就會送到了。 對不想拎著行李逛街的人來說非常方便,反正都要寄放行李,不如寄到旅館,而且還只要500円,大型行李櫃都還要700円說,實在很划算。 能送到的旅館只限「松江市內」,也就是位在「宍道湖溫泉」和「玉造溫泉」的溫泉旅館。 參考網址: http://www.kankou-matsue.jp/information/service/ http://www.saninji.jp/1930 實際寄送方式如下: 1.到JR松江站以後抬頭就會看到一個看板,照著看板指示前往「南口」的「臨時寄物處」(荷物一時預り所)。 2.由於臨時寄物處在站外,如果一下子找不到的話可以先找到寄物櫃,也就是コインロッカー(Coin Lockers) 3.寄物櫃旁邊就會看到這個招牌,繼續沿著站外走。 4.路上會一直有標示,指引前往臨時寄物處。 5.這裡就是了,別看有派出所就怕了,就是這裡沒錯。 6.跟裡面的人說要寄到哪裡,他會幫你寫好寄送位置,你只要寫名字就好,寫跟旅館訂房間的名字,如果訂房時只有一個名字,寫那個人就可以了。 7.可能會問你有沒有手機號碼,不過大部分人就算有也打不通,說沒有也沒關係。 8.最後會拿到一張收據,理論上要憑收據到旅館櫃檯領行李,不過溫泉旅館秉著服務至上的精神,只要訂房名字沒錯的話,就會直接幫你放到房間裡。

Google 分析 (Google Analytics) 造成的「加密的階段作業 (SSL) Cookie 中遺漏安全屬性」

 Google 分析 (Google Analytics) 的cookies會造成「加密的階段作業 (SSL) Cookie 中遺漏安全屬性」的弱點,網路上有一種解決方式,在gtag中加上參數,如下: gtag('config', 'G-XXXXXXXXXX', {'cookieFlags': 'SameSite=Strict; Secure'}); 但我的系統卻無法使用,研究了一下,要拆開寫,如下   gtag('set', 'cookie_flags', 'SameSite=Strict;Secure');   gtag('config', 'G-XXXXXXXXXX'); 要拆成兩行,Secure就可以用了。 但更簡單的方法是在httpd.conf中加入這一行 Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=Strict 解決。