资讯专栏INFORMATION COLUMN

搭建NextCloud服务笔记-基础篇

xiyang / 3387人阅读

摘要:网页服务由提供,网络编程语言为,数据库用等。我也计划多带带写一篇安全配置和高阶配置的笔记。强烈建议使用源和源,不要使用的源。访问基于以上步骤,基本就完成了基本的功能部署。升级已经是目前的最高版本了,可是版本只是的,不符合最低的要求。

简述

国外优秀云存储上不去或者速度奇慢(感谢GFW),国产各大云盘已经残废或者自我阉割,数据安全性也从来无法保障。多年折腾经验告诉我,最重要的还是数据。硬件软件有价,宝贵的数据和资料是无价的。自己早有折腾私有云存储的想法,却一直没有找到令人满意的方案(曾经折腾过 Syncthing,优点是可以指定多个不同的盘同步,但是蛋疼的客户端CPU占用率,让我使用一天后果断放弃)。
偶然机会当我发现NextCloud的时候,第一眼就决定是它了(其实第一眼看到的是OwnCloud,hoho)。

NextCloud方案,是经典云方案OwnCloud的一个folk。据说OwnCloud的母公司已经被一间德国公司收购了,整体方案和产品趋向于稳定与收费用户。原项目组中的骨干力量,觉得还有更好的功能可以开发,于是就有了今天的主角NextCloud。

详细介绍可参考
https://nextcloud.com/

优点

支持多平台客户端,官方提供web、Windows、Linux、Mac、IOS、Android、WindowPhone全家桶套餐

支持link外链,而且可多带带设置访问密码、共享过期时间

使用者操作傻瓜,简单方便

支持插件扩展功能

自带文件预览(还没细细研究支持那些格式,初看pdf是可以在线预览的)

缺点

不支持多盘同步

刚上车,也不知道有什么坑。(据说当年OwnCloud中文目录或者文件中文名乱码的问题,我现在NC上没有遇见,完全没问题)

还是那句话,开源的要会折腾才能上车,而且挺折腾的。

安装步骤

简单来说NextCloud是基于经典LAMP平台的一个应用。网页服务由Apache提供,网络编程语言为php,数据库用Mariadb等。以下是我部署的环境清单。

基本环境

|软件|版本|
|-|-|
|RHEL |7 update3|
|PHP|5.6.30|
|MariaDB|5.5.52|
|Apache|httpd-2.4.6|
|NextCloud|11.0.1|

为了减少麻烦,关闭了防火墙和SElinux,不赘述开启相关端口、防火墙、布尔值等。当然,在成功实现功能后,为了安全性,Selinux和FW还是要加上的。毕竟是数据安全,有必要。我也计划多带带写一篇安全配置和高阶配置的笔记。

下面就按照php、Mariadb、Apache、NextCloud的顺序简述一下安装过程

安装及配置PHP 1.安装PHP
yum install php
2.安装NextCloud所需要的PHP模块

| 模块 | 安装语句 |
| - | - |
| PHP (>= 5.6, 7.0 or 7.1) | yum install php |
| PHP module ctype | 自带 |
| PHP module dom | yum install php-xml |
| PHP module GD | yum install gd |
| PHP module iconv | 自带 |
| PHP module JSON | 自带 |
| PHP module libxml (Linux package libxml2 must be >=2.7.0) | 自带 |
| PHP module mb multibyte | ftp://fr2.rpmfind.net/linux/centos/7.3.1611/os/x86_64/Packages/php-mbstring-5.4.16-42.el7.x86_64.rpm |
| PHP module posix | yum install php-posix |
| PHP module SimpleXML | 自带 |
| PHP module XMLWriter | yum install php-xml |
| PHP module zip | 自带 |
| PHP module zlib | 自带 |
| PHP module curl | 自带 |
| PHP module fileinfo | 自带 |
| PHP module bz2 | 自带 |
| PHP module intl | ftp://rpmfind.net/linux/centos/7.3.1611/os/x86_64/Packages/php-intl-5.4.16-42.el7.x86_64.rpm |
| PHP module mcrypt | ftp://rpmfind.net/linux/epel/7/x86_64/p/php-mcrypt-5.4.16-7.el7.x86_64.rpm
ftp://rpmfind.net/linux/epel/7/x86_64/l/libmcrypt-2.5.8-13.el7.x86_64.rpm |
| PHP module openssl | 自带 |

