現在工作時都要將 Eclipse 與 Dreamweaver 開啟,主要都是以 Eclipse 來編寫網頁,而 Dreamweaver 只是拿來做上傳同步,這兩個軟體都是出了名的肥,光是開啟就用 500 MB 的記憶體。
原本想用 CVS 做遠端同步,可惜 CVS 不是拿來做這種簡單的事,CVS 是用在多人開發間的同步橋樑,透過一個版本管理伺服器,去協調多個開發者的同步問題,所以不適合用在網頁上傳的同步處理。
由於花了很久的時間在安裝這套工具上,其實要安裝這個工具是很簡單的,但為什麼我會花那麼的時間呢?這是個好問題,所以想為這些光陰來寫個詳細的安裝流程。
架設 CVS Server
1.安裝 CVS:
$sudo apt-get install cvs
2.安裝 CVSD:
$sudo apt-get install cvsd
3.在 /var/lib/cvsd 下建立 /myrepos 目錄,這是以後 CVS 的專案集(工作區)。
$cd /var/lib/cvsd
$sudo mkdir myrepos
4.初始化這個/myrepos。
$sudo cvs -d /var/lib/cvsd/myrepos init
5.設置 myrepos 專案集的使用者認證方式,預設是使用系統中的帳號,為了安全還是使用 CVS 來管理使用者。
$sudo vi /var/lib/cvsd/myrepos/CVSROOT/config
加入以下設定:
# 關閉系統帳號的使用者連結 CVS
SystemAuth=no
PamAuth=no
# 設定 LockDir 的相對路徑
LockDir=/tmp/myrepos
然後保存退出。注意此處的/tmp/myrepos是指相對於RootJail的路徑。
6.建立 LockDir 目錄
$sudo mkdir /var/lib/cvsd/tmp/myrepos
7.增加 CVS 的用戶帳號
$sudo cvsd-passwd /var/lib/cvsd/myrepos cvsuser
8.編輯 CVSD 的設定檔。
$sudo vi /etc/cvsd/cvsd.conf
# 預設設定如下:
RootJail /var/lib/cvsd
Repos /myrepos。
# 連接阜(Port)
Listen * 2401
10.設定目錄權限,以後加入新專案時也要檢查權限設定。
$sudo chown -R cvsd:cvsd /var/lib/cvsd
11.重新啟動 CVSD。
$sudo /etc/init.d/cvsd restart
12.測試連線狀況
$cvs -d :pserver:cvsuser@localhost:/myrepos login
$cvs -d :pserver:cvsuser@localhost:/myrepos checkout
利用 Eclipse 連結 CVS (PS:記得先將本地端的專案備份)。
1.在 /myrepos 中建立專案 test
$cd /var/lib/cvsd/myrepos
$sudo mkdir test
$sudo chown -R cvsd:cvsd test
2.在 Eclipse 中建立專案 test
檔案→新建→專案
專案類型:(自訂)
專案名稱:test
3.切換工作至:團對同步化
4.建立新同步
5.選擇同步方式:CVS
6.填入連線設定:
在儲存庫路徑上記得加上/
7.填入同步的專案名稱 (myrepos 中 test)
點選下一步
8.選擇初始的同步方式 (PS:如果沒選第三個會將本地端的專案給清空)
然後點選完成
9.再次點選新同步
10.選擇同步方式:CVS
11.這時候就會出現剛剛設定好的連線,選擇 test 按下完成。
參考資料:
分享Ubuntu Linux上边的CVS服务器的配置
Ubuntu CVS服务器设置
Ubuntu下CVS服务器的搭建
Ubuntu Linux操作系统CVS安装与配置详解
2008-01-27 23:02
2008-01-27 15:33
架站使用 UTF-8 要檢查的項目
一開始最基本的就是環境設定,Server 對於文字的編碼設定,這也是最重要的。
關於 Apache Server 的設定:
在 /etc/httpd/conf/httpd.conf(Red Hat) 或 /etc/apache2/conf.d/charset(Ubuntu) 中開啟對 UTF-8 編碼的設定:
AddDefaultCharset utf-8
關於 Mysql Server 的設定:
在使用 script 進行新增/修改時記得在 script 檔中加入:
SET NAMES 'utf8';
在 PHP 存取前也應該先宣告編碼方式:
mysql_query("SET NAMES 'UTF8'");
在建立文字欄位(TEXT, VARCHAR, ...)時也必須定義文字的編碼方式:
CHARACTER SET utf8 COLLATE utf8_unicode_ci
在編寫網頁文件時,除了要注意檔案是否使用 UTF-8 編碼外,還要記得加上編碼宣告,因為解讀器並沒有那麼聰明,沒辦法準確的辨別檔案的編碼方式,所以請一定要加上編碼宣告。
關於 HTML 文件的宣告:
<meta equiv="Content-Type" content="text/html; charset=UTF-8">
關於 XML 文件的宣告:
<?xml version="1.0" encoding="UTF-8"?>
關於 PHP 文件的宣告:
header('Content-type: text/html; charset=utf-8');
參考文章:UTF-8 checklist - soledad penadés
關於 Apache Server 的設定:
在 /etc/httpd/conf/httpd.conf(Red Hat) 或 /etc/apache2/conf.d/charset(Ubuntu) 中開啟對 UTF-8 編碼的設定:
AddDefaultCharset utf-8
關於 Mysql Server 的設定:
在使用 script 進行新增/修改時記得在 script 檔中加入:
SET NAMES 'utf8';
在 PHP 存取前也應該先宣告編碼方式:
mysql_query("SET NAMES 'UTF8'");
在建立文字欄位(TEXT, VARCHAR, ...)時也必須定義文字的編碼方式:
CHARACTER SET utf8 COLLATE utf8_unicode_ci
在編寫網頁文件時,除了要注意檔案是否使用 UTF-8 編碼外,還要記得加上編碼宣告,因為解讀器並沒有那麼聰明,沒辦法準確的辨別檔案的編碼方式,所以請一定要加上編碼宣告。
關於 HTML 文件的宣告:
<meta equiv="Content-Type" content="text/html; charset=UTF-8">
關於 XML 文件的宣告:
<?xml version="1.0" encoding="UTF-8"?>
關於 PHP 文件的宣告:
header('Content-type: text/html; charset=utf-8');
參考文章:UTF-8 checklist - soledad penadés
2008-01-22 22:15
cookie 路徑問題
在 PHP 中使用 Cookie 是一個簡單又快樂的事
你可以用下面的方法設置一個暫存 1800 秒的 Cookie 變數:
setcookie ("a", "123", time()+1800);
如果你想要一個能暫存七天的 Cookie 變數:
setcookie("a","123",mktime(0,0,0,date("m"),date("d")+7, date("Y")));
然後利用下面的方法去取得 Cookie 變數,這也是既簡單又快樂的事
$_COOKIE['a']
但是要是不瞭解 Cookie 的路徑設定,你可能會發生非常不快樂的問題,造成其他頁面無法取的某路徑下的 Cookie,所以 Cookie 路徑設定這時候就會變的很重要,關於詳細的 Cookie 設定如下:
setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
參數說明
(name) Cookie的變數名稱
(value) Cookie名稱的值
(expire) Cookie的留存時間,以「秒」為單位,如果沒有設定,當瀏覽器關掉時,cookie也跟著結束。
(path) 指在哪些目錄下的檔案可以使用Cookie
(Domain) 設定哪些網域可以使用Cookie
(Secure) 安全性-如果結合HTTPS安全傳輸協定(SSL),就是「1」,一般則為「0」。
使用setcookie( )函數時,得先注意下列事項:
參考文章:PHP程式設計講義區
你可以用下面的方法設置一個暫存 1800 秒的 Cookie 變數:
setcookie ("a", "123", time()+1800);
如果你想要一個能暫存七天的 Cookie 變數:
setcookie("a","123",mktime(0,0,0,date("m"),date("d")+7, date("Y")));
然後利用下面的方法去取得 Cookie 變數,這也是既簡單又快樂的事
$_COOKIE['a']
但是要是不瞭解 Cookie 的路徑設定,你可能會發生非常不快樂的問題,造成其他頁面無法取的某路徑下的 Cookie,所以 Cookie 路徑設定這時候就會變的很重要,關於詳細的 Cookie 設定如下:
setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
參數說明
(name) Cookie的變數名稱
(value) Cookie名稱的值
(expire) Cookie的留存時間,以「秒」為單位,如果沒有設定,當瀏覽器關掉時,cookie也跟著結束。
(path) 指在哪些目錄下的檔案可以使用Cookie
(Domain) 設定哪些網域可以使用Cookie
(Secure) 安全性-如果結合HTTPS安全傳輸協定(SSL),就是「1」,一般則為「0」。
使用setcookie( )函數時,得先注意下列事項:
- 與session_start( )函數的狀況一樣,在使用setcookie( )函數時,之前都不可以有任何的結果輸出。
- 如果 php.ini 的「register_globals」設為 on,只要在cookie有效期限用,可以直接使用 $變數輸出變數的內容,但如果設成 off ,則需要用 $_COOKIE["名稱"] 或 $HTTP_COOKIE_VARS["名稱"] 方式取得內容。
- 如果沒有設定留存時間,雖然有指定cookie名稱及數值,但因為一設定就過期,結果是無法讀取您寫入的 Cookie。
- 如果要刪除cookie的話,直接把要刪除cookie名稱的值設定為空白即可。
參考文章:PHP程式設計講義區
2008-01-06 00:24
TinyMCE 好用的 HTML 編輯器
這是個不錯的 HTML 編輯器,完全只使用 JavaScript 寫成,可以在沒有 Web server 的狀況下 work,有非常強大的功能,可以自行開發外掛模組,而且有詳細的參數設定,可以根據個人的需求加一改寫,支援多國語言,有官方語言包,而且也支援各種的瀏覽器。
官方網站-下載頁面
中文設定說明
官方網站-下載頁面
中文設定說明
<script language="javascript" type="text/javascript"
src="../jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode: "textareas",
/* (textareas) 將所有 textarea 轉換成編輯器。*/
/* (exact) 只轉換特定的元素。
在 elements 設定中指定那些元素的 ID 或 name 。*/
theme: "advanced",
/* (advanced) 這是TinyMCE的高級主題,*/
/* 這個主題允許用戶增加刪除按鈕/面板,並且比簡單或默認主題更加靈活。*/
/* (simple) 這是TinyMCE最簡單的主題,只包括最基本的功能。*/
language: "zh_tw_utf8",
/* 設定多國語言的檔案名稱*/
content_css: "example_full.css",
/* 用於編輯器內部(可編輯區域)的 CSS文件*/
plugins: "devkit,style,layer,...",
/* TinyMCE 的外掛插件,也可以載入自己寫的外掛*/
theme_advanced_buttons1_add_before: "save,newdocum...",
theme_advanced_buttons1_add: "fontselect,fontsizes...",
theme_advanced_buttons2_add: "separator,insertdate...",
theme_advanced_buttons2_add_before: "cut,copy,paste...",
theme_advanced_buttons3_add_before: "tablecontrols...",
theme_advanced_buttons3_add: "emotions,iespell,...",
theme_advanced_buttons4: "insertlayer,moveforward,...",
/*共有三類的方法設定按鈕列的配置,所有按鈕的清單*/
/* theme_advanced_buttons<1-n> 直接設置按鈕的清單*/
/* theme_advanced_buttons<1-n>_add 在預設的清單後面加入額外的按鈕*/
/* theme_advanced_buttons<1-n>_add_before 在預設的清單前面加入額外的按鈕*/
theme_advanced_toolbar_location: "top",
/* 按鈕列的位置 "top", "bottom", "none"*/
theme_advanced_toolbar_align: "left",
/* 按鈕列的對齊方式。left, right, center。*/
theme_advanced_path_location: "bottom",
/*路徑及調整大小按鈕的狀態列的位置。
"top", "bottom", "none"*/
theme_advanced_resize_horizontal: false,
theme_advanced_resizing: true,
nonbreaking_force_tab: true,
apply_source_formatting: true,
relat2ive_urls: false,
rem2ove_script_host: false,
});
</script>
分類:
分享好物,
JavaScript
0
回應
2008-01-05 22:40
PHP 上傳變數 $_FILES
在 PHP 中可以透過 $HTTP_POST_FILES 或 $_FILES 變數來存取所上傳的檔案詳細內容。輸入元素名為 inputfile,其中資訊有:
參考頁面:
PHP Developer Channel
PHP5網管實驗室
$_FILES['inputfile']['name'] // 檔案在客戶端電腦上的檔案名稱 $_FILES['inputfile']['type'] // 檔案的 MIME 類型,例如 "image/gif" $_FILES['inputfile']['size'] // 上傳檔案的檔案大小,單為為 bytes $_FILES['inputfile']['tmp_name'] // 上傳檔案儲存在伺服器端的暫存檔案名 $_FILES['inputfile']['error'] // 在 PHP 4.2.0 或更新的片本才有的這個陣列元素,上傳檔案的錯誤號碼
參考頁面:
PHP Developer Channel
PHP5網管實驗室
訂閱:
文章 (Atom)