nextcloud安裝教程

2019.07.29更新

強(qiáng)烈推薦使用群輝,至少網(wǎng)盤功能比較省心,同步功能也有,還支持各種娛樂性質(zhì)的功能。

好了,進(jìn)入正題


之前有一段時(shí)間在尋找作為個(gè)人網(wǎng)盤的一些系統(tǒng)或者軟件,本來是期待那種類似seafile的架設(shè)在windows操作系統(tǒng)中的網(wǎng)盤,因?yàn)閭€(gè)人電腦基本都是windows的,更方便。

然而seafile的文件系統(tǒng)端口無法修改必須是8082,筆者的電腦剛好用掉了,只好退而求其次了。

另外下面的教程本人已經(jīng)使用了很多次了,頭幾次都是在虛擬機(jī)中,然后玩壞了重裝,壞了重裝。多次都沒有問題,還有幾次是幫一些也想要網(wǎng)盤的好友搞的。

ps:這篇原創(chuàng)的不多,基本都是整合網(wǎng)絡(luò)上的一些資料弄出來的,具體哪里來的我也忘了,如果原作者看到可以聯(lián)系我修改。

環(huán)境需求:

1.ubuntu16.04 桌面版或者server版無所謂

2.mysql或mariadb,版本無所謂

3.php5.6或以上版本

1.更新系統(tǒng)安裝必要的依賴包

sudo apt-get update && sudo apt-get -y upgrade

sudo apt-get install software-properties-common nano wget

2.安裝MariaDB10以上版本,如果不清楚安裝的版本是否符合nextcloud要求,可以到官網(wǎng)上查詢

nextcloud官網(wǎng):https://nextcloud.com/install/#

MariaDB安裝與配置:

sudo apt-get install -y mariadb-server

安裝mysql也一樣的,據(jù)說mariadb性能更好,沒測試過,有條件的網(wǎng)友可以測試一下討論討論。

安裝完畢以后,運(yùn)行:

mysql_secure_installation

這步的主要目的是更新和配置數(shù)據(jù)庫,同時(shí)設(shè)置相應(yīng)的root密碼,我在安裝的時(shí)候遇到一個(gè)問題就是在普通用戶下無法成功連接到數(shù)據(jù)庫,需要切換到root進(jìn)行

重啟MariaDB服務(wù):

sudo service mysql restart

登錄數(shù)據(jù)庫并且創(chuàng)建相應(yīng)的數(shù)據(jù)庫

mysql -uroot -p

注意這一步如果登錄失敗,請(qǐng)切換root用戶執(zhí)行

2.創(chuàng)建數(shù)據(jù)庫:

MariaDB [(none)]> CREATE DATABASE nextcloud;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'strong_password';

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> \q

3.安裝php

sudo apt-get -y installphp-fpm php-cli php-json php-curl php-imap php-gd php-mysql php-xml php-zipphp-intl php-mcrypt php-imagick php-mbstring

如果出現(xiàn)E: Unable to locate package php7.0

E: Couldn't find any package by regex 'php7.0'

可能是你的源有問題,建議多搜集一些源。

這里提供一個(gè):

echo "deb http://repos.zend.com/zend-server/early-access/php7/reposubuntu/" >> /etc/apt/sources.list

或者

sudo apt-add-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php7.0

或者

sudo apt-get -y install php5-fpm php5-cli php5-json php5-curl php5-imap php5-gd php5-mysql php5-xml php5-zip php5-intl php5-mcrypt php5-imagick php5-mbstring

成功安裝php之后,設(shè)置一些一些配置:

這里設(shè)置的 php memory為512MB,

upload_max_filesize 和 post_max_size 為200M

sudo sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/7.0/fpm/php.ini

sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.0/fpm/php.ini

sudo sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/" /etc/php/7.0/fpm/php.ini

sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 1024M/" /etc/php/7.0/fpm/php.ini

sudo sed -i "s/post_max_size = .*/post_max_size = 512M/" /etc/php/7.0/fpm/php.ini

配置文件的位置:

vim? /etc/php/7.0/fpm/php.ini

配置PHP-FPM

配置文件使用默認(rèn)的就好,如果有問題,請(qǐng)參考下面關(guān)于環(huán)境變量的配置

sudo vim /etc/php/7.0/fpm/pool.d/www.conf

環(huán)境變量:

env[HOSTNAME] = $HOSTNAME

env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

env[TMP] = /tmp