3.检查php安装的模块
php -m | grep -i 
4.配置EPEL源及IUS源

由于RHEL7.3 默认自带的php版本为5.4.6的,而NextCloud需要是5.6以上版本。所以需要通过第三方源进行升级。

强烈建议使用EPEL源和IUS源,不要使用remi的源。CentOS官方的说法

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
wget https://dl.iuscommunity.org/pub/ius/stable/Redhat/7/x86_64/ius-release-1.0-14.ius.el7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
rpm -ivh ius-release-1.0-14.ius.e17.noarch.rpm
yum clean all
yum list
5.安装yum-plugin-replace包
yum install yum-plugin-replace
6.更新PHP 5.4.6至5.6,及补充包
yum install libtool-ltdl
yum install libvpx
yum replace php --replace-with php56u
yum install php56u-gd
7.更新后动作

升级完,如果http服务已经启动的话,需要重启httpd服务生效

php -v    //检查版本
php -m | grep -i    //检查模块
安装配置Mariadb 1. 安装Mariadb Server及Client
yum install mariadb
yum install mariadb-server
2. 修改数据库存储位置

修改 /etc/my.conf

[mysqld]
#datadir=/var/lib/mysql              //默认位置
#socket=/var/lib/mysql/mysql.sock    //默认位置
datadir=/opt/nextcloud/nextclouddb   //自定义位置
socket=/opt/nextcloud/nextclouddb/mysql.sock  //自定义位置
3. 修改数据库存储位置权限
chown -R mysql:mysql /opt/nextcloud/nextclouddb
4. 修改数据库安全基线脚本

因为改了数据库存储路径后,需要同时修改相关脚本,否则默认脚本执行还是到默认的/var下去找sock,执行会失败。

vim /usr/bin/mysql_secure_installation

在make_config()段内添加配置

make_config() {
    echo "# mysql_secure_installation config file" >$config
    echo "[mysql]" >>$config
    echo "user=root" >>$config
    esc_pass=`basic_single_escape "$rootpass"`
    echo "password="$esc_pass"" >>$config
    echo "socket=/opt/nextcloud/nextclouddb/mysql.sock" >>$config  //添加此行
    #sed "s,^,> ," < $config  # Debugging
}
5. 设置自启动及启动数据库
systemctl enable mariadb
systemctl start mariadb
6. 执行安全脚本
mysql_secure_installation
7. 建库、赋权限
mysql -u root -p //使用root登陆库
CREATE DATABASE nextcloud_db;
GRANT ALL ON nextcloud_db.* TO "nextcloud"@"%" IDENTIFIED BY "nextcloud";  //注意一定要加 "%",否则无法让网络让任何人上传文件
FLUSH PRIVILEGES;
exit;
8. 远程登陆检查

从其他主机上远程登陆验证

mysql -u nextcloud -p -h IP地址

检查库

show databases;
use nextcloud_db;
安装NextCloud
cd /opt/nextcloud
wget https://download.nextcloud.com/server/releases/nextcloud-11.0.1.zip
unzip nextcoud-11.0.1.zip
配置Apache 1. 安装httpd
yum install httpd
2. 添加站点

偷了个懒,不建立虚拟站点了。直接给/var/www/html下加了个软连接

chown -R  apache:apache  /opt/nextcloud/nextcloud
cd /var/www/html
ln -s /opt/nextcloud/nextcloud nextcloud
3. 设置自启动及重启httpd
systemctl enable httpd
systemctl start httpd
配置NextCloud

|配置项|配置内容|备注|
|-|-|-|
|NextCloud平台管理员用户名|自定义|-|
|NextCloud平台管理员密码|自定义|-|
|data folder|/var/www/html/nextcloud|根据实际填写|
|database user |dbusername|根据之前数据库操作时新建用户填写|
|database password|dbpassword|根据之前数据库操作时新建用户填写|
|database name|nextcloud_db|根据之前建库填写|
|database host|数据库listener的IP地址|务必写对外通信地址,不要写localhost和127.0.0.1。我这儿卡了很久。|

