NextCloud作為一個開源免費的雲端儲存網盤項目,任何人都可以自由的獲取NextCloud 程序,在家庭或公司建立私有且免費的網路硬碟。它是完全由你用戶控制的私有、安全且功能完整的文件同步與共享解決方案,一推出就廣受好評。

之前我也分享了不少NextCloud安裝部署教學,最讓人感興趣的就是NextCloud搭配Aria2,來實現離線下載。因為NextCloud自帶了音樂與影片播放功能,且支援WebDAV等,完全可以基於NextCloud打造雲端儲存平台或雲端磁碟。

NextCloud有一個掛載外部儲存的功能,它可以讓你將第三方儲存、本機硬碟等作為儲存硬碟掛載在伺服器上,作為NextCloud的儲存服務。但是很多人在操作過程中會出現權限問題,例如無法讀取檔案或刪除檔案。

這篇文章就來分享一下在Oneinstack上手動安裝部署NextCloud並添加外部存儲,同時再分享一個NextCloud離線下載插件ocDownloader,它可以結合Aria2實現Http、FTP和BT種子離線下載,同時又可以使用NextCloud管理下載文件,完美解決了文件權限的問題。

Oneinstack手動安裝NextCloud以及使用Aria2離線下載和ocDownloader外掛程式配置

更多關於離線下載的方法還有工具,你可以試試這些:

  1. Windows和Linux安裝使用Aria2-實現離線下載資源和線上管理文件播放視頻
  2. Nextcloud離線下載建置方法-整合Aria2和AriaNg、Aria2 WebUI實作離線下載
  3. 樹莓派Raspberry Pi安裝NextCloud教程-自建家庭私有雲區域網路共享

PS:2018年3月31日更新,如果想要搭建一個可以在線共享播放的影音網盤中心可以試試:Plex完美個人影音雲盤搭建教程-Plex Media Server安裝與使用方法。

一、Oneinstack上安裝NextCloud

NextCloud官網:

  1. 官網:https://nextcloud.com/
  2. 外掛:https://apps.nextcloud.com/apps/ocdownloader
  3. 專案:https://github.com/e-alfred/ocdownloader

OneinStack安裝還蠻簡單的,由於我們要在Oneinstack上跑NextCloud,所以在安裝的過程中請選擇LAMP模式,同時建議將相關的元件都選擇安裝上。參考先前的文章:OneinStack一鍵安裝腳本-輕鬆部署Let’s Encrypt憑證設定Https網站。

1.1  NextCloud安裝

開啟瀏覽器進入到NextCloud安裝介面,如果你出現以下錯誤提示:

PHP 被設定為移除內嵌區塊, 這將導致多個核心應用無法存取.
這可能由快取/加速器導致的, 例如 Zend OPcache 或 eAccelerator.

如下圖:

解決方法:修改php.ini中Opcache的參數進行修改,如果是Oneinstack的話需要在/usr/local/php/etc/php.d/ext- opcache.ini 中修改。找到此程式碼並改成:opcache.save_comments=1 ,因為預設為0,改完重啟php-fpm就行。

1.2  NextCloud配置

安裝了NextCloud後,進入到設定中一般地會提示幾個安全性問題:

對於「PHP 模組 ‘fileinfo’ 缺失. 我們強烈建議啟用此模組以便在 MIME 類型檢測時獲得最準確的結果.」可以用執行:./addons.sh來安裝fileinfo模組即可。

對於“HTTP 請求頭“Strict-Transport-Security” 沒有配置為至少“15552000” 秒. 出於增強安全性考慮, 我們推薦按照安全提示中的說明啟用HSTS.”,進入到/usr/local/apache/ conf/vhost,修改xxx.conf。

加入以下程式碼即可。

Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

對於“內存緩存未配置. 如果可用, 請配置 memcache 以增強性能..”,進入config資料夾中修改配置文件,添加以下代碼即可。

'memcache.local' => 'OCMemcacheRedis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),

按照上面的方法設定後,NextCloud基本上就沒有什麼提示了,我們可以看到Oneinstack跑NextCloud基本上沒有什麼問題。

二、NextCloud安裝ocDownloader

進入到NextCloud插件安裝頁面,搜尋ocDownloader就可以直接在線上安裝了。

安裝好了後,啟用完成後就可以從頂部工具列進入ocDownloader面板,這裡我們就可以看到新增下載和檢視下載任務了。

三、NextCloud伺服器安裝Aria2

上面安裝了NextCloud的插件ocDownloader,但還不能使用,我們需要在伺服器上安裝Aria2,程式碼如下:

wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo -O /etc/yum.repos.d/rhscl-devtoolset-3-epel-6.repo
yum install devtoolset-3-gcc devtoolset-3-gcc-c++ devtoolset-3-binutils devtoolset-3-gcc-gfortran
scl enable devtoolset-3 bash
gcc --version
wget https://github.com/aria2/aria2/releases/download/release-1.32.0/aria2-1.32.0.tar.gz
tar xzvf aria2-1.32.0.tar.gz
cd aria2-1.32.0
./configure
make
make install

如果你的gcc編譯器版本號碼夠高,可以省略前三步,直接wget下載aria2然後編譯即可。編輯sudoers文件:

vi /etc/sudoers

找到下圖中的這部分程式碼:

將:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

修改為:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

退出vi並保存,這裡因為sudoers是一個只讀文件,可能在退出vi的時候會彈警告提示,我們強行退出使用如下命令:

:wq!

現在就可以使用sudo以www的使用者來運行aria2了:

sudo -u www aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all -c --dir /root/downloads -D

這個命令列啟動預設我們選擇了檔案的下載保存路徑是/root/downloads,但實際上這個路徑是不生效的,它的目的只是用來讓aria2能夠成功啟動。我們稍後可以在ocDownloader插件中來設定檔案保存路徑。

四、NextCloud使用ocDownloader插件

進入到NextCloud的ocDownloader操作介面,點選新增下載任務,就可以開始離線下載了,以下是wzfou.com搭建的示範:。

ocDownloader支援BT和磁力連結下載。

ocDownloader會在NextCloud建立一個下載目錄,所有的下載的檔案都會放在這個目錄下,從NextCloud可以查看下載的檔案。

經過wzfou.com測試,NextCloud可以正常地查看和刪除ocDownloader下載的文件,權限都沒有問題。

五、總結

Nginx跑NextCloud有一個問題就是靜態化規則的問題,Oneinstack跑NextCloud建議使用Apache,NextCloud官方的教學都是用Apache,相容性是最好的。

總是得來說,NextCloud使用ocDownloader呼叫Aria2離線下載還是挺方便的,它解決了Nextcloud離線下載建置方法中檔案讀寫權限問題,可以正常讀寫和刪除Aria2下載的檔案。

發表評論