一直感覺放在百度網(wǎng)盤里面的數(shù)據(jù)很不安全,因?yàn)橹耙驗(yàn)榇嬉恍┘夹g(shù)教程被封過號(hào),再也沒活過來。正巧趕上盤當(dāng)勞事件,手里還有閑置硬件資源,終于下定決心自己搭建一個(gè)? NAS 來用了。?
- 先掛載到本地磁盤中,因?yàn)槲覀儾幌胍驗(yàn)榇鎯?chǔ)的數(shù)據(jù)隨著容器的刪除而消失,如下圖先創(chuàng)建共享文件夾,這里我指定的是E盤

- 因?yàn)楣俜酵扑]我們不要用 sqlite 數(shù)據(jù)庫,那我們就是用 mysql 數(shù)據(jù)庫,搭建 docker 環(huán)境
先進(jìn)行安裝:docker pull mysql
掛載啟動(dòng):docker run -d -e MYSQL_ROOT_PASSWORD=a123456 --name mysql -v e:/mysql:/var/lib/mysql -p 3306:3306 mysql
意思是在3306端口啟動(dòng)了一個(gè)服務(wù)名稱為 mysql 且 root 用戶的密碼為 a123456 的最新版的數(shù)據(jù)庫服務(wù)了.且掛載地址為 e:/mysql,這樣你可以從掛載目錄下面查看到刷刷刷的文件創(chuàng)建了。
- mysql 數(shù)據(jù)庫建庫
進(jìn)入bash命令:docker exec -it mysql bash
登錄mysql:mysql -u root -p
創(chuàng)建名為 nextcloud 的數(shù)據(jù)庫:create database nextcloud default character set utf8 collate utf8_general_ci;
創(chuàng)建用戶 nextcloud 密碼為 adminadsdff:CREATE USER 'nextcloud'@'%' IDENTIFIED BY 'adminadsdff';
(推薦) 或者使用老驗(yàn)證模式創(chuàng)建用戶(php使用):CREATE USER 'nextcloud'@'%' IDENTIFIED WITH mysql_native_password BY 'adminadsdff';
查看用戶是否創(chuàng)建成功: select user,host from mysql.user;
授權(quán):GRANT ALL ON nextcloud.* TO 'nextcloud'@'%';
查看授權(quán): show grants for 'nextcloud'@'%';
- 啟動(dòng) nextCloud 并對(duì)文件進(jìn)行掛載
拉?。?code>docker pull nextcloud
docker run -d -p 9000:80 \
-v e:/nextcloud/main:/var/www/html \
-v e:/nextcloud/apps:/var/www/html/custom_apps \
-v e:/nextcloud/config:/var/www/html/config \
-v e:/nextcloud/data:/var/www/html/data \
--name nextcloud nextcloud
解釋如下(dockerhub 中有):

- 設(shè)置管理員用戶名密碼,這里會(huì)報(bào)錯(cuò):
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
是由于MySQL 8默認(rèn)使用了新的密碼驗(yàn)證插件:caching_sha2_password,而之前的PHP版本中所帶的mysqlnd無法支持這種驗(yàn)證。有好幾種方式解決這個(gè)問題:
- 已存在用戶直接更改驗(yàn)證方式:
ALTER USER 'nextcloud'@'%' IDENTIFIED WITH mysql_native_password
或
(推薦) ALTER USER 'nextcloud'@'%' IDENTIFIED WITH mysql_native_password BY 'nextadmin';
采用前一種方式,賬戶的密碼將被清除;BY子句將為賬戶設(shè)置新的密碼。
- 依舊會(huì)報(bào)錯(cuò),說你的路徑別的用戶也能訪問,請(qǐng)更改權(quán)限為 0770 以避免其他用戶查看目錄
到 config.php 下加入 'check_data_directory_permissions' => false 即可
- 文件上傳太慢,如何服務(wù)器直接拷入?
網(wǎng)上的教程都是錯(cuò)的,應(yīng)該執(zhí)行這個(gè)命令:sudo -u root php occ files:scan --all,如果沒有 sudo ,先安裝
試用一下,全速下載,美滋滋。