ownCloud要如何直接編輯任意純文字檔:符號連結的做法 / How to Edit Any Plain Text File in ownCloud? A Symbolic Link Solution
為了管理伺服器上的檔案,我嘗試在伺服器上安裝ownCloud以便直接使用網頁來管理。ownCloud的Text Editor套件雖然可以直接在線上編輯txt、html等檔案,但是像JSP、properties等其他副檔名的檔案就不行編輯了。這時候我們可以用Linux的符號連結ln功能來創建一個.txt字尾的連結,這樣子就能夠讓ownCloud在線上編輯這個檔案。
在Debian安裝ownCloud / Install ownCloud on Debian
我這次不是使用直接ownCloud的虛擬應用樣板,而是需要在既有的Debian伺服器上安裝ownCloud。用預設的apt-get是找不到owncloud來安裝的,我們需要將ownCloud的儲存庫加入apt當中。主要做法是參考這篇How to install ownCloud 8 on Debian 8 (Jessie),我將Bash整理之後如下:
echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list
cd /tmp
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_8.0/Release.key
apt-key add - < Release.key
apt-get update
apt-get install owncloud -y
安裝完成之後,就能夠直接用瀏覽器以主機位置後面加上owncloud來連線。
- http://[your-server-ip]/owncloud/
登入的帳號與密碼則是跟Linux設定的帳號相同。預設安裝之後還有一些安全性配置需要調整,但這不是本篇重視的問題,在此就先略過。
ownCloud編輯純文字檔案 / Edit a plain text file
資料夾配置完成之後,我們可以直接從ownCloud看到有權限讀取的檔案。例如「ui-html_zh_TW.properties」是我們系統中常常需要編輯的檔案。
可是一般這樣的檔案在點選之後會變成下載,不能直接編輯。
只有點選副檔名為「txt」或「html」的檔案,而且還擁有寫入權限(w),就能夠直接在ownCloud上編輯。
可是系統檔案名稱不能隨意變更,那麼要怎麼做好呢?這時候就要可以使用Linux的特殊功能:連結。
用連結檔案來建立txt副檔名的分身 / Use "ln" to create a file link
Linux的連結跟Windows的捷徑有點像,但本質上相差很多。連結又分成實體連結跟符號連結,一般比較常用的是類似捷徑的後者,詳細的原理就請看鳥哥的說明吧。
在Linux建立符號連結 / Create a Symbolic Link in Linux
以下我們利用符號連結,為原本不能在ownCloud編輯的「ui-html_zh_TW.properties」建立一個副檔名為「txt」、而且可以編輯的「ui-html_zh_TW.properties.txt」分身。讓我們們看看怎麼操作:
首先,在Linux的指令端利用cd指令切換到該檔案的目錄。然後我們欲將「ui-html_zh_TW.properties」建立一個符號連結,名為「ui-html_zh_TW.properties.txt」,指令如下:
ln -s ui-html_zh_TW.properties ui-html_zh_TW.properties.txt
出現了標示為天藍色的符號連結了。
在ownCloud中編輯檔案 / Edit the file in ownCloud
接下來再回到ownCloud中,在同樣的資料夾底下,會出現剛剛新增的符號連結。不過ownCloud不會辨識他的檔案類型,只會依照副檔名「ui-html_zh_TW.properties.txt」把它當做可以編輯的對象。
點進去之後就可以編輯囉。因為我們使用符號連結的關係,編輯之後的結果會完全反映在原始「ui-html_zh_TW.properties」檔案上,也就是等同編輯「ui-html_zh_TW.properties」。
結語 / Conclusion
老實說,這不是一個很好的解決方法。因為我們還需要額外新增符號連結,才能讓檔案可在ownCloud中編輯。理想方案是修改ownCloud的Text Editor套件,擴充可以編輯的副檔名。我找到ext-modelist.js似乎有這樣的設計,其實裡面也已經包含了本篇使用的副檔名「properties」,但不知為何仍然不能在線上編輯。
目前是因為需要時常編輯的檔案並不多,我只要為特定幾個檔案加上符號連結即可。至於圖片的管理只需要下載與上傳等基本功能即可,不需要線上編輯。在這些需求條件之下,ownCloud已經相當好用了。
未來如果有更多線上編輯需求的話,再來繼續研究吧。做什麼事情都不會一次到位,這次就先做到這裡吧。