Win10下基于NextCloud的可公網(wǎng)訪問的家庭云盤搭建

文字版嗅蔬,記錄和分享一下過程和經(jīng)歷的坑贿衍。

操作系統(tǒng)

硬件配置 i5-4200U 雙核四線程 1.4GHz的弱雞CPU,4G內(nèi)存塞弊。
用bootcamp安裝了最新版的win10,build 1809泪姨。
控制面板\程序\啟用或關(guān)閉Window功能游沿,打開“適用與Linux的Windows子系統(tǒng)”,以下簡稱“WSL”。
打開自帶應(yīng)用商店肮砾,搜索ubuntu诀黍,下載安裝,當(dāng)前版本為Ubuntu 18.04.
打開cmd命令行仗处,輸入bash即可進入WSL子系統(tǒng)(以下操作除非特殊說明眯勾,均在bash命令行下)。

安裝依賴軟件

PHP

主要安裝php及其擴展

sudo add-apt-repository ppa:ondrej/php  
sudo apt update  
sudo apt install openssl php7.2-common php7.2-mcrypt php7.2-cli php7.2-xml php7.2-mysql php7.2-gd php7.2-imap php7.2-intl php7.2-json php7.2-ldap php7.2-imagick php-ssh2 php7.2-recode php7.2-tidy php7.2-xmlrpc php7.2-mbstring php7.2-curl php7.2-redis php7.2-zip php7.2-sqlite3  

Apache

默認(rèn)安裝和配置就好婆誓,默認(rèn)網(wǎng)站存放位置/var/www/html

sudo apt install apache2 libapache2-mod-php7.2

mariadb(mysql亦可)

數(shù)據(jù)庫服務(wù)吃环,默認(rèn)配置

sudo apt install mariadb-server

配置root用戶密碼

mysql  
UPDATE mysql.user SET password = PASSWORD('newpassword') WHERE USER = 'root';  
FLUSH PRIVILEGES;  

完成后重啟數(shù)據(jù)庫

sudo service mysql restart

Redis

緩存服務(wù),默認(rèn)配置

sudo apt install redis

nextcloud安裝

安裝nextcloud的方式有很多種洋幻,都是很簡單的郁轻。

一鍵安裝腳本

官網(wǎng)提供一鍵安裝腳本:
https://download.nextcloud.com/server/installer/setup-nextcloud.php
創(chuàng)建文件夾

sudo mkdir /var/www/nextcloud

修改權(quán)限

sudo chown -R www-data:www-data /var/www/nextcloud

進入文件夾

cd /var/www/nextcloud

下載腳本

sudo -u www-data wget https://download.nextcloud.com/server/installer/setup-nextcloud.php

執(zhí)行腳本

sudo -u www-data php setup-nextcloud.php

等待下載安裝完成,過程中會選擇安裝路徑 按.選擇當(dāng)前(/var/www/nextcloud)即可文留。
配置apache主頁

sudo vim /etc/apache2/sites-enabled/000-default.conf

將其中的DocumentRoot的值改為/var/www/nextcloud
提醒:vim編輯器好唯,非編輯狀態(tài)hjkl控制上下左右,i進入編輯狀態(tài)厂庇,esc推出編輯狀態(tài)渠啊,非編輯狀態(tài)下:wq保存退出输吏,非編輯狀態(tài)下:q!不保存退出权旷,不了解的同學(xué)建議搜索vim相關(guān)快捷鍵和操作。
配置完成贯溅,重啟apache

sudo service apache2 restart

即可打開localhost拄氯,觀察結(jié)果并進行后續(xù)操作。

snap安裝

該安裝方式不需要手動安裝依賴軟件

sudo snap install nextcloud

等待安裝結(jié)束即可打開localhost它浅,觀察結(jié)果并進行后續(xù)操作译柏。

其他

手動安裝和虛擬機安裝以及docker方式在此不再贅述。

nextcloud配置

安裝

如果軟件包安裝順利姐霍,那么這時在win10下打開網(wǎng)頁localhost鄙麦,應(yīng)該會出現(xiàn)首次運行的配置界面典唇。
填入用戶名密碼,數(shù)據(jù)庫選擇mysql/mariadb胯府,數(shù)據(jù)庫地址localhost:3306,數(shù)據(jù)庫名nextcloud介衔。
選擇數(shù)據(jù)存放位置,比如/home/lidemingzi/yunpan骂因,在命令行創(chuàng)建目錄并配置該目錄權(quán)限

