proftpd1.3.2

這篇文章將介紹 proftpd1.3.2 這套 FTP Server 軟體

如果你用的作業系統是Ubuntu、Debian等等有 apt-get 套件管理系統的 OS 的話,那你應該可以直接 apt-get install proftpd

或者你希望有視窗管理介面那就 apt-get install gadmin-proftpd

不過下面的介紹將針對自行編譯的部份做註解,以供往後我自己編譯方便。

  • Per directory “.ftpaccess" configuration similar to Apache’s “.htaccess".
  • 每個資料夾底下有個 .ftpaccess ,類似於 Apache 的 .htaccess

  • Virtual users.
  • 支援虛擬使用者

  • There is no SITE EXEC command
  • 沒有使用任何系統命令,所有的操作都是proftpd自身的程式碼。

沒有其他需求的話,最簡單的編譯安裝方式如下

  • ./configure
  • make
  • sudo make install

其他編譯範例

  • ./configure --with-modules=mod_quotatab --enable-nls

第一個參數是以後要設定每個使用者可以使用的容量大小而加的。
如果要把 FTP 透過網頁來管理,例如利用 php 程式語言製作的網頁來快速管理你的 FTP 使用者、使用者可用的容量大小等等。
那你可能會需要比較多的編譯參數,例如下面,

  • ./configure --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql --with-includes=/usr/include/mysql --with-libraries=/usr/lib/mysql --enable-nls

我編譯的平台為FreeBSD6.2,過程遇到問題,『libintl support, required for NLS』
咕狗了一下,解決方法 可能是
安裝 /usr/ports/ports-mgmt/portupgrade
並且 portupgrade -rf gettext
注意,這兩個動作都需要非常久的時間,我的cpu為 800MHz,第一項超過三十分鐘,第二項超過八小時。
最後還是沒有成功編譯出來。

幾個小時後,發現原來可以用 make config 來設定 port 裡面 make 的參數!超好用!
而且會跑去使用 make config 是因為咕狗到了一年多前 我的文章
也就是只要make config確定有勾選

 --with -nls 

就可以了!


後來我另外用 Debian 來安裝,遇到這個錯誤『C++ preprocessor “/lib/cpp" fails sanity check』
解決方法很簡單,『sudo apt-get install g++』就可以了
我在 FreeBSD 上面更新真的太久了,久到我可以跑來 Debian 上面裝好一套,順便測試編碼,他還沒有更新完 portupgrade -rf gettext … …


啟動:
將下行寫入至 /etc/rc.conf
proftpd_enable="YES"

  • /usr/local/etc/rc.d/proftpd start|restart|stop
  • 啟動程式

  • /usr/local/etc/proftpd.conf
  • 設定檔

底下紀錄一些 proftpd.conf 的相關內容

UseReverseDNS   off
IdentLookups    off

這兩項會關閉反查,可以省掉反查的兩到三秒的時間,沒有特殊需求的話就把這個關掉吧。

按照我的編譯參數

 ./configure --with-modules=mod_quotatab --enable-nls 

編出來的FTP測試過後,的確可以讓『許工蓋』這樣檔名的檔案從 Windows 上面利用 IE 上傳,並且正常在 Ubuntu 上面的 console 用 UTF-8 編碼看到檔案。

這樣的結果應該是代表:從 IE 連上 proftpd 上傳的時候檔名轉換成了 utf-8 了吧!