找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 36982|回复: 50

[N1盒子] 手把手教你在N1-Armbian上搭建Nextcloud服务并挂载数据盘

 火.. [复制链接]
本帖最后由 from1989 于 2018-7-10 21:29 编辑

首先声明本人非大神,就是喜欢折腾而已,此教程大部分内容来自于网络,并且大部分写明了出处,如果有没有写明的地方请作者联系我,我追加感谢。希望你早日搭建属于自己的nextcloud服务器
恩山的富文本编辑器偷懒直接粘贴根本不行,我上传了两个附件,观感好一些。请大神指教:





入门
让我们从最新的稳定版本开始更新你的系统。 您可以通过运行以下命令来执行此操作:

apt-get update -y

apt-get upgrade -y

更新系统后,重新启动系统以应用这些更改:

reboot

接下来,使用root用户登录,然后继续下一步。

1设置ssh开机启动
1、修改sshd_config文件,命令为:nano /etc/ssh/sshd_config 2、将#PasswordAuthentication no的注释去掉,并且将NO修改为YES  //我的kali中默认是yes,密码验证3、将#PermitRootLogin yes的注释去掉 //我的kali中默认去掉了注释,允许root登陆4、启动SSH服务,命令为:/etc/init.d/ssh start // 5、验证SSH服务状态,命令为:/etc/init.d/ssh status6. 添加开机自启动   update-rc.d ssh enable关闭则为:update-rc.d ssh disabled

2使用supervisor配置frpc自动启动

因为我有自己的Frps服务端,所以我用Frpc做内网穿透,具体Frp的安装和使用在此不再赘述

首先安装supervisor

sudo apt-get install supervisor

然后在/etc/supervisor/conf.d中添加你需要进行自启动并且维持的服务例如frpc.conf:

[program:frpc]

command = /opt/etc/frpc/frpc -c /opt/etc/frpc/frpc.ini

autostart = true

autorestart=true

startretries=100

再附赠一个frpc的配置吧,如果有跟我一样使用的:

[common]

server_addr = xxx.xxx.xxx.xxx    #你的frps服务器地址,可以是域名

server_port = 7000

token = xxxxxxxxxx         #随便设置,只要跟frpc的一样就可以

admin_port = 7400

[ssh]

type = tcp

local_ip = 127.0.0.1

local_port = 7022

remote_port = 7022

[nextCloud]

type = tcp

local_ip = 127.0.0.1

local_port = 99

remote_port = 99

3安装LAMP服务器
NextCloud使用Apache,MySQL和PHP运行。 因此,您将需要将所有这些组件安装到系统中。

首先,使用以下命令安装Apache和MariaDB服务器:

apt-get install apache2 mariadb-server -y

安装完成后,启动Apache和MariaDB服务,并通过运行以下命令使它们在启动时启动:

systemctl start apache2

systemctl enable apache2

systemctl start mysql

systemctl enable mysql

接下来,您还需要将PHP和其他必需的模块安装到系统中。 您可以通过运行以下命令来安装它们:

apt-get install php7.2-xml php7.2 php7.2-cgi php7.2-cli php7.2-gd php7.2-curl php7.2-zip php7.2-mysql php7.2-mbstring wget unzip -y

原有教程中全部是7.0的php,此php7.0在armbian中始终无法安装,这里也踩了很多坑,大家直接装7.2吧,N1的性能可以的。安装完成后,您可以继续下一步。

4配置MariaDB
默认情况下,MariaDB安装不安全,因此您需要确保安全。 您可以通过运行以下命令来执行此操作:

mysql_secure_installation

回答以下所有问题:

[size=0.9em]NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n
... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
... Success!
//这里如果设置了n,那么在nextcloud中会有一条错误信息
您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或都你可以将数据目录移出 Web 服务器文档根目录。

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!


Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

一旦MariaDB得到安全保护,请使用以下命令登录到MariaDB控制台:

mysql -u root -p