sudo mkdir /home/lidemingzi/yunpan  
sudo chown -R www-data:www-data  /home/lidemingzi/yunpan  
sudo chmod -R 0770 /home/lidemingzi/yunpan  

回到網(wǎng)頁炎咖,確認(rèn)安裝,等待安裝結(jié)束就會進入nextcloud云盤界面

優(yōu)化

進入程序目錄寒波,編輯配置文件

cd /var/www/nextcloud
sudo vim config/config.php

在array格式的配置里乘盼,加入redis的配置

'memcache.local' => '\\OC\\Memcache\\Redis',  
'redis' => array (                                       
    'host' => 'localhost',                      
    'port' => 6379,                             
),                                            
'memcache.locking' => '\\OC\\Memcache\\Redis',

配置apache,允許路由轉(zhuǎn)發(fā)和設(shè)置header

sudo cp /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/headers.load  
sudo cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load   

開發(fā)apache配置文件俄烁,在VirtualHost內(nèi)添加配置

sudo vim /etc/apache2/sites-enabled/000-default.conf
<Directory /var/www/nextcloud>
    AllowOverride All
</Directory>

編輯/var/www/nextcloud/.user.ini绸栅,修改值

sudo vim /var/www/nextcloud/.user.ini
upload_max_filesize=16G
post_max_size=16G
memory_limit=513M

并新增

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

upload_max_filesize和post_max_size是配置上傳文件最大限制。
復(fù)制一份到php的配置目錄

sudo cp .user.ini /etc/php/7.2/apache2/conf.d/user.ini

重啟apache即可

配置外網(wǎng)訪問

此處采用云服務(wù)器vps轉(zhuǎn)發(fā)的方式
采用的是frps一款很方便的開源的局域網(wǎng)穿透工具
https://github.com/fatedier/frp/releases

VPS服務(wù)器端

下載對應(yīng)系統(tǒng)的release包并解壓页屠,修改frps.ini

[common]
bind_port = 7000
vhost_http_port = 8080

配置成自啟動阴幌,以ubuntu為例,新建配置文件

sudo vim /lib/systemd/system/frps.service

寫入以下內(nèi)容

