歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 23, 2024, 04:34:36 上午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  [分享] 將Lifetype從Windows server搬移到Linux server上 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: [分享] 將Lifetype從Windows server搬移到Linux server上  (閱讀 6861 次)
falldog
新手見習
*
文章: 18


檢視個人資料
« 於: 八月 26, 2007, 08:26:16 上午 »

原文出自:http://falldog.no-ip.org/lifetype/post/1/44

之前在windows上執行,有時候會造成Apache莫名奇妙地失靈,所以才想將server移至Linux Ubuntu上執行。這樣子所吃的資源可能也會比較少一點。

以下紀錄了移機的過程,主要遇到的問題有...編碼以及轉簡潔網址的問題。


[事前準備工作]
將Windows的資料備份出來
將apache底下的lifetype整個資料夾壓縮備份起來(用zip壓縮,傳至Linux上再用unzip解壓縮)
進入phpMyAdmin後,將lifetype資料庫輸出至檔案中lifetype.sql(請選擇「使用完整新增指令」)
在Ubunte上安裝Apache、Mysql、PHP(在這邊不多加著墨)
% sudo apt-get install apache2
% sudo apt-get install mysql
% sudo apt-get install php
% sudo apt-get install php-mysql

將原本Windows的lifetype程式碼,傳至apache2預設資料夾/var/www/
unzip lifetype.zip
上網下載phpMyAdmin,用來管理mysql資料庫
wget http://xxxxx.tar.gz/
tar -xvzf xxxx.tar.gz


[重建Database]
利用phpMyAdmin建立一個lifetype資料庫,校對要調成utf8_unicode_ci
在Windows匯出的lifetype.sql檔前面加上
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;

在cmd line下指令,匯入lifetype.sql檔
mysql  [lifetype DB name]  -u[Name] -p[Password] < lifetype.sql \
--default-character-set=utf8
# 因為mysql的預設編碼為latin1,因為需設定正確的character-set才能匯入
# 或是直接更改mysql預設的編碼方式為utf8就更乾脆了,可修改mysql的設定檔my.cnf
# [client]
# default-character-set=utf8
# [mysqld]
# default-character-set=utf8
# default-collation=utf8_general_ci


[建置Lifetype網站]
把原本在Windows上的lifetype資料夾複製到/var/www後,建議是把wizard.php抓回來,重新建置一遍,這樣子會比較簡單一點,否則要自己動手修改一些東西。
修改/lifetype/config/config.properties.php內的db_host為
$config['db_host'] = localhost
將tmp及gallery這兩個資料夾權限改為777
% cd /var/www/lifetype
% chmod 777 tmp
% chmod 777 gallery
看gallery底下有幾個資料夾就改幾個資料夾的權限,因為這些都是blog user上傳檔案的資料夾,因為本站只有一個user,blog_user_id為1,所以就只有一個資料夾「1」
% cd gallery
% chmod 777 1

輸入網站的網址,試試看是否正常運作。照理來說,到目前為止應該都是正常的。
% /etc/init.d/apache2 start
如果出現Error Message: apache2: Could not determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
在/etc/apache2/apache2.conf中,加入ServerName localhost即可
但是,要進入admin.php的後台管理系統卻會失敗,因為原本網站的IP跟新網站的IP不一樣,而原本的DB中紀錄的base_url導致網頁中的連結都不正常了。
@解決方法:利用phpMyAdmin進入lifetype的DB,進入lt_config這個Table。修改其中的兩項參數:
base_url
blog_does_not_exist_url
將這兩個url參數中的網址改成新的IP就行了!

網站中如有使用authImage外掛,可能會發現在產生驗證圖檔時,出現錯誤訊息「You don't have GD support compiled in, we cannot create an authimage. Please activate GD Support.」。這是因為你的php5沒有使用GD module,因為只要將GD module安裝起來即可,以下為Ubuntu的做法
% apt-get install php5-gd
% /etc/init.d/apache2 restart

[使用簡潔網址]
有使用簡潔網址的人,因為Ubuntu預設沒有掛載mod_rewrite,所以要先將module rewrite掛進來,因為apache在安裝時,其實已經裝載好,只是尚未load而已。而load的語法已寫好放在/etc/apache2/mods-available中,只要做個link放至mods-enabled,apache就會自動去load了
% sudo ln -s /etc/apache2/mods-available/rewrite.load \
  /etc/apache2/mods-enabled/rewrite.load
或是
% sudo a2enmod rewrite

修改/etc/apache2/sites-enabled/000-default
先找到
<Directory /var/www>
   ...
</Directory>
將其中的AllowOverride後的None改為All
Options後面要有FollowSymLinks

然後重新啟動Apache
/etc/init.d/apache2 restart
順利的話,應該就一切正常了:)
可惜的是,我一點也不順利....Orz,我開網頁時,一直遇到error 500,打開apache的error.log檔來看時,顯示的錯誤是:「/var/www/lifetype/.htaccess: </Files> without matching <Files> section 」我一直不知道是哪裡的問題,千萬百試之後,才發現,我的.htaccess檔的編碼是utf8,後來把它改成ansi編碼就OK了~我猜可能是從windows複製過來linux後的才變這樣。

 
已記錄
頁: [1]
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  [分享] 將Lifetype從Windows server搬移到Linux server上 « 上篇主題 下篇主題 »
    前往: