使用Fedora Server和Nextcloud,自己动手搭建私有云

   日期:2020-06-01     浏览:102    评论:0    
核心提示:这篇文章会引导您一步一步地自己动手,使用`Fedora Server` `Nextcloud` `Cockpit` `PuTTY` 等工具自己搭建并使用一个具有高度自定义程度和扩展能力的私有云。运维

文章目录

  • 这篇文章要干什么?
  • 刻录 Fedora Server 安装盘
  • 安装 Fedora Server
  • Fedora Server 软件源配置
  • 使用 OpenSSH 服务
  • 使用PuTTY轻松登入
  • 下载 Nextcloud
  • 安装 Nextcloud
  • 为 Nextcloud 正确设置权限并关闭 SE Linux
  • 为Nextcloud设置数据库
  • 配置 Apache httpd
  • 完成 Nextcloud 安装
  • 大功告成

这篇文章要干什么?

这篇文章会引导您一步一步地自己动手,使用Fedora Server Nextcloud Cockpit PuTTY 等工具自己搭建并使用一个具有高度自定义程度和扩展能力的私有云。当然,这篇文章中的一切都是开源的!

刻录 Fedora Server 安装盘

Fedora Server is a short-lifecycle, community-supported server operating system that enables seasoned system administrators, experienced with any OS, to make use of the very latest technologies available in the open source community.

Fedora Server 是一个短生命周期,社区支持的服务器操作系统,它允许系统管理员(无论您之前使用什么操作系统)使用最新的开源技术。
首先从 Fedora Server 的官网下载 ISO 镜像,您也可以使用清华的tuna镜像(这里)PS:我用的是tuna。
然后准备一块可以引导的闪存盘,使用如下dd命令刻录安装镜像。

sudo dd if=$ISO of=$TARGET bs=$SPEED

在这里,使用你的安装镜像的路径代替$ISO,使用目标介质代替$TARGET,使用您需要的速度代替$SPEED。比如:

sudo dd if=Fedora-Server-dvd-x86_64-31-1.9.iso of=/dev/sda bs=1M

这个命令将名为Fedora-Server-dvd-x86_64-31-1.9.iso的Fedora镜像文件以1M的块大小刻录到路径为/dev/sda的闪存盘中(不要挂载它)。注意,如果这个闪存盘已经被挂载,那么您需要使用sudo umount命令来取消对它的挂载,例如:

sudo umount /dev/sda

会取消对/dev/sda的挂载。
在刻录过程中,您可以使用如下命令来查看dd的进度:

sudo watch -n 1 pkill -USR1 ^dd$

这将每1秒更新dd命令的进度。这个进度由dd所在的终端显示。

安装 Fedora Server

现在将闪存盘插入要安装 Fedora 的计算机,在 Secure Boot取消的情况下,它可以使用UEFI启动,您应该现检查盘片是否完整,然后进入安装器。
Fedora 使用图形化的 Anaconda 安装程序,这使得它的安装十分简单。你可以参阅这个文档来获得帮助。访问这里来获取更多内容 。
Anaconda 的分区功能可能不尽人意,您可以使用 CTRL+ALT+F3来切换到第三个TTY,它应该是一个字符界面。然后使用fdisk工具来进行分区。比如:

fdisk /dev/sda

将对/dev/sda磁盘进行分区。fdisk是一个交互式工具,m命令会给出帮助内容,w命令会保存更改。
分区后如果CTRL+ALT+F1不能切换回 Anaconda,使用reboot命令重新启动。

注意,在安装时,必须安装 GRUB,否则 Fedora 不能被引导。您不需要安装一个图形界面。

Fedora Server 软件源配置

将 Fedora Server 连接到互联网,使用有线连接。(这可以使用 ifconfig 命令验证)使用如下命令来验证网络联通性。

ping 192.168.1.1

ping可以使用CTRL+C退出。
Fedora Server 默认的软件源位于国外,参看tuna的帮助来切换到tuna源(这里)。参考以下命令:

su
cd /etc/
cp -r yum.repos.d yum.repos.d.bak	# 备份默认的源配置
cd yum.repos.d
rm -f *.*	# 删除原来的配置
vi fedora.repo

vi (vim)中,先使用i进入插入模式,再输入如下配置:

