相關推薦

手動安裝NextCloud教程-免費開源的私有云存儲網盤 可播放圖片 音樂

NextCloud由原ownCloud聯合創始人Frank Karlitschek創建的,繼承原ownCloud的核心技術又有不少的創新。在功能上NextCloud和ownCloud差不多,甚至還要豐富一些,在用戶使用體驗方面,NextCloud安裝與使用都非常地順手,最重要的是NextCloud完全開源免費。

NextCloud不僅是一個私人云網盤平台,也支持多用戶同步協作使用。NextCloud支持賬號註冊,可以為賬號開啟兩步驗證,以確保賬號安全。同時,NextCloud對於公開分享的文件可以設置有效期,對於上傳的視頻、音樂、Office文檔等直接支持在線預覽和播放。

NextCloud還提供了上百種的免費應用和插件,這些NextCloud應用與插件可以將NextCloud打造成為一個在線文檔共享與編輯平台、音樂與視頻娛樂平台以及文件存儲下載平台。當然,如果是自己手動安裝的NextCloud的話,那麼這些插件也得自己配置好環境才行。

手動安裝NextCloud教程-免費開源私人云存儲網盤可在線預覽圖片播放音樂

本篇文章就來分享一下手動安裝NextCloud教程,更多的站長自建服務與平台,你還可以試試:

  1. Lsyncd搭建同步鏡像-用Lsyncd實現本地和遠程服務器之間實時同步
  2. VestaCP與WHMCS整合教程-實現自助開通虛擬主機銷售主機空間產品
  3. ISPConfig與WHMCS整合方法-自動激活開通虛擬主機和管理空間用戶

PS:2017年9月20日更新,覺得手動安裝麻煩的朋友,可以使用一鍵安裝的方法,參考:Nextcloud個人云存儲絕佳選擇:一鍵自動安裝方法和雲盤使用體驗

一、LAMP安裝NextCloud

NextCloud官網:

  1. https://nextcloud.com/

準備好LAMP環境。LAMP即Apache、MysqL或Mariadb、PHP環境,NextCloud官方推薦使用Apache運行NextCloud,自帶了.htaccess規則。而Nginx的話還需要自己手動編寫NextCloud的URL重寫規則。推薦以下方法一鍵安裝LAMP:

  1. Linux VPS建站工具LNMP 1.4安裝與使用-SSL自動配置續期和多版本PHP支持
  2. OneinStack一鍵安裝腳本-輕鬆部署Let’s Encrypt證書配置Https站點

LNMP 1.4和OneinStack都可以一鍵安裝LAMP環境,這裡我以OneinStack來作為操作演示,在安裝OneinStack時選擇組件時選擇Apache即可,PHP建議使用7.0以上,數據庫的話建議Mariadb。其它的緩存組件也可以安裝。

NextCloud安裝Apache

綁定好域名與添加SSL證書。OneinStack在添加網站時直接就可以添加SSL證書了,同時要求綁定的域名必須提前解析到服務器的IP上,這樣才可以一鍵生成Lets免費證書。

NextCloud添加SSL證書

下載NextCloud程度包安裝。到官網:https://nextcloud.com/install/#instructions-server,下載最新的程序包解壓上傳到網站的根目錄。

NextCloud下載程序包

為NextCloud建立新的數據庫。

PS:2018年9月1日更新,感謝baoang的提醒,安裝NC時數據庫裡直接用root的賬號就可以了,不用另設一個pan的賬號。因為NC不會使用這個賬號,而是把這個賬號用於安裝而已。安裝完成之後,它會以nc_管理員ID為格式生成一個它自己的數據庫賬號,比如nc_qi這樣的。

NextCloud新建數據庫

訪問域名就會自動進入到NextCloud的安裝頁面了,填寫你的管理員賬號與密碼,然後在下方設置好文件存儲路徑,最好與程序不要在同一個目錄下。同時填入SQL數據庫信息,完成安裝。(點擊放大)

NextCloud點擊安裝

完成後,你就可以登錄到NextCloud後台,這就是NextCloud的用戶管理界面。(點擊放大)

NextCloud用戶管理界面

二、LNMP安裝NextCloud

準備LNMP環境和上面一樣,只是在LNMP 1.4和OneinStack安裝時選擇Nginx環境即可,其它的組件都一樣有選擇性地安裝。如果安裝了Zend OPcache,可能在安裝時會提示錯誤:“PHP 被设置为移除内联块, 这将导致多个核心应用无法访问

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

編寫URL地址重寫規則。出現錯誤:No input file specified.,主要是Nginx還需要自己寫重寫規則,你可以將以下規則復制粘貼到/usr/local/nginx/conf/vhost/你的網站.conf,由於規則太多,你也可單獨建立一個文件,然後在你的網站.conf引用即可。具體規則如下:

  #(可选)添加如下header主要为了安全
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    #(可选)为了支持user_webfinger app
    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
 
    #日历和联系人,建议加上
    location = /.well-known/carddav {
    return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
    return 301 $scheme://$host/remote.php/dav;
    }
    #设置上传文件的最大大小
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;
    #将所有请求转发到index.php上
    location / {
    rewrite ^ /index.php$uri;
    }
    #安全设置,禁止访问部分敏感内容
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
    deny all;
    }
    location ~ ^/(?:.|autotest|occ|issue|indie|db_|console) {
    deny all;
    }
 
    #默认有,替换原来的就行
    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+).php(?:$|/) {
    fastcgi_split_path_info ^(.+.php)(/.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param modHeadersAvailable true;
    fastcgi_param front_controller_active true;
    fastcgi_pass unix:/dev/shm/php-cgi.sock; #这边我改过,参照原来的
    fastcgi_intercept_errors on;
    fastcgi_request_buffering off;
    include fastcgi.conf;
    }
 
    #安全设置,禁止访问部分敏感内容
    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
    try_files $uri/ =404;
    index index.php;
    }
 
    location ~ .(?:css|js|woff|svg|gif)$ {
    try_files $uri /index.php$uri$is_args$args;
    add_header Cache-Control "public, max-age=15778463";
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    access_log off;
    }
    location ~ .(?:png|html|ttf|ico|jpg|jpeg)$ {
    try_files $uri /index.php$uri$is_args$args;
    access_log off;
    }

