手动拷贝文件至nextcloud中并扫描(docker)

Posted feiyafei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手动拷贝文件至nextcloud中并扫描(docker)相关的知识,希望对你有一定的参考价值。

出于不能在nextcloud的web页面手动上传,需要写脚本实现自动上传文件至nextcloud的目的,直接在服务器上将文件手动拷贝到nextcloud目录:

docker cp /data/files nextcloud:/var/www/html/data/账号名/files

但是一般人不这么做,一般挂载到-v卷岂不更好

在nextcloud目录中我们可以这么扫描

#容器内需要指定用户’www-data‘,手动扫描文件并指定扫描路径:

sudo -u www-data php /var/www/html/occ files:scan --path admin/files/

 容器外执行方式:(推荐)

docker exec -u 33 nextcloud php /var/www/html/occ files:scan --path admin/files/

#-u是指以容器中的uid=33(uid为33的用户名是www-data)的用户执行,也可以使用用户名。

  

如果使用--all,会导致扫描时间较长,且影响性能。

occ扫描参数说明

格式: files:scan [-p|--path="..."] [-q|--quiet] [-v|vv|vvv --verbose] [--all] [user_id1] ... [user_idN]
 
参数: 
user_id #扫描所指定的用户(一个或多个,多个用户ID之间要使用空格分开)的所有文件
 
选项: 
--path #限制扫描路径,该路径必须包含以下部分:"user_id/files/path"
--all #扫描所有已知用户的所有文件 
--quiet #不输出统计信息 
--verbose #在扫描过程中显示正在处理的文件和目录 
--unscanned #仅扫描以前未扫描过的文件

 

Ubuntu下手动安装NextCloud

安装环境:阿里云VPS Ubuntu 16.04  

 

一、 安装Apache2

sudo apt-get install apache2

安装完成后,浏览器访问http://your ip/,出现It works!网页表示安装成功。

  • 修改状态:service apache2 status|start|stop|restart
  • 站点目录:/var/www/
  • 修改权限:sudo chmod 777 /var/www
  • 安装目录:/etc/apache2/
  • 全局配置:/etc/apache2/apache2.conf
  • 监听端口:/etc/apache2/ports.conf
  • 虚拟主机:/etc/apache2/sites-enabled/000-default.conf

二、安装MariaDB

sudo apt-get install mariadb-server mariadb-client
  • 启动MariaDB服务:sudo systemctl start mysql
  • 查看状态:sudo systemctl status mysql
  • 重启服务:service mysql restart
  • 查看监听端口的情况:netstat -tunpl 或 netstat -tap
  • 执行初始化安全脚本,默认root密码为空,设置root密码和其他选项:sudo mysql_secure_installation

为NextCloud创建数据库和用户
创建数据库nextcloud,用户名nextcloud,密码XXXXXXXX

sudo mysql -u root -p

 

进入MariaDB后,执行:

#创建数据库,名为:nextcloud
CREATE DATABASE nextcloud;

#给用户nextcloud全部权限
GRANT ALL PRIVILEGES ON nextcloud.* TO \'nextcloud\'@\'localhost\' IDENTIFIED BY \'XXXXXXXX\';
FLUSH PRIVILEGES;

#退出
\\q

三、安装PHP及其他模块

sudo apt-get install php7.0

sudo apt-get install apache2 mariadb-server libapache2-mod-php7.0
sudo apt-get install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring
sudo apt-get install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip
  • 测试:php7.0 -v
  • 重启服务:service apache2 restart
  • 测试Apache能否解析PHP
  • 执行sudo nano /var/www/html/phpinfo.php
    文件中写:<?php echo phpinfo();?>
    浏览器访问:http://your ip/phpinfo.php,出现PHP Version网页

四、安装phpMyAdmin

sudo apt-get install phpmyadmin
  • 安装:选择apache2,点击确定。下一步选择是要配置数据库,并输入密码。
  • 创建phpMyAdmin快捷方式:sudo ln -s /usr/share/phpmyadmin /var/www/html
  • 启用Apache mod_rewrite模块:sudo a2enmod rewrite
  • 重启服务:service php7.0-fpm restart & service apache2 restart
  • 测试:浏览器访问:http://your ip/phpmyadmin

五、配置Apache

vi /etc/apache2/apache2.conf

在最后面添加:

AddType application/x-httpd-php .php .htm .html
AddDefaultCharset UTF-8

然后重启Apache服务。
到此为止,web站点其实已经搭建起来了,只需在/var/www/html目录下存放网页文件,电脑主机就可以访问服务器了,http://ip/xxx.html

六、下载nextcloud

cd /var/www/html
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.5.zip
unzip nextcloud-15.0.5.zip
rm nextcloud-15.0.5.zip

接下来只需要在电脑主机的浏览器上输入http://ip/nextcloud,就可以正常访问了。

七、安装

(忘记截图了,直接说怎么填吧!)首先填入账号密码,可自定义,之后作为管理员登陆。然后,数据库名nextcloud,数据库用户名nextcloud,用户密码为你在第三步设置的密码(没改的话是XXXXXXXX)。端口填localhost:3306(apache默认使用3306端口)。

八、映射webDAV

每次使用都要登陆还是有点麻烦,不如把它映射到本地,当作一个本地盘使用。

点击左下角的设置,复制webDAV地址:

 

打开Windows资源管理器(我的电脑),左上角 计算机-->映射网络驱动器,将webDAV地址填入:

 

要求输入账号密码,直接填你初始化时设置的Nextcloud账号密码。

映射完成后,你的电脑里就会多出一个盘:


 

九、可能遇到的问题

1.缺少权限

如果出现下面的画面,说明你没有给nextcloud目录权限:


 

 解决方法:

cd /var/www/html
chown www-data nextcloud -Rf
chmod 770 nextcloud -Rf

2.刷新浏览器出现PHP cURL模块未安装

 

 解决方法:

sudo apt-get install libcurl3 php7.0-curl

 

 

参考链接:

 1、https://www.jianshu.com/p/44f86003ac37

 2、https://blog.csdn.net/weixin_42178720/article/details/80269451

 3、https://zhuanlan.zhihu.com/p/34610722

以上是关于手动拷贝文件至nextcloud中并扫描(docker)的主要内容,如果未能解决你的问题,请参考以下文章

NextCloud Updater Downloading失败的解决方法

Ubuntu下手动安装NextCloud

将 ownCloud/Nextcloud 与 S3 存储桶同步问题一起使用

nextcloud的安装配置

Nextcloud

NextCloud 通过 WebDAV 脚本标记文件