在提示时输入您的root密码,然后为Nextcloud创建一个数据库:

红色的字体是你要输入的命令,这里的创建数据库需要记录数据库名称,用户名和密码,用于nextcloud初始化的时候填入

MariaDB [(none)]>CREATE DATABASE nextclouddb;

接下来,使用以下命令创建Nextcloud的用户名和密码:

MariaDB [(none)]>CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password';

接下来,使用以下命令向Nextcloud数据库授予权限:

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

接下来,运行FLUSH PRIVILEGES命令,以使权限表由MariaDB重新加载:

MariaDB [(none)]>FLUSH PRIVILEGES;

最后,使用以下命令退出MariaDB shell:

MariaDB [(none)]>\q

数据库设置正确后,您可以继续下一步。

5安装NextCloud
首先,您需要从官方网站下载最新版本的NextCloud。 您可以使用以下命令来执行此操作:

这里的地址可以先在浏览器中录入https://download.nextcloud.com/server/releases/,查询出最新的版本进行下载


文件下载后,使用以下命令解压缩下载的文件:

unzip nextcloud-12.0.0.zip

接下来,使用以下命令将提取的目录移动到apache Web根目录:

mv nextcloud /var/www/html/

接下来,使用以下命令给予nextcloud适当的权限:

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

接下来,您将需要为NextCloud创建apache虚拟主机文件。 您可以通过创建nextcloud.conf文件来执行此操作,如下所示:

nano /etc/apache2/sites-available/nextcloud.conf

添加以下行:

[size=0.9em]原来的教程是这么写的:
<VirtualHost *:80>
ServerAdmin [size=0.9em]admin@example.com

DocumentRoot "/var/www/html/nextcloud"
ServerName 192.168.0.187
<Directory />
Options FollowSymLinks
AllowOverride All
<Directory "/var/www/html/nextcloud/">
Options MultiViews FollowSymlinks

AllowOverride All
Order allow,deny
Allow from all
</Directory>
TransferLog /var/log/apache2/nextcloud_access.log
ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>

最后踩了坑以后我是这么写的(这个写法来自nextcloud的官方手册)在这里可以修改nextcloud的默认目录:
Alias /nextcloud "/var/www/html/nextcloud/"

<Directory /var/www/html/nextcloud/>

  Options +FollowSymlinks

  AllowOverride All

  Satisfy Any

<IfModule mod_dav.c>

  Dav off

</IfModule>

SetEnv HOME /var/www/html/nextcloud

SetEnv HTTP_HOME /var/www/html/nextcloud

</Directory>

保存并关闭文件,然后启用NextCloud虚拟主机文件,并使用以下命令禁用默认虚拟主机文件:

a2dissite 000-default    这一步我没有做,因为我的配置文件跟作者不同,我还设置了自己的端口号在000-default.conf,中,因此没做这么一步

a2ensite nextcloud

最后,重新启动apache服务以应用这些更改:

systemctl restart apache2

6修改Apache的管理目录Apache的管理目录有自身的权限控制,/etc/apache2/apache2.conf中有对权限进行控制的内容,我添加了一段自己需要管理的路径的权限放开给Apache,代码如下:
我需要管理的就是/mnt目录
<Directory /mnt>
        AllowOverride all
        Require all granted
</Directory>
7修改Apache的启动用户和用户组:修改/etc/apache2/envvar中的两个参数分别是:红色是你用于登录Apache的用户和用户组,这个设置牵扯到对文件权限的访问,我使用了安装armbian的时候让额外录入的那个用户

export APACHE_RUN_USER=XXX

export APACHE_RUN_GROUP=XXX
8挂载你自己的硬盘作为数据盘,并将数据盘挂载在你所需要的用户下:
这段直接盗用:《linux指定某用户某组挂载外接硬盘以便操作硬盘》按照自己的设置进行赋权,这个很重要,要不然你再nextcloud中没有挂载的硬盘的写入权限
一.环境:发行版本:ubuntu 14.04 64bit
二.获取要指定的用户及组id