fileinfoMemcachedRedis等都可以通過OneinStack一鍵安裝。

NextCloud安裝附加組件

NextCloud安全與性能優化:這種提示一般在NextCloud的服務器管理中可以看到,建議緩存類的直接安裝一個即可,安裝多了也沒有什麼用。

為了您服務的安全和性能, 請將所有設置配置正確. 我們將會進行一些自動化檢查以幫助您完成這項工作. 詳情請查看“小提示” 部分及相關文檔.

PHP 模塊’fileinfo’ 缺失. 我們強烈建議啟用此模塊以便在MIME 類型檢測時獲得最準確的結果.

HTTP 請求頭“Strict-Transport-Security” 沒有配置為至少“15552000” 秒. 出於增強安全性考慮, 我們推薦按照安全提示中的說明啟用HSTS.

內存緩存未配置.如果可用,請配置memcache以增強性能.更多信息請查看我們的文檔. 
PHP的組件OPcache沒有正確配置.為了提供更好的性能,我們建議在php.ini文件中使用下列設置:

opcache.enable = 1 
opcache.enable_cli = 1 
opcache.interned_strings_buffer = 8 
opcache.max_accelerated_files = 10000 
opcache.memory_consumption = 128 
opcache.save_comments = 1 
opcache.revalidate_freq = 1

NextCloud添加Memcached緩存。修改程序目錄下的config目錄中的config.php文件,在配置文件中添加如下,這個是多個Memcached實例,單個自己改:

'memcache.local' => 'OCMemcacheAPCu',
'memcache.distributed' => 'OCMemcacheMemcached',
'memcached_servers' => array(
     array('localhost', 11211),
     array('server1.example.com', 11211),
     array('server2.example.com', 11211),
     ),

NextCloud添加Redis緩存。在配置文件中添加如下,這個是通過TCP連接的

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

還有性能更好的UNIX連接

'memcache.local' => 'OCMemcacheRedis',
'redis' => array(
     'host' => '/var/run/redis/redis.sock',
     'port' => 0,
     'dbindex' => 0,
     'password' => 'secret',
     'timeout' => 1.5,
      ),

同時,官方還推薦加入如下,來用於存儲文件鎖

'memcache.locking' => 'OCMemcacheRedis',

Nginx運行NextCloud一切正常。

NextCloud運行正常

三、NextCloud添加應用

NextCloud提供了豐富了內置應用,並且這些應用可以直接在NextCloud的後台下載並安裝,有點像我們的Wordpress插件一樣直接安裝。這些介紹幾個有用的NextCloud插件,相信大家一定會用到。

SMTP發信與限制最大上傳文件。這個直接在NextCloud的後台設置中就可以設置選項,SMTP可以讓我們調用第三方的發信服務來發送NextCloud的郵件,自帶的PHP發信也可以,但是基本上會被各大郵箱判定為垃圾郵件。

NextCloud發信設置

數據存儲加密與外掛存儲。首先到NextCloud應用中激活Default encryption module、External storage support這兩個插件。

NextCloud存儲加密

啟用數據加密需要謹慎:因為數據一旦加密被啟用,之後上傳到服務器的所有文件都將服務器上加密,只有當啟用狀態的加密模塊支持解密並且所有前提都滿足時(例如:設定恢復密鑰)才能解除加密。請注意,加密會增加文件大小,單獨的加密不能保證系統的安全性,你需要同時設置恢復密鑰。

NextCloud啟用文件加密

外掛存儲主要是可以讓NextCloud通過SMB / CIFS 登錄OC 的方式掛載第三方的存儲應用,啟用這個插件有些麻煩,可能提示:沒有安裝“smbclient”. 安裝命令:apt-get install smbclient和apt-get install php-smbclient。

NextCloud外掛存儲

四、總結

至於選擇Apache還是Nginx來運行NextCloud主要還是取決你對Nginx或者Apache的熟悉程度,LNMP 1.4和OneinStack對Nginx都做了很好了優化,Http 2.0、SSL證書還有緩存組件和PHP函數都可以一鍵安裝與配置,省去了不少的麻煩。

NextCloud私有云

NextCloud的圖片預覽、音樂視頻在線播放等基本功能都是沒有問題了,在使用NextCloud應用過程中倒是遇到了不少的問題。首要的問題就是NextCloud的應用配置比較難,例如Office文檔插件、RSS在線閱讀器插件等,都需要自己手動配置好服務器環境。

为您推荐

發佈留言

联系我们

联系我们

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部