当前位置: 首页 > Linux

搭建NextCloud服务笔记-基础

时间:2023-04-06 04:30:52 Linux

简介国外优秀云存储无法上传或速度极慢(感谢GFW),国内各大云盘已被禁用或自阉,数据安全始终得不到保障.多年的折腾经验告诉我,最重要的是数据。硬件和软件是有价值的,但有价值的数据和信息是无价的。早就有折腾私有云存储的想法,但一直没有找到满意的解决方案(我折腾过Syncthing,优点是可以指定多个不同的磁盘进行同步,但是痛苦的客户端CPU占用,让我用一天后果断放弃)。偶然发现NextCloud,第一眼就认定是OwnCloud(其实我第一眼看到的就是OwnCloud,呵呵)。NextCloud解决方案是经典云解决方案OwnCloud的衍生产品。据说OwnCloud的母公司已经被一家德国公司收购,整体解决方案和产品趋向于稳定向用户收费。原项目组的骨干觉得还有更好的功能需要开发,于是就有了今天的主角NextCloud。详细介绍请参考https://nextcloud.com/Advantages支持多平台客户端,官方提供web、Windows、Linux、Mac、IOS、Android、WindowPhone全家桶包支持link外链,可以设置访问权限密码和分享分开过期时间傻瓜用户,简单方便支持插件扩展功能内置文件预览(没详细研究支持的格式,pdf在线预览一眼就能看出来)缺点就是不支持多盘同步。刚上车,不知道有没有什么坑。(据说OwnCloud的中文目录或文件中文名是乱码,我现在在NC上没遇到过,完全没问题。)再说一遍,开源要费点功夫才能上车,以及这是相当多的麻烦。安装步骤很简单。NextCloud是一款基于经典LAMP平台的应用。网页服务由Apache提供,网页编程语言为php,数据库使用Mariadb。下面是我部署的环境列表。基础环境|软件|版本||-|-||RHEL|7update3||PHP|5.6.30||MariaDB|5.5.52||Apache|httpd-2.4.6||NextCloud|11.0.1|减少麻烦,防火墙和SElinux都关掉了,相关的端口,防火墙,布尔值等就不详细说了。当然,功能实现成功后,为了安全还是要添加Selinux和FW。毕竟,数据安全是必要的。我还打算单独写一篇关于安全配置和高级配置的笔记。下面按照php、Mariadb、Apache、NextCloud的顺序简单介绍一下安装过程。安装和配置PHP1。安装PHPyum安装php2。安装NextCloud所需的PHP模块|5.6、7.0或7.1)|yum安装php||PHP模块ctype|包含||PHP模块dom|yum安装php-xml||PHP模块GD|JSON|内置||PHP模块libxml(Linux包libxml2必须>=2.7.0)|内置||PHP模块mb多字节|ftp://fr2.rpmfind.net/linux/centos/7.3.1611/os/x86_64/Packages/php-mbstring-5.4.16-42.el7.x86_64.rpm||PHP模块posix|yum安装php-posix||PHP模块SimpleXML|||PHP模块zip|附带||PHP模块zlib|附带||PHP模块卷曲|附带||PHP模块文件信息|附带||PHP模块bz2|附带||PHP模块国际|ftp://rpmfind.net/linux/centos/7.3.1611/os/x86_64/Packages/php-intl-5.4.16-42.el7.x86_64.rpm||PHP模块mcrypt|ftp://rpmfind.net/linux/epel/7/x86_64/p/php-mcrypt-5.4.16-7.el7.x86_64.rpmftp://rpmfind.net/linux/epel/7/x86_64/l/libmcrypt-2.5.8-13.el7.x86_64.rpm||PHP模块openssl|附带|3。查看php安装的模块php-m|grep-i<模块名称>4。配置EPEL源和IUS源由于RHEL7.3默认PHP版本为5.4.6,NextCloud需要5.6以上版本,所以需要通过第三方源升级。强烈建议使用EPEL源和IUS源,不要使用remi源。CentOS官方wgethttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmwgethttps://dl.iuscommunity.org/pub/ius/stable/Redhat/7/x86_64/ius-release-1.0-14.ius.el7.noarch.rpmrpm-ivhepel-release-latest-7.noarch.rpmrpm-ivhius-release-1.0-14.ius.e17.noarch.rpmyumcleanallyumlist5.安装yum-plugin-replace包yuminstallyum-plugin-replace6。将PHP5.4.6升级到5.6,补充包yuminstalllibtool-ltdlyuminstalllibvpxyumreplacephp--replace-withphp56uyuminstallphp56u-gd7。Actionafterupdate升级后,如果http服务已经启动,需要重启httpd服务才能生效php-v//查看版本php-m|grep-i//查看模块安装配置Mariadb1.安装MariadbServer和Clientyuminstallmariadbyuminstallmariadb-server2。修改数据库存放位置修改/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-Rmysql:mysql/opt/nextcloud/nextclouddb4.修改数据库安全基线脚本改变了数据库存放路径,需要同时修改相关脚本,否则默认脚本执行会去默认的/var找sock,执行失败vim/usr/bin/mysql_secure_installation在make_config()部分添加配置make_config(){echo"#mysql_secure_installationconfigfile">$configecho"[mysql]">>$configecho"user=root">>$configesc_pass=`basic_single_escape"$rootpass"`echo"password='$esc_pass'">>$configecho"socket=/opt/nextcloud/nextclouddb/mysql.sock">>$config//添加这一行#sed's,^,>,'<$config#调试}5.设置自启动和启动数据库systemctlenablemariadbsystemctlstartmariadb6。执行安全脚本mysql_secure_installation7。建立数据库并分配权限mysql-uroot-p//使用root登录数据库CREATEDATABASEnextcloud_db;GRANTALLONnextcloud_db.*TO'nextcloud'@'%'IDENTIFIEDBY'nextcloud';//注意一定要加“%”,否则网络不允许任何人上传文件FLUSHPRIVILEGES;exit;8.远程登录校验从其他主机远程登录验证mysql-unextcloud-p-hIP地址校验库showdatabases;使用nextcloud_db;安装NextCloudcd/opt/nextcloudwgethttps://download.nextcloud.com/server/releases/nextcloud-11.0.1.zipunzipnextcoud-11.0.1.zip配置Apache1。安装httpdyum安装httpd2。添加添加站点是偷懒的,我没有创建虚拟站点,而是直接添加了软链接到/var/www/htmlchown-Rapache:apache/opt/nextcloud/nextcloudcd/var/www/htmlln-s/opt/nextcloud/nextcloudnextcloud3.设置自启动和重启httpdsystemctlenablehttpdsystemctlstarthttpd配置NextCloud|配置项|配置内容|备注||-|-|-||NextCloud平台管理员用户名|自定义|-||NextCloud平台管理员密码|自定义|-||数据文件夹|/var/www/html/nextcloud|根据实际情况填写||数据库用户|dbusername|按照上次操作数据库时的新用户填写||数据库密码|dbpassword|按照上次操作数据库时填写||数据库名|nextcloud_db|按照之前操作填写数据库创建||数据库主机|数据库监听的IP地址|一定要写对外通信地址,不要写localhost和127.0.0.1。我被困在这里很长时间了。|Access基于以上步骤,基本完成了NextCloud的基本功能部署。访问可以通过http://IP/nextcloud查看,通过web创建用户和查看文件。client端也比较简单,只需要添加url,user,password就可以同步了。说说我遇到的坑1、安装php模块的rhel的iso不全,epel源不够,有的是从rpmfind.net找的。2、php升级到rhel7.3已经是rhel的最高版本了,但是php版本只有5.4,不满足NC11最低5.6的要求。个人用户没有rhel程序订阅,只能自己找了。查看CentOS官方推荐使用IUS的source1,搞定。3、SQLSTATE[HY000][2002]NC配置初始配置时没有出现这样的文件或目录错误。检查官方说法是2SQLSTATE[HY000][2002]Nosuchfileordirectory->ThereisaproblemaccessingyourSQLitedatabasefileinyourdatadirectory(data/nextcloud.db).请检查此文件夹/文件的权限或它是否存在。如果您使用的是MySQL,请启动您的数据库。但是我不使用sqlite,必须启用该库。自己思考后发现,NC在配置数据库接口的时候,需要配置外网IP。本来以为NC和library都应该填写在同一台机器上的localhost进行分析,但是对架构还是有点误解。当然,数据库还需要扩展数据库写用户的外网访问权限,加上“%”。参考资料NextCloud11下载https://nextcloud.com/install...NextCloud11客户端下载https://nextcloud.com/install...NextCloud11安装手册https://docs.nextcloud.com/se。..https://www.centos.org/forums...?https://docs.nextcloud.com/se...?

最新推荐
猜你喜欢