<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Extreme Pattern: typo 4  install and UTF8</title>
    <link>http://blog.extremepattern.com/articles/2006/08/14/typo-install-and-utf8</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>enjoy</description>
    <item>
      <title>typo 4  install and UTF8</title>
      <description>&lt;p&gt;安裝在共用環境的一些經驗與紀錄。&lt;/p&gt;


	&lt;p&gt;1. 共用 gem/ruby 環境會產生版本不同的議題，這裡採用 &lt;a href="http://wiki.dreamhost.com/index.php/Typo"&gt;typo@Dreamhost&lt;/a&gt; 作法，將 ruby/gem 安裝到個人目錄 $HOME 下。&lt;/p&gt;


	&lt;p&gt;2. 新的安裝雖然提供 typo install，但是一來文件不多，不知要改哪些設定檔，索性直接裝上去。預設裝的 sqlite 的版本，裝完會自行啟動，需要手動關掉。&lt;/p&gt;


&lt;pre&gt;
$gem install typo --include-dependencies
$gem list | grep typo
typo (4.0.2)
$ typo install /path/blog.extremepattern.com
&lt;/pre&gt;

	&lt;p&gt;3. 安裝後沒看到 .htaccess  &lt;span class="caps"&gt;SVN&lt;/span&gt; 來源複製該檔案，沒有這個檔，共用環境的 Apache 會直接秀出檔案列表，而不是交給 dispatch.fcgi 處理。另外注意&lt;/p&gt;


	&lt;p&gt;另一個常見導致 500 error 狀態的問題需要修改 dispatch.fcgi 檔。&lt;/p&gt;


&lt;pre&gt;
#!/usr/bin/env ruby
#
require File.dirname(__FILE__) + "/../config/environment" 
require 'fcgi_handler'
class RailsFCGIHandler
 private
    def frao_handler(signal)
      dispatcher_log :info, "asked to terminate immediately" 
      dispatcher_log :info, "frao handler working its magic!" 
      restart_handler(signal)
    end
    alias_method :exit_now_handler, :frao_handler
end

RailsFCGIHandler.process!
&lt;/pre&gt;

	&lt;h3&gt;Update 0817&lt;/h3&gt;


	&lt;p&gt;刪除該段 500 error 碼，觀察看看。&lt;/p&gt;


4. 登入 mysql 設定預設編碼。
&lt;pre&gt;
ALTER DATABASE DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
&lt;/pre&gt;

5. 修改 database.yml 加入 encoding
&lt;pre&gt;
login: &amp;#38;login
  adapter: mysql
  host: mysql.xxxx.com
  username: foo
  password: 1234
  encoding: utf8
......
&lt;/pre&gt;

	&lt;p&gt;6. 修改 environment.rb 啟動產品狀態。&lt;/p&gt;


&lt;pre&gt;ENV['RAILS_ENV'] = 'production'&lt;/pre&gt;

	&lt;p&gt;7. 設定資料庫表格結構。&lt;/p&gt;


&lt;pre&gt;rake migrate RAILS_ENV=production&lt;/pre&gt;

	&lt;p&gt;8. 確認 &lt;span class="caps"&gt;UTF8&lt;/span&gt; 是用另一種軟體確認，用 phpMyAdmin 來確認編碼正確。&lt;/p&gt;


	&lt;p&gt;[UPDATE] 用一天之後發生奇怪的亂碼行為，用 phpMyAdmin 檢視沒有問題，代表非 MySQL 端問題，似乎是變成共用 ruby 環境導致，登入檢視 ps aux 發現只有 /usr/bin/ruby1.8 dispatch.fcgi
 運行，而非 ruby dispatch.fcgi，最後將所有程序刪除後才恢復正常的 ruby dispatch.fcgi 出現。&lt;/p&gt;


	&lt;p&gt;出現亂碼時可以新增一筆資料進資料庫，秀出來居然也是正常，只是進 phpMyAdmin (UTF8) 看該筆資料卻是亂碼，可見 Coon. 的 encoding 當時應該是 latin1 如下情形。&lt;/p&gt;


&lt;pre&gt;
Server characterset:    latin1
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1
TCP port:               3306
&lt;/pre&gt;</description>
      <pubDate>Mon, 14 Aug 2006 21:07:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:3e1fed80-ef48-462d-a5c1-e3068a6d9d0d</guid>
      <author>LIN</author>
      <link>http://blog.extremepattern.com/articles/2006/08/14/typo-install-and-utf8</link>
      <category>typo</category>
      <category>utf8</category>
    </item>
  </channel>
</rss>

