本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

CentOS7部署nextcloud最新版本

发布于2021-05-30 19:42     阅读(1421)     评论(0)     点赞(18)     收藏(2)


Nextcloud 是一个免费专业的私有云存储网盘「开源」项目,Nextcloud开发人员来自owncloud。Nextcloud 跨平台支持 Windows、Mac、Android、iOS、Linux 等平台,提供了「网页版」以及 WebDAV 形式访问,可以在任何电脑、手机设备上轻松获取和访问文件文档,实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。

nextcloud下载链接,https://nextcloud.com/install/#instructions-server,也可以https://github.com/nextcloud获取源码、相关软件和更多的版本

一、CentOS7下nextcloud服务端安装

管理员手册  https://docs.nextcloud.com/server/latest/admin_manual

以最新的nextcloud 21.0.2版本为例,需要的组件版本如下

PlatformOptions
Operating System
  • Ubuntu 20.04 LTS (recommended)
  • Red Hat Enterprise Linux 8 (recommended)
  • Debian 10 (Buster)
  • SUSE Linux Enterprise Server 15
  • openSUSE Leap 42.1+
  • CentOS 8
Database
  • MySQL 8.0+ or MariaDB 10.2+ (recommended)
  • Oracle Database 11g (only as part of an enterprise subscription)
  • PostgreSQL 9.6/10/11/12/13
  • SQLite (only recommended for testing and minimal-instances)
Webserver
  • Apache 2.4 with mod_php or php-fpm (recommended)
  • nginx with php-fpm
PHP Runtime
  • 7.3
  • 7.4 (recommended)