env[TMPDIR] = /tmp

env[TEMP] = /tmp

重啟php-fpm服務(wù):

sudo service php7.0-fpm restart

4.下載并且安裝nextCloud12

wget https://download.nextcloud.com/server/releases/nextcloud-13.0.4.zip

apt-get install unzip

unzip nextcloud-13.0.4.zip

解壓文件到 /home/frank/nextcloud(var/www/nextcloud/)

sudo chown -R www-data: /home/frank/nextcloud

chmod -R 0777 /home/frank/nextcloud

mv /home/frank/nextcloud/ /var/www/

5.安裝和配置nginx

sudo apt-get install nginx

為nginx服務(wù)器創(chuàng)建相應(yīng)的配置文件:

sudo vim /etc/nginx/sites-enabled/nextcloud

文件內(nèi)容:

??? ########SSL域名證書加密,如無可刪除#########

server

{

??? listen 80;

??? server_name frank;

???return 301 https://$server_name$request_uri;

}


server {

??? listen 443 ssl http2;

??? server_name192.168.1.245;

???root? /var/www/nextcloud;

???ssl on;

???ssl_certificate????/etc/nginx/ssl/nextcloud.pem;

???ssl_certificate_key /etc/nginx/ssl/nextcloud.key;

???ssl_session_timeout 5m;

???ssl_ciphers??????????????'AES128+EECDH:AES128+EDH:!aNULL';

???ssl_protocols????????????? TLSv1TLSv1.1 TLSv1.2;

???ssl_prefer_server_ciphers on;

??? ########SSL域名證書加密,如無可刪除#########

server

{

??? listen 80;

??? server_name frank;

??? root /var/www/nextcloud;

??? ########如果添加SSL域名證書加密,把這里上面的內(nèi)容替換一下#########

???add_header X-Content-Type-Options nosniff;

??? add_headerStrict-Transport-Security "max-age=63072000; includeSubdomains;preload";

???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?/var/log/nginx/nextcloud.access.log;

???error_log??/var/log/nginx/nextcloud.error.log;


???location = /robots.txt {

???????allow all;

???????log_not_found off;

???????access_log off;

??? }


???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;

???gzip off;


???error_page 403 /core/templates/403.php;

???error_page 404 /core/templates/404.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/.+|core/templates/40[34])\.php(?:$|/){

???????include fastcgi_params;

???????fastcgi_split_path_info ^(.+\.php)(/.+)$;

???????fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

???????fastcgi_param PATH_INFO $fastcgi_path_info;

??? ########SSL域名證書加密,如無可刪除#########

???????fastcgi_param HTTPS on;

??? ########SSL域名證書加密,如無可刪除#########

???????#Avoid sending the security headers twice

???????fastcgi_param modHeadersAvailable true;

???????fastcgi_param front_controller_active true;

???????fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

???????fastcgi_intercept_errors on;

???????fastcgi_request_buffering off;

??? }


???location ~ ^/(?:updater|ocs-provider)(?:$|/) {

???????try_files $uri/ =404;

???????index index.php;

??? }


???location ~* \.(?:css|js)$ {

???????try_files $uri /index.php$uri$is_args$args;

???????add_header Cache-Control "public, max-age=7200";

???????add_header X-Content-Type-Options nosniff;

???????add_header X-Frame-Options "SAMEORIGIN";

???????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;

???????# Optional: Don't log access to assets

???????access_log off;

??? }


???location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {

???????try_files $uri /index.php$uri$is_args$args;

???????access_log off;

??? }


???location ~ /\.ht {

???????deny all;

??? }


}

注意:這里需要更改相應(yīng)的域名,不要直接復(fù)制

重啟nginx服務(wù):

sudo nginx -t

sudo service nginx restart

sudo service php7.0-fpm restart


8.到此,安裝已經(jīng)完成,接下來需要登錄nextcloud并且配置相應(yīng)的文件存儲(chǔ)位置:

剩下的有空再更新,后面的內(nèi)容還包括配置數(shù)據(jù)保存地址,改變文件數(shù)據(jù)存儲(chǔ)地址,自動(dòng)備份數(shù)據(jù)庫的操作,自動(dòng)備份文件,常見錯(cuò)誤修正操作,如何正確使用nextcloud桌面客戶端等等。網(wǎng)上資料也挺多的,可以隨便翻翻一番,后面的步驟基本不會(huì)出錯(cuò)

雷姆鎮(zhèn)樓

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容