这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战
一、前言
在上一章中,我们在手机上实现了Linux系统的安装,并成功使用SSH进行了连接。下面,我将介绍如何快速搭建一个个人网盘以及使用frp进行远程访问。
二、安装NextCloud
NextCloud是一个使用PHP编写的开源NAS系统,通过运行NextCloud自带的引导页,可以快速完成网盘搭建,并且,NextCloud还提供了windows和手机的客户端(好像iOS上的是收费的,无设备未验证过)。
我最初的想法是使用Docker进行安装,即快捷又稳定。但是Docker在Linux Deploy上无法运行,后来翻阅Linux Deploy的issue,发现Linux Deploy实际上也是一种容器,基于上世纪70年代发明的chroot容器。
由于容器缺陷,除了docker无法运行还会出现下面的问题:
-
systemctl命令无法使用。
-
Centos系统下service命令无法使用。
systemctl不能用,我们还有service命令。但在Centos系统下,两个都用不了,像mysql、apache这样的服务就启动不了,刷了Centos建议还是刷成Debian或Ubuntu(个人验证可行)。
(其实Linux Deploy中有Docker的系统安装,但是我死活都跑不起来,有docker就可以直接拉镜像了,要是有人docker的系统运行成功了,还请指点一下)
安装过程主要参考了这篇文章:
不过,由于系统问题,还是踩了不少坑过来了,下面是我的安装过程:
- 管理员权限&更新源
sudo su
apt-get update
apt-get upgrade
复制代码
- apt安装数据库
apt-get install mariadb-server php-mysql -y
复制代码
- 设置权限,否则无法启动数据库服务(这一步是Linux Deploy系统需要进行的操作,来自其issue)
usermod -a -G aid_inet,aid_net_raw mysql
复制代码
- 重启数据库(这里只能使用service指令,sysyemctl无法执行)
service mysql restart
复制代码
- 初始化数据库,按照指引进行设置(除了密码设置,其他全Y就行)。
mysql_secure_installation
复制代码
- 创建数据库,数据库名称、用户以及密码可以自由发挥,如果需要远程访问数据库,可以对
localhost
进行修改(创建完账号一定要flush privileges刷新一下权限)。
mysql -u root -p
MariaDB> create database nextclouddb;
MariaDB> grant all on nextclouddb.* to 'nextcloud_user'@'localhost' identified by '你的密码';
MariaDB> flush privileges;
MariaDB> exit
复制代码
- 安装apache和php,apache可以换成nginx,都是一样的。
apt-get install php php-gd php-mbstring php-dom php-curl php-zip php-simplexml php-xml -y
apt-get install apache2 libapache2-mod-php -y
复制代码
- 启动apache,在启动前要对apache进行设置(似乎也是Linux Deploy才要的操作),在配置文件中加入一个服务。
这里使用
echo
命令进行实现(注意是>>
追加一行,写成>
就变成覆盖了)。 然后使用service运行。
echo ServerName localhost:80 >> /etc/apache2/apache2.conf
service apache2 start
复制代码
- 安装NextCloud,下载解压解压安装包,并赋予运行权限。
wget https://download.nextcloud.com/server/releases/nextcloud-18.0.4.tar.bz2
tar -xjf nextcloud-18.0.4.tar.bz2 -C /var/www/html
chown -R www-data:www-data /var/www/html/nextcloud
chmod -R 755 /var/www/html/nextcloud
复制代码
- 配置NextCloud
在电脑(要与手机在同一网段下)浏览器打开
http://<手机的ip地址>/nextcloud
(手机ip可以在Linux Deploy上方查看或在SSH中输入ifconfig查询),即可进入到设置页面:
管理员账户按个人设置,下面是数据库设置,第一行填入用户登录数据库的用户,第二行填入对应的数据库密码,第三行天入上面我们为nextcloud建立的数据库名,第四行保持默认的localhost就行。
点击创建,等待一段时间,即可跳转进入nextcloud,完成安装。
三、外网穿透
我使用的是免费的frp服务,有条件的大佬可以选择申请公网ip或是使用带公网ip的服务器进行转发。
首先下载frp工具,下载压缩包并解压,进入到其目录下:
# 下载压缩包
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_arm.tar.gz
# 解压
tar -zxvf frp_0.37.1_linux_arm.tar.gz
# 重命名
mv frp_0.37.1_linux_arm frp
# 进入
cd frp
复制代码
(这里有一个坑,我用uname -a查看系统是arm64架构的,但是frp安装arm64却会报错,只能使用arm架构的软件)
在Linux系统(与frpc统一目录下)中按照网址提供的教程编写frpc.ini文件:
[common]
server_addr = frp.freefrp.net
server_port = 7000
token = freefrp.net
[*************_com_http]
type = http
local_ip = 127.0.0.1
local_port = 80
subdomain = ***********
复制代码
(打码部分为个人信息:上面只要不重复就行,下面是网站免费提供的三级域名),只要修改打码部分就行了,想要了解更多可以自行访问上面的网站。
后台启动服务:
./frpc -c frpc.ini &
复制代码
运行完成后,虽然可以通过免费提供的域名进行访问了,但是被拦截了下来。
安装提示配置config/config.php:
vim /var/www/html/nextcloud/config/config.php
复制代码
在trusted_domains下面array中加一行,加上你frpc.ini里面写的免费域名:
刷新即可远程接入网盘。