使用id命令 (笔者获取的uid和gid都为1000)

三.获取识别的硬盘路径

sudo fdisk -l  (笔者获取的路径是/dev/sdb1)

四.挂载fat(分区为fat文件系统才具有uid和gid选项)

sudo mount /dev/sdb1 /media -o uid=1000,gid=1000

五.挂载ext4

sudo mount /dev/sdb1 /media

再改一下权限:

sudo chown -R jello:jello /media   (jello为笔者的用户名)

六.设置开机启动自动挂载

6.1 获取分区的uuid

sudo blkid

笔者的分区信息如下:

jello@jello:~$sudo blkid
/dev/sda1: UUID="DA70A0E270ACFGDR" TYPE="ntfs" PARTUUID="06cdfc10-01"
/dev/sda5: UUID="C63C5C1B4C543565" TYPE="ntfs" PARTUUID="06cdfc10-05"
/dev/sda6: LABEL="M-fM-^VM-^GM-fM-!M-#" UUID="000A053400091250" TYPE="ntfs" PARTUUID="06cdfc10-06"
/dev/sda7: LABEL="LFS" UUID="97df8b03-00d2-438a-8ed9-d2c263165021" TYPE="ext4" PARTUUID="06cdfc10-07"
/dev/sda8: UUID="bef418fa-4202-4513-b456-cde6a5d9753f" TYPE="ext4" PARTUUID="06cdfc10-08"
/dev/sda9: UUID="b68643ba-bcc0-4ed4-8325-8b9b0defc53c" TYPE="ext4" PARTUUID="06cdfc10-09"
/dev/sdb1: UUID="1faecb5a-a14d-4ac5-a47f-b3895d6f827e" TYPE="ext4" PARTUUID="d26fd14f-01"
/dev/sdb2: UUID="cf116c95-b7f0-4ce4-b0da-7f2856784c43" TYPE="ext4" PARTUUID="d26fd14f-02"
笔者想挂载/dev/sdb2分区

6.2打开文件/etc/fstab

sudo vi /etc/fstab

6.2 往etc/fstab文件中加入以下内容:

UUID=cf116c95-b7f0-4ce4-b0da-7f2856784c43 /media           ext4    defaults        0       2

6.3 重新启动即可生效


9修改挂载的数据盘的用户和用户组:
同样直接盗用吧:修改为你启动Apache的那个用户和用户组,保证对这个数据盘的写入权限,同时可以对其他的想要管理的段落做这个操作
1. linux下修改文件用户组chgrp: change group的简写,修改文件所属的用户组。
chgrp users test.log

修改后查看 ls -l
-rwxrwx--- 1 work users 0 Jun 8 15:46 test.log

如果要修改该目录下所有文件和目录,使用-R参数。
chgrp -R users test

要被改变的group名,必须在 /etc/group 文件中。 /etc/group文件记录系统中所有的组名称。
2. linux下修改文件所有者chown :change owner的简写, 修改文件的所有者。
chown [-R] 账号名称 文件或目录

-R 递归,将子目录下文件全部修改。
将文件所有者修改bin
chown bin test.log

修改的用户必须在/etc/passwd文件中 /etc/passwd记录用户信息。
chown还可以修改组名称
chown root:root test.log

将所有者和组名称都修改为root。
10访问NextCloud Web界面(这个我没做也可以访问,感觉armbian是不是没有开防火墙,因为我自己用的99端口,没验证)
一旦所有配置正确,您将需要通过UFW防火墙允许端口80。

要这样做,首先使用以下命令安装ufw:

apt-get install ufw -y

一旦安装了UFW,请使用以下命令启用它:

ufw enable

接下来,使用以下命令将端口80通过UFW:

ufw allow 80

最后打开网页浏览器并浏览到http://192.168.0.187 ,您应该看到以下屏幕:



提供所有必需的信息,如管理员用户名,密码,数据库名称,数据库用户名和密码,然后单击完成设置按钮。 您应该在以下屏幕中看到NextCloud仪表板:



11配置NextCloud Client
在这里,我们将在Ubuntu Desktop 14.04上安装NextCloud客户端,并将其连接到NextCloud服务器。

要安装NextCloud客户端,您需要将NextCloud存储库添加到系统中。 您可以通过运行以下命令来执行此操作:

add-apt-repository ppa:nextcloud-devs/client

apt-get update -y
apt-get install nextcloud-client -y
一旦安装了NextCloud客户端,从Ubuntu Dash启动它,你应该看到以下屏幕:


在这里,提供您的服务器地址并单击下一步按钮,您应该看到以下屏幕:


提供您的NextCloude服务器凭据并单击下一步按钮,您应该看到以下屏幕:


现在点击连接按钮,你应该看到如下屏幕:


在这里,点击本地文件夹 ,你应该看到以下屏幕:


恭喜! 您的NextCloud服务器和客户端已安装并配置。 您现在可以轻松地将数据从本地的NextCloud客户端同步到NextCloud服务器。

12优化nextcloud
安装nextcloud之后,在基本设置中有多个优化项目需要优化,我现在只对Apache的性能项目进行了优化:

修改/etc/php/7.2/apache2/php.ini文件:
[opcache]
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
找到opcache之后,直接在后头追加这些属性,原本我是去除前头的;重启Apache死活不生效,没想到只要这么暴力的追加就生效了!
13nextcloud定时任务使用系统cron
本人很笨,在这里也花了很多的时间,在/etc/crontab的最下面一行增加如下的一行:xxx为你登陆Apache的用户
*/15 * * * * xxx cd /var/www/html/nextcloud && /usr/bin/php -f /var/www/html/nextcloud/cron.php
然后再控制台中录入:重启cron.service
/etc/init.d/cron restart


至此,踩坑结束,耗时3天,其中包括1天周末,2天工作日。不搞定真的没法工作啊!!







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 3恩山币 +3 收起 理由
RRRR*** + 1 强大的恩山!(以下重复1万次)
righ*** + 1 How ever,this is JB useful!
lxl8*** + 1 面对这种帖子,我内心复杂,真不知道说什么好……

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
看不懂........
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感觉很牛逼
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

真的很厉害了···试试
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层

小编文采有限,限制了你的理解能力了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
自己顶一个吧
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

好像看不到图
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层

图不怎么重要,主要是这个富文本编辑器观感太差,我在头上附赠了pdf版本
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

我日,厉害了楼主尤其是搞不定睡不着觉,同感同感,感觉自己都脑壳铁必须弄出来,百度谷歌机翻,老婆都是路人
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
someoneloveU 发表于 2018-7-10 22:38
我日,厉害了楼主尤其是搞不定睡不着觉,同感同感,感觉自己都脑壳铁必须弄出来,百度谷歌机翻,老婆都是路 ...

哈哈,同感同感,你搞的也是这个?希望对你有帮助
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 lksky8 于 2018-7-11 00:04 编辑

今天研究成功挂载SMB我是Ubuntu 18.04 + 宝塔 +LAMP+nextcloud 中间遇到不少弯路,都是网上查询解决
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
lksky8 发表于 2018-7-11 00:01
今天研究成功挂载SMB我是Ubuntu 18.04 + 宝塔 +LAMP+nextcloud 中间遇到不少弯路,都是网上查询解决

使用nextcloud挂载的?我也想挂SMB,那是下一步,多交流
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

楼主辛苦,保存了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

一切都为了速度,性能测试下呗?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
3006kane 发表于 2018-7-11 09:17
一切都为了速度,性能测试下呗?

性能目前没有环境测试,目测是不错的,基本上秒开,我是frp的穿透效果就这么好,应该不差
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-29 16:52

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表