[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#啟動服務(wù)的命令(此處寫你的abc的實際安裝目錄)
ExecStart=/your/path/frps -c /your/path/frps.ini
[Install]
WantedBy=multi-user.target

配置完成后卷中,可通過 "你的vps域名:8080" 方式訪問你本地的nextcloud矛双,當(dāng)然也可以配置80端口,或者通過配置nginx等的端口轉(zhuǎn)發(fā)功能把子域名的80端口轉(zhuǎn)發(fā)到8080上蟆豫。
以nginx為例议忽,在配置文件中http節(jié)點內(nèi)添加配置

    server {
        listen       80;
        server_name  cloud.lideyuming.com;

        location / {
            proxy_pass   http://cloud.lideyuming.com:8080;
        }
    }

本地電腦Win10

下載windows的release包,解壓至合適的目錄十减,修改配置文件frpc.ini,x.x.x.x為你的vps地址或者域名

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[web]
type = http
local_port = 80
custom_domains = www.你要綁定的域名.com

配置在windows下自啟動
https://github.com/kohsuke/winsw/releases 下載release包解壓
拷貝winsw.exe(可能不叫這個名字)到frpc同目錄栈幸,新建同名的winsw.xml文件,寫入

<configuration>
  
  <!-- ID of the service. It should be unique accross the Windows system-->
  <id>FRPC</id>
  <!-- Display name of the service -->
  <name>frpc client (powered by WinSW)</name>
  <!-- Service description -->
  <description>內(nèi)網(wǎng)穿透工具</description>
  
  <!-- Path to the executable, which should be started -->
  <executable>frpc.exe</executable>
  <arguments>-c frpc.ini</arguments>
  <logmode>reset</logmode>

</configuration>

打開windows的cmd帮辟,進入winsw的所在目錄, 運行

winsw.exe install

安裝完成后速址,在任務(wù)管理器的服務(wù)標(biāo)簽,找到FRPC服務(wù)由驹,并啟動芍锚。

打開防火墻的80和相關(guān)端口

本地電腦WSL

修改配置文件

sudo vim /var/www/nextcloud/config/config.php

在trusted_domains的配置項array中加入你綁定的域名(如果有的話),重啟apache

數(shù)據(jù)遷移和備份

數(shù)據(jù)遷移

不推薦直接在系統(tǒng)層面對文件進行操作蔓榄。
如需將舊文件遷移進來并炮,將文件移動到數(shù)據(jù)存放位置,比如/home/lidemingzi/yunpan/lidemingzi/files甥郑,然后進入安裝目錄執(zhí)行nextcloud自帶的掃描程序逃魄,比如:

cd /var/www/nextcloud
sudo -u www-data php occ files:scan --all

備份

nextcloud商店有ftp支持插件,自身也支持webdav訪問澜搅,在另一臺電腦上使用GoodSync等程序定期備份即可伍俘。

一些坑

自啟動

win10的WSL不能跟隨系統(tǒng)啟動邪锌,需要手動添加啟動腳本
新建一個文本文件,改名為wslstartup.bat癌瘾,里面寫入如下內(nèi)容

powershell.exe -WindowStyle Hidden -c "bash /init.sh "

打開運行秃流,輸入shell:startup回車,打開windows啟動文件夾柳弄,將創(chuàng)建的批處理腳本移動進去
在WSL命令行下舶胀,創(chuàng)建init文件,寫入以下內(nèi)容碧注,123456替換為你的密碼

sudo vim /init.sh
#!/bin/bash
echo "123456" | sudo -S /usr/sbin/service mysql start
echo "123456" | sudo -S /usr/sbin/service apache2 start
echo "123456" | sudo -S /usr/sbin/service redis-server start

配置權(quán)限

sudo chmod 755 /init.sh
sudo chown lidemingzi:lidemingzi /init.sh

掛載的windows盤符的權(quán)限問題

在WSL中嚣伐,win10的c盤d盤,自動掛載在了/mnt/c /mnt/d下萍丐,但是這些文件和文件夾的權(quán)限都是1001并且無法通過chown和chmod更改轩端,因此需要使用drvfsf方法重新掛載

sudo umount /mnt/c 
sudo mount -t drvfs C: /mnt/c -o metadata,uid=1000,gid=1000,umask=22,fmask=11

為了方便,把如下腳本加入到/init.sh中逝变,WSL啟動時就執(zhí)行

echo "123456" | sudo -S /bin/umount /mnt/c
echo "123456" | sudo -S /bin/umount /mnt/d
echo "123456" | sudo -S /bin/mount -t drvfs C: /mnt/c -o metadata,uid=1000,gid=1000,umask=22,fmask=11
echo "123456" | sudo -S /bin/mount -t drvfs P: /mnt/d -o metadata,uid=1001,gid=1001,umask=22,fmask=11

完成

至此基茵,nextcloud的搭建基本完成,nextcloud官網(wǎng)提供桌面和手機客戶端壳影,同時有很多插件可供選擇拱层,可以使其更好用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宴咧,一起剝皮案震驚了整個濱河市根灯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掺栅,老刑警劉巖烙肺,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氧卧,居然都是意外死亡桃笙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門沙绝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搏明,“玉大人,你說我怎么就攤上這事宿饱⊙椋” “怎么了脚祟?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵谬以,是天一觀的道長。 經(jīng)常有香客問我由桌,道長为黎,這世上最難降的妖魔是什么邮丰? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮铭乾,結(jié)果婚禮上剪廉,老公的妹妹穿的比我還像新娘。我一直安慰自己炕檩,他們只是感情好斗蒋,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著笛质,像睡著了一般泉沾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妇押,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天跷究,我揣著相機與錄音,去河邊找鬼敲霍。 笑死俊马,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肩杈。 我是一名探鬼主播柴我,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼扩然!你這毒婦竟也來了屯换?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤与学,失蹤者是張志新(化名)和其女友劉穎彤悔,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體索守,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡晕窑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了卵佛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杨赤。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖截汪,靈堂內(nèi)的尸體忽然破棺而出疾牲,到底是詐尸還是另有隱情,我是刑警寧澤衙解,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布阳柔,位于F島的核電站,受9級特大地震影響蚓峦,放射性物質(zhì)發(fā)生泄漏舌剂。R本人自食惡果不足惜济锄,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霍转。 院中可真熱鬧荐绝,春花似錦、人聲如沸避消。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岩喷。三九已至委造,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間均驶,已是汗流浹背昏兆。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留妇穴,地道東北人爬虱。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像腾它,于是被迫代替她去往敵國和親跑筝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容