文字版嗅蔬,記錄和分享一下過程和經(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)提供桌面和手機客戶端壳影,同時有很多插件可供選擇拱层,可以使其更好用。