[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Everything/$basearch/os/
metadata_expire=28d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

然后使用:wq来保存并退出vim
同理,在fedora-updates.repo fedora-modular.repo fedora-updates-modular.repo:

[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/updates/$releasever/Everything/$basearch/
enabled=1
gpgcheck=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False
[fedora-modular]
name=Fedora Modular $releasever - $basearch
failovermethod=priority
baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Modular/$basearch/os/
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False
[updates-modular]
name=Fedora Modular $releasever - $basearch - Updates
failovermethod=priority
baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/updates/$releasever/Modular/$basearch/
enabled=1
gpgcheck=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

在配置更新完成后,使用如下命令更新软件源的缓存。

sudo dnf makecache

使用 OpenSSH 服务

使用如下命令来安装 OpenSSH 服务端:

sudo dnf install openssh-server

然后编辑openssh-server的配置文件:

vi /etc/ssh/sshd_config

vi (vim)中,先使用i进入插入模式,然后根据需求修改这个文件。注意,在修改一个配置后,要删除它前面的#号,否则不起作用。以下是一些值的注意的配置。

Port 22	#监听的端口号
Protocol 2	#支持的协议(应该保持2)
PermitRootLogin no	#是否允许root直接登入
MaxAuthTries 3	#最大登录尝试数

然后使用:wq来保存并退出vim
修改完成后,用如下命令使配置生效并重新启动服务:

sudo systemctl stop sshd.service
sudo systemctl enable --now sshd.service

这时,处在同一局域网的计算机就可以使用ssh连接了。使用如下命令连接:

ssh USER@$IP

使用你的账户代替USER,Fedora Server 的 IP地址(通过ifconfigip addr查看)代替$IP,比如:

ssh myuser@192.168.1.12

这将会登入到位于192.168.1.12计算机上的myuser用户。这时您可以进行远程操作。比如,您可以使用以下命令切换到root身份:

su

sudo -sH

使用PuTTY轻松登入

PuTTY 是一个优秀的SSH客户端,在Arch Linux上,使用如下命令安装它:

sudo pacman -S putty

对于其它发行版,这是PuTTY for Linux的的官方地址。对于Windows用户,这些是PuTTY的官方地址。

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
https://putty.org/
https://www.ssh.com/ssh/putty/windows/

对于Mac OSX 用户,这是PuTTY的官方地址。
初次使用 PuTTY 时,需要进行配置。如图是PuTTY初次启动的界面:
此时,您需要指定正确的PuTTY配置,对于一般的 OpenSSH,应包括:

  • Fedora Server 的IP地址(Host Name or IP address)
  • Fedora Server 的 SSH 端口(Port)
  • 连接模式,您应该选择SSH
  • 选择一个适合的字体和颜色样式

在配置完成后,您可以保存这些配置以便以后使用。在PuTTYLoad, save or delete a stored session部分的第一个输入框中填写配置的名称,比如:

本例将这个配置命名为Fedora Server 31
然后点击右侧的Save按钮,这个配置将会被保存,随后您可以在配置列表中查看它:

现在,每次使用PuTTY登入时,只需选择对应的配置(比如Fedora Server 31)并选择“连接”(Open),即可进入 远程命令行(SSH)了。

此时,如果您输入如下命令:

exit

PuTTY连接将会关闭,PuTTY也会退出。

下载 Nextcloud

在这个页面获取 Nextcloud 的服务器端下载地址。对于 Nextcloud 18.0.4,可以使用
这个ZIP压缩包。

您可以使用wget aria2c axel 等工具下载Nextcloud。如下是这几种方式的对应命令:

  • 对于 wget
sudo dnf install wget
wget $ZIP

这将下载 Z I P 对 应 的 文 件 , 您 需 要 将 ‘ ZIP对应的文件,您需要将 ` ZIPZIP替换为ZIP 安装包的路径,(例如https://download.nextcloud.com/server/releases/nextcloud-18.0.4.zip)。 您也可以使用axelaria2c` 等工具,比如:

axel -n $THREADS $ZIP

这将使用 $THREADS 指定的线程数来下载 $ZIP 对应的文件,比如:

axel -n 32 https://download.nextcloud.com/server/releases/nextcloud-18.0.4.zip

会使用32线程下载文件https://download.nextcloud.com/server/releases/nextcloud-18.0.4.zip 。注意,在使用 axel 下载之前,您需要通过以下命令安装 axel

sudo dnf install axel

在 Nextcloud 下载完成后,您将学习如何安装 Nextcloud。

安装 Nextcloud

首先,解压缩 Nextcloud ZIP包。您可以使用 7zunzip

对于 7z(或 官方地 p7zip7zip),使用如下命令安装:

sudo dnf install 7z

然后,使用如下命令来解压缩:

7z x $ZIP

在实际使用中,请将 $ZIP 替代为 Nextcloud 压缩包的路径,如:

7z x https://download.nextcloud.com/server/releases/nextcloud-18.0.4.zip

对于 unzip,使用如下命令安装:

sudo dnf install unzip

然后,使用如下命令解压缩:

unzip $ZIP

在实际使用中,请将 $ZIP 替代为 Nextcloud 压缩包的路径,如:

unzip https://download.nextcloud.com/server/releases/nextcloud-18.0.4.zip

然后,将得到的 nextcloud文件夹拷贝到服务器的html目录。Fedora Server已经预装了Apache httpd服务器,因此,将这个文件夹拷贝到/var/www/html/ 目录:

sudo cp -r nextcloud /var/www/html/

注意,cp ,命令的第三个参数必须是/var/www/html/ 而不是 /var/www/html。因为 在第二种情况中Nextcloud 文件夹会替换 html 文件夹。执行以上的操作需要root权限。

执行后,您需要先停止httpdphp-fpm 服务。新版本的 Fedora Server 使用 systemd而不是init脚本。但是,以下两种方式都可以完成操作:

  • 使用 systemctl 命令
  • 使用 service 命令

推荐您使用新的 systemctl命令完成操作,如:

sudo systemctl stop httpd
sudo systemctl stop php-fpm

然后,安装 APCU php 模块,否则Nextcloud可能无法正常工作。使用 以下命令来查找这个软件包并安装:

dnf search apcu
sudo dnf install $APCU

请将 $APCU 替换为 需要的 软件包。

为 Nextcloud 正确设置权限并关闭 SE Linux

首先切换为 root用户:

su

然后使用 vi 编辑如下文件:

vi ~/permission.sh

i 键插入如下内容:(本文件源自网络)

#!/bin/bash
ocpath='/var/www/nextcloud/'   #修改为你Nextcloud所放置的目录
htuser='apache'                #网页服务器用户
htgroup='apache'               #网页服务器的组
rootuser='root'
 
printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater
 
printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
 
printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/
 
chmod +x ${ocpath}/occ
 
printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]
 then
  chmod 0644 ${ocpath}/.htaccess
  chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
 then
  chmod 0644 ${ocpath}/data/.htaccess
  chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi

然后按ESC 然后:wq 保存并退出vi 。现在执行本脚本:

chmod +x permission.sh
./permission.sh

现在,关闭SELinux。在root权限下,编辑SELinux的配置文件:

sudo vi /etc/selinux/config

i 键编辑文件,将SELINUX=enforcing修改为如下内容:

SELINUX=disabled

然后使用ESC 然后:wq退出vim。然后使用如下命令重新启动:

sudo reboot

为Nextcloud设置数据库

Nextcloud 建议使用 Maria DB作为数据库。如下为具体方法。

sudo dnf install -y mariadb-server mariadb
sudo systemctl enable mariadb
sudo systemctl start mariadb
mysql_secure_installation # 或mysql-secure-installation

在安装程序中,补全:

Set root password? [Y/n] Y
New password:	# 设置root密码,不可见
Re-enter new password:	# 设置root密码,不可见
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

然后进入mariadb

mysql -u root -p

输入如下内容:

create database nextcloud_db;
create user nextclouduser@localhost identified by 'nextclouduser@';
grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by 'nextclouduser@';
flush privileges;

然后退出mariadb

配置 Apache httpd

打开httpd配置文件(地址因版本而异),使用 VIM编辑成你需要的内容。这部分很容易搜索。手册页面访问:

man httpd

info httpd

完成 Nextcloud 安装

浏览器登入以下网址,根据步骤向导完成配置:

$SERVER/nextcloud/

使用服务器的IP代替$SERVER,比如:

192.168.1.12/nextcloud

大功告成

至此,Nextcloud 已成功安装。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服