網頁

2013年8月28日 星期三

Apache2.4 無痛升級

最近應該會開始陸續著手進行 Apache2.4的升級。

找了一些相關資料與實作上的一些疑難雜症,先註記與記錄起來。有空再來慢慢處理。




後來實作經驗:簡單的註記如右,在 Apache2.4 的版本的設定檔內,有些設定需要重新改寫,基本上直接參考Apache 線上文件即可。 我的做法很簡單,先弄一台通用的設定檔,再來就是利用 httpd.exe -t 檢查語法正不正確。語法沒什麼問題後就連上要更新的主機上,將需要更新的檔案置換,再重新啟動,這樣就完成升級的動作。

MySQL5.6 無痛升級

先收集相關資料,等改天再來升級 MySQL資料庫管理系統。

Upgrading MySQL on Windows:應該做以下步驟即可

  1. 先備份所有的資料庫
  2. 停止 MySQL服務
    • 取消掉系統 mysql 服務: mysqld.exe --remove yourservicename
  3. 將下載下來的壓縮檔解壓縮後覆蓋到 MySQL目錄內,如果要保留原主機內的資料,請記得刪除更新檔內的 /data/* 內的檔案後再行覆蓋。
    • 重新將系統 mysql服務加入:mysqld.exe --install mysql5 (其實我不是很確定這步驟是必須的)
  4. 啟動 MySQL服務
  5. 執行 /bin/mysql_upgrade ,讓它去檢查資料表與相關的升級的動作
  6. 升級完成
my.ini修改:
在 mysql 5.5 升級至 5.6有些語法需要修正:


其它相關參考資料:


搞了半天,一點都不無痛:

最簡單的方式還是利用MySQL所提供的 mysql-installer-community-5.6.13.exe 來做安裝的動作,只要將要放的路徑決定好,再使用它的 UI介面,按介面內的提示安裝,就會自動產生 my.ini 檔案。此時再將舊主機內所備份的SQL備份檔案,將它給 dump回新的 MySQL5.6資料庫就完成了。這樣子就不需再調整舊主機內的 my.ini 的設定,因為如果要做調整就需要一個個去了解那些功能在 5.6版本是已宣告不支援,一個個手動修改。@@

透過 MySQL installer 的安裝方式,很簡單,在這稍做記錄,待往後有空時再來看看是否要升級:

執行 MySQL installer,我的習慣是將程式集中到 /MySQL/ 目錄,將 Installation Path & Data Path 指向要放的目錄 (如圖),再來就依 UI 介面內的指示一一設定上去就可以很迅速的完成安裝的動作了。



















2013年7月31日 星期三

Filezilla FTPS Server

Filezilla FTP Server 也有支援 FTPS。
  • 設定方式,可直接 參考此篇 的說明。
  • 在防火牆需要開通的 port為:20-21,990,5000-5005(視設定而定)。
加強安全性
  • 服務的預設是採用系統服務執行,執行身份的群組歸屬於 SYSTEM。可做以下方式調整。
  • 新增一個服務帳戶(e.g. admin_ftp),將此帳戶歸屬於 guest 群組
  • 到 filezilla Server 的安裝目錄,給予 admin_ftp 帳號需要的權限
  • 到 "服務" 內將 filezilla server 改用 admin_ftp 身份啟動
  • ftp 所分享的目錄也要設定 admin_ftp 需要的權限 (這部份不用另外設定也是可運作的)
相關資料

2013年7月17日 星期三

硬碟突然出現格式化的狀況

前些天硬碟突然出現格式化的狀況,真的是有夠驚恐的。1T的硬碟說完蛋就完蛋,也沒有半點的預警。還好平常就有養成備份的習慣,所以也還 OK。

想起之前有去下載了一套 EASEUS Data Recovery Wizard 4.3.6 (Giveway),試用了一下,效果很好,很多的檔案就救回來了。還真是不錯用。



2013年7月4日 星期四

QR Code Generator

Google 最近宣布很多應用不在提供服務。前些天才突然發現到部份的 image chart API 也要終止服務了,雖然現在這個服務還可以暫時使用,不過也不知什麼時候會突然就不能用了。

館內有許多的應用,也是利用 Google Chart API 來實作,透過這個 API 能很簡單的實作漂亮的圖來呈現,豐富了頁面的內容。說實在的突然看到 Google 宣布這項訊息時,還真的是很訝異,不過也沒辦法。

館內的 QRCODE&MAP 這項服務也才上線不久,雖說使用的人應該不多,而且之前所做的服務更不太可能說關就關,所以只好要配合著動了。

找了一下相關的資料,在 QRCODE 的部份,其實已經有很好的 open sources 可以使用,如:GitHub  內的專案內的 PHP-QR-Code

不囉嗦,就直接應用 PHP-QR-Code內的程式碼來使用。修改的方式可以直接拿解開的壓縮檔內的 index.php 來做修改,配合著我們的需求修改。修改完成後,上傳到服務主機,切換原來撰寫的程式。再來就是觀察後續的狀況了。收工。

相關資訊:


2013年6月27日 星期四

PHP Calendar

寫一個月曆系統是有些難度的。稍微 Google 一下,也有不少 open sources code 可以使用,不過有些做的過於複雜,有些則是呈現上不符合自己的喜好。

找著找著,這位作者所做的 Build a Calendar Using PHP, XHTML, and CSS,就做的很棒,基本上可以拿這個當作基礎往上再自行發揮。作者從最為基本的操作、增加控制器到如何使用事件寫的很清楚。

我在實作這篇 Add Events to the PHP Calendar 時是有碰到一些問題 (作者並沒有將 SQL與Connection to MySQL With PHP Function 一同放上去,自訂的 SQL 與相關註記如下),在此稍微記錄一下:
  • 新增 MySQL Schema:
CREATE TABLE IF NOT EXISTS `events` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) COLLATE utf8_bin NOT NULL,
  `event_date` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
  • 新增與修改以下 PHP Script
$db_link = mysql_connect('127.0.0.1', 'root', 'password');
mysql_select_db('calendar', $db_link) or die('Could not select database.');
$month=sprintf("%02d",$month);//1 tobe 01

$query = "SELECT title, DATE_FORMAT(event_date,'%Y-%m-%d') AS event_date FROM events WHERE event_date LIKE '$year-$month%';";
PS,(1) 新增MySQL Connection function ;(2) 因為(int)宣告與 mysql 檢索條件的緣故,所以改為將 $month 變數內的數字自動補 0;(3) DATE_FORMAT(event_date,'%Y-%m-%D')改為DATE_FORMAT(event_date,'%Y-%m-%d'),後來發現改成 %d後也是有問題,使用%d的條件,在1-9的日期不會呈現在月曆上,需改成 %e 才可以,DATE_FORMAT(event_date,'%Y-%m-%e'),這樣才運作正常。

2013年6月17日 星期一

Dbinbox Service

過陣子館內要舉辦一個國際型的研討會。在籌備討論的過程中有討論到要做一個簡易的上傳系統來給演講者使用,透過它能讓講者簡易的傳送演講資料。

其實當時有討論到使用 dropbox , google drive 之類的。不過討論時,因為無法確認講者是否熟悉這類的平台,而且若是講者沒有該平台的帳號,對講者來說也是個困擾。……最後在討論的過程中還是決議不做這個部份。

剛好,看到在這篇「dbinbox:允許任何人直接上傳檔案至你的 Dropbox」的資料,這樣子就算講者沒有 dropbox的帳號,也不需再去做申請的動作。