ownCloud(官網)是一款開源的私有雲框架,可以通過它實現個人網盤的功能,如果擁有一個性能不錯的VPS,那麼就可以擺脫奇慢無比的百度雲等網盤啦!我花了大約一天的時間總算搭好了ownCloud。 ...
ownCloud簡介
ownCloud(官網)是一款開源的私有雲框架,可以通過它實現個人網盤的功能,如果擁有一個性能不錯的VPS,那麼就可以擺脫奇慢無比的百度雲等網盤啦!我花了大約一天的時間總算搭好了ownCloud。
用途
- 如果搭在VPS上,可以用作個人的網盤使用。ownCloud提供了各個平臺的文件同步客戶端,因此搭建好ownCloud之後即可使用客戶端來同步、上傳、下載文件,十分方便。
- 可以搭在性能較好的智能路由器上,連接硬碟,這樣路由器就能作為個人的NAS存儲雲使用。ownCoud的文檔上說明瞭最低配置要求需要128MB的記憶體(推薦512MB),這對路由器的性能提出了一定需求,請註意。
推薦配置
官方文檔提供了推薦的配置要求
- 操作系統:Ubuntu 16.04 LTS.
- Web伺服器:Apache 2.4.
- 資料庫:MySQL/MariaDB 並使用 InnoDB storage engine
- PHP 7
安裝
安裝準備
在安裝之前,你需要準備的內容有:
- 一臺滿足最低配置要求的Linux主機,可以是雲主機、路由器、伺服器。
- 主機可以從外網通過ip地址或者功能變數名稱訪問從外網通過ip地址或者功能變數名稱訪問。
- 由於主機將會作為網盤使用,牽涉到大量的文件傳輸,因此帶寬和硬碟都不能太小。能接近常見使用場景的最高帶寬和硬碟大小為最佳。在本例中,我的雲主機帶寬只有1MB,硬碟20GB。因此打開網頁時能明顯感到延遲。如果使用路由器搭建私有雲,那麼帶寬一般不會有問題。請確保硬碟空間和記憶體大小足夠,如路由器支持USB,可外接硬碟,記憶體大小請務必滿足ownCloud的最低要求(見上)。
開始安裝
登錄你的主機,並開始安裝ownCloud。安裝的方法可以參考官方文檔。下麵我會以centOS7.2為例進行介紹。
資料庫安裝
ownCloud支持SQlite資料庫,因此可以選擇不安裝額外的資料庫系統。然而SQlite不適用於大型的系統,因此如果你使用配置足夠的雲主機,建議額外安裝資料庫,如果使用路由器,可以選擇不安裝資料庫系統。
ownCloud支持的資料庫有MySQL和MariaDB,下麵以MySQL為例。
首先,centOS支持yum包管理器,可以很方便的安裝各種組件。但MySQL不在yum的預設源當中,因此需要添加這項源。
可以訪問這裡,查看完整的安裝過程。由於版本的更新,詳細步驟可能有所不同,一切請以官方文檔為準。MySQL5.7的安裝過程如下:
# 下載源 wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm # 添加源 sudo yum localinstall mysql57-community-release-el7-9.noarch.rpm # 安裝MySQL sudo yum install mysql-community-server
請保持流暢的網路訪問。至此MySQL安裝完畢。
接下來,啟動並查看MySQL的安裝狀態
# 啟動mysql sudo service mysqld start #查看mysql狀態 sudo service mysqld status
成功運行的結果如下,(註意由於不同的系統,命令顯示可能不同)
接下來,就可以登錄mysql並修改root密碼了。如果你是ubuntu系統,可能安裝mysql的過程中系統會要求你設置root密碼,那麼這些步驟可以跳過。對於centOS而言,系統在第一次啟動mysql時自動生成了一個隨機的密碼,因此最好修改它。網上提供了很多修改root密碼的方式,但最好還是參考官方文檔。使用如下命令:
# 查看mysql密碼 sudo grep 'temporary password' /var/log/mysqld.log # 登錄mysql mysql -uroot -p # 接下來輸入root密碼
對於centOS而言,mysql在第一次啟動時創建了臨時的密碼,並寫入了mysqld.log日誌,因此通過grep命令找到臨時密碼的值,並使用這個值登錄系統。
接下來需要修改root密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
其中'MyNewPass4!'位置改為你自己的root密碼。官方文檔中指出,密碼需要至少8位,並且包含小寫、大寫、數字、符號。
至此,mysql的安裝就完成了。你可以使用任意的mysql客戶端如navicat、workbench等測試登錄,你可能還需要修改root用戶的allow host,這些內容請自行搜索解決,再次不再贅述。
web appche的安裝
appche web用於網頁伺服器的運行,在centOS下,我們只需要通過以下命令即可安裝。
yum install httpd
通過以下命令來啟動或關閉httpd伺服器
# 啟動apache服務
service httpd start
# 關閉
service httpd stop
# 重啟
service httpd restart
# 查看狀態
service httpd status
啟動appche伺服器,接下來打開瀏覽器,從外網訪問你的主機地址,如果你看到了apache的網頁,就表明配置成功啦。
在centOS中,預設的網頁根目錄位於/var/www/html下,這個位置隨著系統的不同可能有所不同,請註意。
安裝ownCloud
安裝ownCloud的過程也很簡單,方法如下
# 下載 wget https://download.owncloud.org/community/owncloud-9.1.4.zip # 解壓 unzip https://download.owncloud.org/community/owncloud-9.1.4.zip # 複製到網頁根目錄 cp -r owncloud/* /var/www/html
註意代碼中的下載地址,可能隨著版本的更新而失效,你可以在這裡找到最新的下載地址。
通過以上三步,就能把ownCloud放到正確的目錄了。這時候你可以再度打開瀏覽器輸入地址查看,但是你可能只能看到一堆源代碼,這是因為ownCloud基於php開發,但我們還沒有安裝PHP的運行環境。
安裝PHP及相關組件
接下來我們需要安裝PHP及其他的PHP組件。ownCloud官方建議安裝5.6+以上的PHP版本,這也就是說如果我們使用
yum install php
yum只會為我們安裝5.4版本的php。要安裝php5.6,需要首先添加一些源。你可以在這裡查看更詳細的教程。
# 添加源 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # 安裝PHP5.6 yum install php56w php56w-opcache
請註意,如果你使用Ubuntu安裝,那麼官方文檔里提供了一種非常簡單的方法,你可以參看這裡。
除了php本身之外,你還需要安裝其他php的各類組件。
yum install php56w-cli php56w-common php56w-fpm php56w-gd php56w-mbstring php56w-xml
可以在這裡找到所有需要的組件。
此外,還需要安裝資料庫連接驅動
# php-mysql yum install php56w-mysql # 以下可選yum install php56w-pecl-apcu
apcu是ownCloud可選安裝的local cache ,用於增強性能。
你可以使用如下命令查看所有安裝的php組件
yum list installed | grep "php"
最後重啟apache伺服器。
service httpd restart
從瀏覽器打開主機地址,看看是否能夠訪問了呢。
配置ownCloud簡介
至此,ownCloud安裝完畢。接下來就是ownCloud的配置了,受篇幅所限,下麵不再詳述,僅提供相關的鏈接供參考。
初次設置
接下來打開主機地址,如果看到了ownCloud的界面即安裝完成,如果提示缺少組件,請對照上文。接下來輸入管理員賬號和密碼,並選擇mysql作為資料庫,填入mysql連接所需的用戶名、密碼、地址即可。
第一次配置時,需要輸入data的存放位置,這裡建議不要放在網站目錄中,請將data文件夾放在其他目錄。如/data/ownCloudData/位置,以防產生許可權相關的安全問題。
如果提示缺少許可權的問題,請參考這個文檔或者這個文檔的內容。
另外,如果將data文件夾放在了非網頁目錄,需要再次使用chown命令修改該文件夾的命令,參考這份代碼。
輸入完必要信息之後,就能順利登錄ownCloud並正常使用啦!恭喜!
啟用SSL
在chrome全面開始封殺HTTP之時,再繼續用HTTP真有點說不過去啦,是時候將網站轉移到HTTPS了。要使用HTTPS,你需要有一張SSL證書,可信的SSL證書大都需要付費。免費的SSL證書有兩種辦法可以獲得
- 使用自簽名的SSL證書
- 向StarSSL機構申請證書
下麵是相關的鏈接
更多設置
更多配置包括配置本地緩存、建立郵箱服務等,下麵是一些相關的鏈接
疑難解答
在搭建過程中,我碰到了形形色色的各式各樣問題,如果你也如此,可以首先查看httpd中的logs獲取錯誤日誌來判斷問題所在,centOS下logs的目錄位於
cd /etc/httpd/logs/
ls
打開文件名包含error的日誌,你可以看到各種詳細的PHP發生的錯誤日誌,並據此判斷問題所在。
下麵是我碰到過的問題,僅供參考。
- 許可權相關
- ownCloud缺少許可權讀取配置文件
- ownCloud報.user.ini , .htaccess文件缺失
- 上傳文件時,ownCloud沒有許可權寫入文件暫存區
- 上傳文件時,ownCloud沒有許可權缺少寫入data目錄的許可權
- 解決:使用chown修改許可權
- 組件相關
- 打開ownCloud時php報PDO錯誤
- 解決:安裝php56w-mysql
- 郵件服務
- 解決:修複PHP語法錯誤
- 網頁
- 報SSL證書不受信任
- 解決:沒辦法,要不花錢買付費證書吧
友情鏈接
- ownCloud - Admin Mannual
- ownCloud - Server Configuration
- ownCloud - Troubleshooting
- How To Install and Configure ownCloud on CentOS 7
最後,祝大家都能搭建出屬於自己的私有雲!我的私有雲