解決openwebmail internal server error 問題困擾

因為我們的mail server是用linux架設起來的搭配
linux + postfix + Mail Scanner + spamassassin +Clam AV + openwebmail

為了滿足各種行動狀置的需求,我另外還開了imap但是,使用perl開發的openwebmail老是會出狀況,不是outlook 2007貼圖的郵件打不開要不然就是亂碼花了相當多的時間,都沒有辦法順利的處理煩人的「internal server error」原本想跟老闆要70萬,完全解決internal server error和共用通訊錄的問題,其實internal server error是大問題,LDAP共用通訊錄的部份也一直沒有時間去測試
老闆說,明年弄不好就要虧錢了,這樣的sulotion 我實在不敢提,這個預算實在很難花的下去
所以,我打算尋找openwebmail 的替代品。
Read more

mysql資料庫亂碼問題處理

如果你用的php+mysql系統夠多,一定會遇到亂碼的問題,網路上有一堆解法,但是這些是對的嗎?不知道,我照了幾篇來做,就是有問題。

有一些國外的系統,使用的編碼方式是latin1,字集是用latin1_swedish_ci,結果系統運作的時候是正常的,但是如果系統出了問題,要從phpmyadmin進去維護,就會一個頭3個大。有人說這是因為在latin1編碼中存入big5字型的關係,結果我測試的結果,是在latin1中存入了utf8中文字,所以沒有辦法正常的顯示。因為不是所有的環境都可以透修改my.ini來達成,所以就要繞道而行。

先來證明一下假設好了,下一下sql指令,看一下資料庫中用了那些字集(編碼方式)
SHOW VARIABLES LIKE ‘character_set%’;
再來看一下是用了字集中的哪些字
SHOW VARIABLES LIKE ‘collation%’;

mysql中的操作指令
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;

mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;

SET NAMES ‘utf8’;
等於下面三個指令
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

好咧,就來看一下在php結合mysql中 要怎麼處理,可以使用下面的指令
mysql_query(‘SET CHARACTER SET utf8’);
mysql_query(‘SET NAMES utf8’);
mysql_query(‘SET COLLATION_CONNECTION utf8’);
mysql_query(‘SET COLLATION_DATABASE latin1’);

接著,就出現正常的內容囉!怎麼實際透過php操作mysql,還有一點技巧,我在這裡就不說了,想知道的留言問,免得被別人整篇抄去。