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