2016年3月25日 星期五

Appfog 主機升版為 v2 後 twstockbot 改版問題

前陣子 Appfog 通知要升版為 v2, 我以為它要藉此把早期加入的免費會員掃地出門, 所以就趕緊下載程式與資料庫備份, 打算轉移陣地. 昨天連線網站, 出現如下無法連線畫面, 更加肯定真的不能用了 :

# Appfog v1 退場了


所以就著手把相對應的 GAE 應用服務修改為去 trigger 英國 Hostinger 主機. 但回頭想說難道原來的Appfog 登入網頁真的進不去了嗎? 試試居然還可以, 但進去後發現兩個應用程式狀態為 stopped, 我猜它只是在升版時把全部應用程式都關閉, 升版後卻沒自動幫我啟動服務而已, 手動開啟後 cron jobs 就恢復運作了 :

# https://console.appfog.com/


真是太好了! 這樣我就不用另闢蹊徑, 可以繼續使用 Appfog 的穩定服務啦! 從上面的 cron_log 紀錄可知 Appfog 是在 3/22 日凌晨快兩點時關閉了我的應用程式.

不過前陣子我的 EasyuiCMS 架站機有改版, 除了全部改用 mysqli 函式庫 (因為 Hostinger 已不支援 mysql 函式庫), 也修改了訪客列表, 增加顯示訪客來自哪一個國家, 這部分需要在手動調整好資料表後再更新程式. 要修改的部分參考 :

從 IP 查來源國家 (二)
# EasyuiCMS 改版為 v2 (mysqli)

依照步驟下載最新的 ip2nation.zip 檔解壓縮後得到 ip2nation.sql, 然後進入 phpmyadmin 後台的 import 上傳此 sql 檔, 結果出現 "No data was received to import" 錯誤 :


仔細看原來是伺服器預設最多只能上傳 2014KB 檔案, 而解壓後的 ip2nation.sql 為 3883KB, 已經超過了. 解決辦法是上傳壓縮檔, 但檔名必須符合其規範, 亦即要以 .sql.zip 結尾. 所以將下載來的 ip2nation.zip 改為 ip2nation.sql.zip (351KB) 再上傳就可以了 :


左方可見已建立 ip2nation 與 ip2nationCountries 資料表了.

接下來是在 phpmyadmin 的建立 nation 這張資料表來達成中文化, 從下列網址下載 nation.sql 檔 :

下載國名簡碼與中文國名對照表 nation.sql

其內容如下 :

CREATE TABLE IF NOT EXISTS `nation` (
  `code` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`code`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `nation` (`code`, `name`) VALUES
('ad', '安道爾'),
('ae', '阿拉伯聯合大公國'),
('af', '阿富汗'),
('ag', '安地卡'),
('ai', '安圭拉島'),
.....

('bl', '聖巴泰勒米'),
('mf', '法屬聖馬丁'),
('sx', '荷屬聖馬丁'),
('ss', '南蘇丹'),
('um', '美國本土外小島嶼');

此檔案僅 7KB 而已, 不須壓縮, 直接 import 即可.

建立了這三張表單就可以更新應用程式了.

開啟 command 視窗, 切換到 twstockbot 目錄, 下這兩個指令就可更新檔案了 :

af login

af update twstockbot

但是上傳應用程式後瀏覽網頁卻顯示系統安裝畫面, 我原以為是 db.php 弄錯了別的主機, 更正之後還是一樣, 後來我試著改回匯入 mysql 函式庫後就都恢復正常, 原來 Appfog 不支援 mysqli! 看來需要維持兩個版本的 EasyuiCMS 了, 如果應用服務部署在 Hostinger 就要用 mysqli 版本.


沒有留言:

張貼留言