Archive

Archive for February, 2012

生態與工程生態習性資料庫修復

February 29th, 2012 No comments

今天發現生態與工程生態習性資料庫秀空白頁面,追了一下,先總結原因:MediaWiki 1.9.3 與 PHP 5.3 不相容。(PHP Parse error:  syntax error, unexpected T_NAMESPACE, expecting T_STRING in /var/www/html/eemwiki/includes/Namespace.php)

解決方法是將 MediaWiki 升級(本篇完稿時為 1.18.1)。

在執行升級程式 maintenance/update.php 時,遭遇一些錯誤:

  1. 需將 StartProfiler.php 註解取消引用舊版的 includes/ProfilerStub.php
  2. 需停用 extensions/DynamicPageList2 (於 LocalSettings.php 註解取消引入)【安全因素】
  3. 可停用 extensions/GoogleSitemap (於 LocalSettings.php 註解取消引入),另外改以 crontab 方式自動產出 Sitemaps XML,並編寫 robots.txt 指引搜尋引擎抓取。

目前已恢復正常。

Categories: TaiBIF Tags:

TapirLink 遭遇 PHP fopen() 函式失效時的解決經驗

February 29th, 2012 No comments

日前與某合作單位夥伴接洽處理 TapirLink 的安裝設定問題。主要症狀是無法引入外部的模組 (module, URL 當中的 m 參數),會傳回 Failed to parse request, IO_ERROR 的錯誤訊息;然而 accesspoint 本身獨立運作是正常的。

首先為了診斷問題,我們請夥伴開啟 TapirLink 的 DEBUG 模式,以便得到詳細的問題報告資料。將 www/ 底下之 localconfig_dist.php 複製為 localconfig.php 後,設定以下參數:

define('TP_LOGLEVEL', PEAR_LOG_DEBUG);
define('TP_ALLOW_DEBUG', true);
define('_DEBUG', true);
define('TP_LOG_DEBUG', true);
define('TP_DEBUG_DIR', TP_LOG_DIR);
define('TP_DEBUG_LOGFILE', 'debug.txt');

檢視得出的 debug.txt 後,發現是 fopen() 函式無法以 HTTP  取得遠端 (remote) 資源。但是進一步檢視夥伴的 PHP 設定(查看 php.ini 與 phpinfo() 頁面),allow_url_fopen 設定值確實為 On;且在伺服器上改以瀏覽器取得被引用到的遠端資源,正常無誤,應可排除防火牆之類的外部限制因素;又以 wget 程式測試遠端資源的伺服器是否限制特定的 user agents,結果也並未設限。

此夥伴的 PHP 是以 ISAPI 的組態方式架設在 Windows IIS 上,不是較為常見的 AMP (Apache, MySQL, PHP) 組態。但是為了讓夥伴的 TapirLink 先求能動,在此暫不繼續深究是否有其他因素導致 fopen() 未如預期運作。我們決定讓夥伴的 TapirLink 改以優先從自家伺服器本地端 (local) 擷取所需的這些 *.xml & *.xsd 檔案,同樣設定 localconfig.php:

define('TP_LOCAL_REPOSITORY', 'c:/tapirlink');
define('TP_FILE_RETRIEVAL_BEHAVIOUR', 'prefer_local');

再依設定所示,於伺服器建立 C:\tapirlink 目錄後,將這些被引用的 *.xml, *.xsd 檔案放入此處。這些檔案至少有:

http://rs.tdwg.org/tapir/cs/dwc/1.4/model/dw_core_geo_cur.xml
http://rs.tdwg.org/dwc/tdwg_dw_record_tapir.xsd
http://rs.tdwg.org/dwc/tdwg_dw_core.xsd
http://rs.tdwg.org/dwc/tdwg_basetypes.xsd
http://rs.tdwg.org/dwc/tdwg_dw_element.xsd
http://rs.tdwg.org/dwc/tdwg_dw_geospatial.xsd
http://rs.tdwg.org/dwc/tdwg_dw_curatorial.xsd
http://140.109.29.92/tapirlink/model/output_record.xml
http://140.109.29.92/tapirlink/model/output_record.xsd
http://140.109.29.92/tapirlink/darwinxml/darwin_c.xsd

經過這些設定,終於讓夥伴的 TapirLink 正常運作。

Categories: TaiBIF Tags: