自行搭建私有雲ownCloud,啟用SSL,其他配置

来源:http://www.cnblogs.com/KaitoHH/archive/2017/02/25/install-and-configuration-owncloud-on-vps.html
-Advertisement-
Play Games

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組件相關安裝列表如下

你可以使用如下命令查看所有安裝的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證書有兩種辦法可以獲得

  1. 使用自簽名的SSL證書
  2. 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證書不受信任
    • 解決:沒辦法,要不花錢買付費證書吧

友情鏈接

 

最後,祝大家都能搭建出屬於自己的私有雲!我的私有雲


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉載請註明出處:http://blog.csdn.net/zhaoyanjun6/article/details/56488020 前言 在上面的幾篇文章中,著重介紹了Java 中常見的 IO 相關知識,在學習的過程中,發現 IO 包中是用了大量的裝飾器模式,為了徹底的學習 IO,今天就來揭開裝飾器 ...
  • 項目中遇到一個頁面中是以一個scrollview橫向Tab展示兩個不同功能的顯示,譬如消息和公告功能,但是由於滑動返回手勢和scrollview的滑動返回手勢衝突了,導致頁面不再能夠滑動返回。類似的還有圖片瀏覽功能也出現過。 iOS系統中,滑動返回手勢,其實是一個UIPanGestureRecogn ...
  • 御花園系統開發,御花園模式定製開發,聯繫微電188-2624-7572.(我們是軟體開發公司,非平臺運營商,玩家勿擾) 御花園平臺介紹 御花園是皇家專用的花園,現在你自己也可以擁有一個屬於你私人獨有的花園,來御花園游戲系統吧!這裡有各種各樣的花朵,一年四季都能盛開,這個游戲不但好玩,賞心悅目,還能為 ...
  • 本文轉自:http://m.blog.csdn.net/article/details?id=51638925 寫在前面 本文來自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程式員。這是他的個人網站:http://www.marcelofabr ...
  • 描述了在window系統下android Studio 中git如何使用Git ...
  • LruCache是一個泛型類,它內部採用LinkedHashMap,並以強引用的方式存儲外界的緩存對象,提供get和put方法來完成緩存的獲取和添加操作。當緩存滿時,LruCache會移除較早的緩存對象,然後再添加新的緩存對象。對Java中四種引用類型還不是特別清楚的讀者可以自行查閱相關資料,這裡不 ...
  • 前言 啦啦啦~各位小伙伴們好~經過這一學期的Android知識的學習,我們學到了很多和Android開發相關的知識,這一學期的學習也要告一段落了。(博客中有很多照片上有代碼,代碼文本較小,各位可按下Ctrl和前滾輪放大後再看~) 一起進入我們今天的相關內容~這次我們將一起學習使用 android 手 ...
  • 寫在前面:當你部署一臺伺服器,第一步不應該是部署應用,安全是才是首要任務 如果某一天當你登錄伺服器發現 /bin/bash –i,python -c 'import pty; pty.spawn("/bin/sh")' 等命令在伺服器上出現的時候,那麼恭喜你,伺服器被入侵了 但是入侵者都是很聰明的, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...