考虑到实际用途还是以CentOS7为主,下面以(7.7 1908)为例进行安装(部分内容参考官网CentOS8示例,https://docs.nextcloud.com/server/latest/admin_manual/installation/example_centos.html

1. 数据库MariaDB 10.5安装

(1)CentOS7自带的MariaDB数据库是5.5版本,如果安装先卸载:

  1. yum list installed|grep mariadb
  2. #卸载已经安装的mariadb
  3. yum remove mariadb

(2)添加最新版本的MariaDB源,MariaDB官网提供了源的自动生成器,见https://downloads.mariadb.org/mariadb/repositories

选择合适的版本,对于CentOS,https://downloads.mariadb.org/mariadb/repositories/#distro=CentOS&distro_release=centos7-amd64--centos7&mirror=tuna&version=10.5

新建一个 /etc/repos.d/MariaDB.repo,从上面生成的内容粘贴,如下:

  1. # MariaDB 10.5 CentOS repository list - created 2021-05-24 02:24 UTC
  2. # http://downloads.mariadb.org/mariadb/repositories/
  3. [mariadb]
  4. name = MariaDB
  5. baseurl = http://yum.mariadb.org/10.5/centos7-amd64
  6. gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
  7. gpgcheck=1

安装

yum -y install MariaDB-client MariaDB-server MariaDB-devel  #-devel可选

(4)首次安装后的相关操作如下:

  1. systemctl start mariadb.service #启动服务
  2. systemctl enable mariadb.service #添加到开机启动
  3. systemctl status mariadb ## 查看状态
  4. mysql -u root #首次登录MariaDB
  5. mysqladmin -u root password 'your password' #修改MariaDB初始root密码
  6. mysql -u root -p #修改后用新密码登录

注:MariaDB安全配置(和MySQL不同)有专门的命令:mysql_secure_installation,参考https://blog.csdn.net/qq_33187206/article/details/86543588

2. PHP 7.4安装

添加第三方REMI源:

  1. #添加第三方源
  2. yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
  3. #查看yum源中有没有php7.x
  4. yum search php7
  5. #安装php74及相关模块
  6. yum install -y php74-php-fpm php74-php-cli php74-php-bcmath php74-php-gd php74-php-json php74-php-mbstring php74-php-mcrypt php74-php-mysqlnd php74-php-opcache php74-php-pdo php74-php-pecl-crypto php74-php-pecl-mcrypt php74-php-pecl-geoip php74-php-recode php74-php-snmp php74-php-soap php74-php-xml php74-php-imagick php74-php-pecl-zip

  查看PHP版本号:

php74 -v

  要直接用php -v,需要先做一个软链接

ln -s /opt/remi/php74/root/usr/bin/php /usr/bin/php

PHP7.4配置文件的路径:/etc/opt/remi/php74/php.ini

memory_limit = 512M

#如果WebServer是nginx而不是apache,修改 /etc/opt/remi/php74/php-fpm.d/www.conf

  1. # user = apache
  2. # group = apache
  3. # 默认是apache,如果是nginx则想应更改
  4. user = nginx
  5. group = nginx

 注:在CentOS下,Apache默认用户是apache,在debian/ubuntu下,Apache默认用户和组是www-data。

3. Apache安装

nextcloud官方支持的Web Server是Apache,如果使用nginx也可以,见《》

Apache版本变化不大,CentOS7中的Apache版本就可以了。

  1. yum install httpd -y #安装 apache
  2. systemctl start httpd #开启Apache服务
  3. systemctl enable httpd #设置开机自启Apache服务

Apache默认的路径:

  • #var/www/html(apache网页的存放路径,默认下面是没有网页的)
  • #服务目录    /etc/httpd
  • #主配置文件   /etc/httpd/conf/httpd.conf
  • #网站数据目录  /var/www/html
  • #访问日志    /var/log/httpd/access_log
  • #错误日志    /var/log/httpd/error_log

为nextcloud建立一个Apache配置,/etc/httpd/conf.d/nextcloud.conf

  1. Alias /nextcloud "/var/www/html/nextcloud/"
  2. <Directory /var/www/html/nextcloud/>
  3. Require all granted
  4. AllowOverride All
  5. Options FollowSymLinks MultiViews
  6. <IfModule mod_dav.c>
  7. Dav off
  8. </IfModule>
  9. </Directory>

4. Apache与php-fpm

PHP Web应用现在一般建议使用php-fpm,《php-fpm的配置和优化》介绍了mod_php和mod_fastcgi的区别,以及php-fpm的基本概念。

(1)设置php-fpm自启动并启动进程

  1. systemctl start php74-php-fpm
  2. systemctl enable php74-php-fpm

fpm装好后 ,netstat可以看到9000端口被fpm使用。

 (2) apache模块配置中增加php-fpm配置文件,如下:

/etc/httpd/module.conf.d/10-php-fpm.conf

  1. <FilesMatch \.php$>
  2. SetHandler "proxy:fcgi://127.0.0.1:9000"
  3. </FilesMatch>

编写一个测试文件phpinfo.php,放在/var/www/html下面

  1. <?php
  2. phpinfo();
  3. ?>

访问http://ip/phpinfo.php,效果如下:

表示PHP安装和配置成功,使用的是FPM模式。

[注]使用yum安装完apache、php7、mariadb之后,发现apache可以解析html文件,但是不能解析php文件,一般就是php-fpm没有正确配置。

5. 安装nextcloud服务器

 下载nextcloud服务包,参照下面的官网操作步骤。

  1. wget https://download.nextcloud.com/server/releases/nextcloud-x.y.z.tar.bz2.asc
  2. wget https://nextcloud.com/nextcloud.asc
  3. gpg --import nextcloud.asc
  4. gpg --verify nextcloud-x.y.z.tar.bz2.asc nextcloud-x.y.z.tar.bz2
  5. unzip nextcloud-*.zip
  6. cp -R nextcloud/ /var/www/html/
  7. #创建数据存储目录
  8. mkdir /var/www/html/nextcloud/data
  9. #确保Apache对数据存储目录有读写权限
  10. chown -R apache:apache /var/www/html/nextcloud
  11. #Restart apache:
  12. systemctl restart httpd.service
  13. #创建apache防火墙规则:
  14. firewall-cmd --zone=public --add-service=http --permanent
  15. firewall-cmd --reload

现在可以启动web安装界面了,输入http://{ip}/nextcloud

安装界面

(1)关于数据目录,就是上面创建的,当然也可以制定一个空间比较大的目录(apache可读写)。

(2)关于数据库,默认是SQLite,也可以选择MariaDB,输入MariaDB 服务器IP、账户和密码、数据库名称(一般设为nextcloud,安装程序会自动建立),点击【完成安装】按钮就自动安装。

 安装完成后在/var/www/html/nextcloud/config目录下生成了config.php配置文件,如下

  1. <?php
  2. $CONFIG = array (
  3. 'instanceid' => 'ochq42k4ktyk',
  4. 'passwordsalt' => '54A8OBXD9nhDD4cWjQ6uWlK56W49qg',
  5. 'secret' => 'gMvTQtYHTipn4TDCUdIzeQjYg/V0m2y+sh4KeRfOnHOvbCcT',
  6. 'trusted_domains' =>
  7. array (
  8. 0 => '192.168.10.51',
  9. ),
  10. 'datadirectory' => '/var/www/html/nextcloud/data',
  11. 'dbtype' => 'mysql',
  12. 'version' => '21.0.2.1',
  13. 'overwrite.cli.url' => 'http://192.168.10.51/nextcloud',
  14. //如果是https访问,加入下面一行
  15. //'overwriteprotocol' => 'https',
  16. 'dbname' => 'nextcloud',
  17. 'dbhost' => 'localhost',
  18. 'dbport' => '',
  19. 'dbtableprefix' => 'oc_',
  20. 'mysql.utf8mb4' => true,
  21. 'dbuser' => 'root',
  22. 'dbpassword' => 'mcwolf2000',
  23. 'installed' => true,
  24. );

(3) 关于trusted_domains,官方文档"All URLs used to access your Nextcloud server must be whitelisted in your config.php file, under the trusted_domains setting. Users are allowed to log into Nextcloud only when they point their browsers to a URL that is listed in the trusted_domains setting. You may use IP addresses and domain names. A typical configuration looks like this:"

  1. 'trusted_domains' =>
  2. array (
  3. 0 => 'localhost',
  4. 1 => 'server1.example.com',
  5. 2 => '192.168.1.50',
  6. 3 => '[fe80::1:50]',
  7. ),

简单的说,就是浏览器访问nextcloud所用URL地址的主机部分,必须加入到这个配置中,本例中是192.168.10.50,如果使用域名访问nextcloud服务,也要将域名加入trusted_domains数组中。

6. 超大文件上传设置

Nextcloud的默认的最大上传限制为512MB,一般足够满足常见需求。

但NextCloud实际能上传的最大文件的大小可以根据需要配置,取决于浏览器和操作系统,nextcloud文档《Uploading big files > 512M》做了详细说明。

32位系统可上传小于2GB的文件,    IE6~IE8可上传小于2GB的文件,    IE9~IE11可上传小于4GB的文件;在64位系统中允许上传更大的文件,具体能上传多大仍然取决于你的操作系统的版本。【注】使用Nextcloud sync 客户端可以无视这个上传限制,因为这个客户端会将文件切分后上传。

(1)前置操作

禁用用户配额:将所有用户的配额设置为“无限制”
对服务器的要求:临时文件空间(/tmp目录)和分区必须足够大以承载多个用户的多个并行上传,如果最大上传的限制为10GB,而约有100个用户(一般达不到这个数量)同时上传文件,那么至少要有100×10GB的空间来容纳临时文件(这儿牵涉到Linux的临时文件的分区)

(2) PHP参数

Nextcloud利用其程序根目录下的的.htaccess文件来控制上传限制。因为php-fpm无法读取.htaccess文件,所以相关的PHP设置必须要设置在nextcloud/.user.ini下。

  1. php_value upload_max_filesize = 4G
  2. php_value post_max_size = 4G
  3. #限制了大文件的上传另一个因素是PHP的超时(timeout),如果在日志中看到超时记录,可将PHP超时调大:
  4. php_value max_input_time 3600
  5. php_value max_execution_time 3600

(3)Web Server

HTTP服务器也会有超时机制。例如Apache的”mod_reqtimeout“ 模块,如果使用这个模块并且遇到超时的问题,可以考虑在Apache配置中禁用。

Apache的某些配置也会影响到大文件的上传:

  • LimitRequestBody(请求实体限制)
  • SSLRenegBufferSize(缓冲区大小)

nginx服务器的相关参数:

  • client_max_body_size
  • fastcgi_read_timeout
  • client_body_temp_path
  • fastcgi_request_buffering  

(4)php.ini

如果不想在前面nextcloud/.user.ini中进行配置,也可以在php.ini中配置

  1. php_value upload_max_filesize = 4G
  2. php_value post_max_size = 4G

同时,加上

upload_tmp_dir = /var/big_temp_file/ 

如果无法修改php.ini中的设置upload_tmp_dir参数,也可以在nextcloud配置中如下设置:'tempdirectory' => '/tmp/nextcloudtemp',

二、nextcloud使用

nextcloud可以从web页面、专用客户端(Windows/Linux/Mac)、文件管理器(webDAV协议)和手机应用进行访问,这也是nextcloud的一大优势。

1. WEB访问nextcloud服务

在安装nextcloud服务的时候建立的admin管理员账户,用admin管理员身份建立一个新用户mcwolf,然后登陆后首页如下:

首页默认显示的是仪表盘,在左上角还有文件、照片和动态等功能。

nextcloud登陆后首页(仪表盘)

点击文件图标,进入最常见的文件管理,可以用“+”上传文件,也可以直接从文件管理器拖拽上传文件。

nextcloud文件管理

这时,在nextcloud服务器中的文件存储结构是:

  1. [root@localhost data]# tree -L 2 /var/www/html/nextcloud/data/mcwolf
  2. mcwolf
  3. ├── cache
  4. ├── files
  5. │   ├── Documents
  6. │   ├── Nextcloud\ intro.mp4
  7. │   ├── Nextcloud\ Manual.pdf
  8. │   ├── Nextcloud.png
  9. │   ├── Photos
  10. │   ├── Reasons\ to\ use\ Nextcloud.pdf
  11. │   ├── Sync
  12. │   └── Templates
  13. └── files_trashbin
  14. ├── files
  15. ├── keys
  16. └── versions

2. WebDAV访问nextcloud文件

NextCloud 支持 WebDAV 协议,用户可以完全通过 WebDAV 来连接并同步文件,可以和文件管理器集成(包括Windows,Linux桌面),对于固定使用的电脑,可以映射为一个硬盘,就和本地硬盘一样操作,这也是最方便的使用模式。

Nextcloud登录后,单击设置,复制WebDAV下的URL地址。

回到电脑桌面,右击计算机,选择映射网络驱动器或添加一个网络位置, 复制第1步中的URL,单击下一步。输入用户名密码,单击确定即可,在资源管理器->计算机,可以看到映射的网络位置,双击打开即可看到Nextcloud中的文件

复制文件到映射的驱动器,网页打开Nextcloud,查看文件是否同步!

如果没有开启https协议,这里会无法添加webdav地址,提示“输入的文件夹似乎无效。请选择另一个

windows7-10中,webDAV默认不支持http

因为win7~10默认是只能添加https的WebDAV不是https,需要修改注册表使得win7~10同时支持http和https:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

(1)把BasicAuthLevel 值改成2,即同时支持http和https。

(2)设置文件大小限制,FileSizeLimitInBytes值改成十进制50000000,

然后命令行下重启服务:

  1. net stop webclient
  2. net start webclient

再次“映射网络驱动器”,就可以添加成功了。

3.Nextcloud 客户端实现与本地数据同步

Nextcloud 客户端无缝连接到Nextcloud云服务器,允许用户在桌面和服务器之间同步他们的数据,支持端到端加密、同步文件夹无缝集成到GNOME文件管理器侧栏

比较坑爹的是客户端3.0版本以后只支持win10,所以最后支持win7的是2.7,旧版本下载 https://github.com/nextcloud/desktop/releases

安装后,第一次需要登录和执行设置向导(同步的目录),运行后在系统托盘运行,从托盘打开界面如图:

主界面显示的是执行的同步操作日志,右上角目录图标是直接进入本地同步目录,其它图标则直接访问Web相应功能。

nextcloud客户端界面

点击账户,从下面的菜单中选择“Settings”,可以对要同步目录进行选择:

nextcloud客户端的同步设置

Nextcloud安卓客户端是免费的,而且兼容ownCloud,https://github.com/nextcloud/android,可以下载一个开发者版

4. 管理功能

admin账户可以完成nextcloud各种管理功能。点击nextcloud页面右上角 “A”图标,出现功能菜单,其中设置功能如下:

nextcloud管理功能

左边侧栏上面是个人设置,下面是管理,也就是对nextcloud服务的设置,非常的详细,也很强大,上图是安全设置,例如可以在这里设置密码策略,也可以配置服务器加密。

原文链接:https://blog.csdn.net/McwoLF/article/details/117222806



所属网站分类: 技术文章 > 博客

作者:Nxnndn

链接:http://www.phpheidong.com/blog/article/86829/dc8db8b9cc63af93e414/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

18 0
收藏该文
已收藏

评论内容:(最多支持255个字符)