访问

基于以上步骤,基本就完成了基本的NextCloud功能部署。
访问的话,可以通过http://IP/nextcloud 来查看,并通过web方式进行用户创建及文件的查看。
客户端的话也比较简单,添加url、用户、密码就可以同步了。

说说遇到的坑 1. php模块安装

rhel的iso里面不全,epel源也不够用,有些是从rpmfind.net上找的。

2. php升级

rhel7.3已经是rhel目前的最高版本了,可是php版本只是5.4的,不符合NC11最低的5.6要求。个人用户没有rhel的程序订阅,所以只能自己找。查了下CentOS官方推荐使用IUS的源 1,才搞定。

3. NC配置

初次配置时出现了SQLSTATE[HY000][2002]No such file or directory报错。查了下官方说法是 2
SQLSTATE[HY000] [2002] No such file or directory -> There is a problem accessing your SQLite database file in your data directory (data/nextcloud.db). Please check the permissions of this folder/file or if it exists at all. If you’re using MySQL please start your database.
不过我没用sqlite,而且库肯定是启着的。
后来自己琢磨才发现是NC配置数据库接口时要配置外网IP,原以为NC和库都在一台机器上填localhost解析就行了,对架构还是有点误解。当然库上还要拓展数据库写用户的外网访问,加上"%"。

参考资料

NextCloud 11 下载
https://nextcloud.com/install...
NextCloud 11 客户端下载
https://nextcloud.com/install...
NextCloud 11 安装手册
https://docs.nextcloud.com/se...


https://www.centos.org/forums... ↩

https://docs.nextcloud.com/se... ↩

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/9768.html

相关文章

  • NextCloud与Seafile对比使用-NextCloud各项全能 Seafile优势突出

    摘要:和是目前两款比较适合个人当成网盘或者同步云盘使用的程序,最近为了可以找到最适合自己的云盘程序,分别安装并试用了与。二应用平台两者旗鼓相当客户端,与都比较齐全,全平台支持。手机电脑端网页端等都可以正常使用。NextCloud和Seafile是目前两款比较适合个人当成网盘或者同步云盘使用的程序,最近为了可以找到最适合自己的云盘程序,分别安装并试用了NextCloud与Seafile。总得来说,N...

    番茄西红柿 评论0 收藏2637
  • Nextcloud个人云存储绝佳选择:一键自动安装方法和云盘使用体验

    搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典。而Nextcloud是ownCloud原开发团队打造的号称是下一代存储。初一看觉得口气不小,刚推出来就重新定义了Cloud,真正试用过后就由衷地赞同这个Nextcloud:它是个人云存储服务的绝佳选择。 与ownCloud相比,Nextcloud的功能丝毫没有减弱,甚至由于可以安装云存储服务应用,自制性更强,也更符合用户的...

    Shisui 评论0 收藏0
  • 17k Star!打造私人版的某度网盘,限速也不怕

    摘要:总的来说,适用于个人搭建家庭网盘,也适合大家公司内部私有云网盘。支持显示消息状态指示器举手功能群组对话说明可折叠的视频栏全屏屏幕共享。。参与维护万的开源技术资源库,包括等。 ...

    vincent_xyb 评论0 收藏0
  • 搭建nextcloud个人网盘

    摘要:配置文件中,加上如下代码通过访问网站不安全。配置文件加上一行内存限制低于建议值配置修改,改成内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。将不再支持这个版本,需要或更高版本。支持手机,ipad,电脑三端同步,还支持类似百度网盘的链接分享,总体来是还是挺香的准备工作:一台UHost建议2C4G+一个域名,链接一个SSL证书,可以申请TrustAsia的免费的证书,链接一.宝塔面板安装略...

    Tecode 评论0 收藏0
  • 【Microsoft Azure 的1024种玩法】四. 利用Azure Virtual machi

    摘要:它的客户端覆盖了等各种平台,也提供了网页端以及接口,所以你几乎可以在各种设备上方便地访问你的云盘。【简介】 1.Azure Virtual machines是Azure 提供的多种可缩放按需分配计算资源之一,Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客...

    Corwien 评论0 收藏0

发表评论

0条评论

xiyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<