Linux ownCloud私有云搭建

 

分站内容可能或出现渲染错误或内容过时等问题,请以主站为准!
分站禁止评论,评论请前往主站

关于ownCloud

  ownCloud是一个开源免费专业的私有云存储项目,它能帮你快速在个人电脑或服务器上架设一套专属的私有云文件同步网盘,可以像 百度云那样实现文件跨平台同步、共享、版本控制、团队协作等等。ownCloud 能让你将所有的文件掌握在自己的手中,只要你的设备性能和空间充足,那么用起来几乎没有任何限制。
  ownCloud支持 WindowsMacAndroidiOSLinux 等平台,而且还提供了网页版和 WebDAV 形式访问,因此你可以在任何电脑、手机上都能轻松获取你的文件。
  本篇文章主要介绍了如何在LNMP环境下搭建ownCloud.

需求环境(括号内为博主使用的环境,基于宝塔面板安装)

  • 系统: CentOS Linux 7+(CentOS Linux 7.2.1511 64bit)
  • web服务器: Nginx 1.16+(Nginx 1.16.1)
  • 数据库: MySQL 5.5+(MySQL 5.5.62)
  • PHP: 5.6<PHP<7.3(PHP 7.2)
    • 额外PHP扩展(括号内为建议安装):acpu,redis,fileinfo(opcache,memcache,memcached)

安装ownCloud

  1. 安装dnf包(系统内已安装可跳过此步骤):

    yum install dnf

  2. 安装dnf config-manager命令(系统内已安装可跳过此步骤):

    dnf install 'dnf-command(config-manager)'

  3. 添加新的ownCloud软件源:

    rpm --import https://download.owncloud.org/download/repositories/production/CentOS_7/repodata/repomd.xml.key

  4. 安装ownCloud-files:

     dnf config-manager --add-repo  http://download.owncloud.org/download/repositories/production/CentOS_7/ce:stable.repo
     dnf clean all
     dnf install owncloud-files
    
  5. 检查是否安装成功:

    如果/var/www/html文件夹内有owncloud文件夹,说明安装成功。

  6. 修改根目录(可选)

    直接复制owncloud文件夹到目标文件夹即可(要保留一份后面可能会用到)

添加网站

将网站根目录指向.../owncloud即可:

server
{
    listen 80;
    server_name 你的服务器ip或域名;
    index index.php index.html index.htm default.php default.htm default.html;
    root .../owncloud/;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END

    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-72.conf;
    #PHP-INFO-END

    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/your.conf;
    #REWRITE-END

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }

    #防盗链配置
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null;
    }
    access_log  /www/wwwlogs/your.log;
    error_log  /www/wwwlogs/your.error.log;
}

创建数据库

创建数据库并记住数据库名,用户名,密码

配置数据库及管理员帐号

访问你的网站(ip或域名)看到如下内容(报错请给根目录”775”或”777”权限):

初次访问

  • 输入管理员帐号密码(需要记住)
  • 数据目录可不修改
  • 数据库选择MySQL/MariaDB并输入数据库名、帐号、密码、主机名及端口号(默认localhost:3306)

填完上述内容后点击安装完成可看到如下内容:

登录

输入之前输入的管理员帐号密码登录即可。

安全及设置警告

  1. PHP 似乎没有设置好查询的系统环境变量。 用 getenv("PATH") 测试只返回一个空值。请检查 PHP 配置说明和服务器的 PHP 配置 安装文档 ↗,使用 PHP-FPM 时尤其注意。

    找到/www/server/php/72/etc目录,编辑php-fpm.conf文件,找到如下内容(没有则添加如下内容)

     ;env[HOSTNAME] = $HOSTNAME
     ;env[PATH] = /usr/local/bin:/usr/bin:/bin
     ;env[TMP] = /tmp
     ;env[TMPDIR] = /tmp
     ;env[TEMP] = /tmp
    

    去掉前面的’;’并保存。

  2. 事务文件锁定应配置为使用基于内存的锁定,而不是默认的基于慢速数据库的锁定。有关详细信息,请参阅 文档 ↗。

    编辑.../owncloud/config/目录下的config.php文件,添加如下内容(需安装前面提到的额外PHP扩展):

     'memcache.local' => '\\OC\\Memcache\\APCu',
     'memcache.locking' => '\\OC\\Memcache\\Redis',
     'redis' =>
     array (
       'host' => 'localhost',
       'port' => 6379,
     ),
    

    保存即可。

  3. 我们建议启用系统 cron,任何其他 cron 方法可能对性能和可靠性有影响。

    添加计划任务:

    • 任务类型:Shell脚本
    • 任务名称:随便取一个
    • 执行周期:N分钟 15分
    • 脚本内容:sudo -u www /www/server/php/72/bin/php -f .../owncloud/cron.php(“…“要根据自己的实际情况修改)

    设置中计划任务改为Cron

    计划任务

  4. 您正在通过 HTTP 访问该站点,我们强烈建议您按照安全提示配置服务器强制使用 HTTPS。

    给网站配置SSL证书,启用HTTPS即可。

  5. HTTP 严格传输安全(Strict-Transport-Security)报头未配置到至少“15552000”秒。处于增强安全性考虑,我们推荐按照安全提示启用 HSTS。

    编辑网站配置文件,添加如下代码: add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

  6. 你的数据目录和你的文件可能从互联网被访问到。.htaccess 文件不工作。我们强烈建议你配置你的网页服务器,使数据目录不再可访问,或者将数据目录移动到网页服务器根文档目录之外。

    编辑网站配置文件,添加如下代码:

     location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
         deny all;
     }
    
  7. PHP 无法访问 /dev/urandom, 由于安全原因, 这是强烈不推荐的.

    编辑.../owncloud目录下的.user.ini文件,改为如下内容:

     upload_max_filesize=513M
     post_max_size=513M
     memory_limit=512M
     mbstring.func_overload=0
     always_populate_raw_post_data=-1
     default_charset='UTF-8'
     output_buffering=0
    
  8. 一些文件没有通过完整性检查。如何解决此问题的详细信息可以查看我们的 文档. (无效文件列表… / 重新扫描…)

    跟之前保留的owncloud文件夹里的内容比较一下,看看有哪些文件不同替换过来就行(注意隐藏文件)

邮箱配置

  • 设置 > 个人 > 常规中设置好管理员邮箱地址并保存
  • 按下图配置好电子邮件服务器(以QQ邮箱为例,不要和上面使用同一个邮箱)如何配置?

邮箱配置

  • 配置完成后点击下面的发送邮件发送测试邮件,如果之前设置的管理员邮箱可以收到测试邮件说明配置成功。