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/#
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)行
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)樓
