利用ownCloud+Nginx在Ubuntu上简单搭建私有云盘

ownCloud是一个自由且开源的客户端到服务器端的软件,可作为个人云存储解决方案。ownCloud - 维基百科

ownCloud官网

ownCloud可以实现分享文件、管理图片和音视频、编辑笔记和日历、挂载云盘等诸多功能,并且安装和使用都非常方便。

ownCloud

我的环境

  • Ubuntu 20.04 64-bit
  • Nginx 1.18.0

ownCloud安装

以下可参考ownCloud软件包安装

sudo wget -nv https://download.owncloud.org/download/repositories/production/Ubuntu_19.10/Release.key -O Release.key
sudo apt-key add - < Release.key

下一命令需切换到Root用户操作,或者其他同样结果的操作:

echo 'deb http://download.owncloud.org/download/repositories/production/Ubuntu_19.10/ /' > /etc/apt/sources.list.d/owncloud.list

安装ownCloud

sudo apt-get update  
sudo apt-get install owncloud-files  

注意:

  1. ownCloud会自动解压到Nginx网页目录下(/var/www/owncloud),作为网页根目录;
  2. 我这里安装的ownCloud版本为10.4.1-1,该版本要求PHP版本在7.1.0到7.4.0(不含)之间。
    /var/www/owncloud/index.php
    /var/www/owncloud/index.php

修改owncloud目录所有者为www-data用户,若出错可尝试恢复为root用户

sudo chown -R www-data:www-data /var/www/owncloud/

PHP安装

检查已安装的PHP模块

 apt list | grep -En ^php.+installed

添加PHP APT仓库

sudo add-apt-repository ppa:ondrej/php

安装PHP模块

sudo apt install php7.3 php7.3-fpm php7.3-curl php7.3-gd php7.3-zip php7.3-dom php7.3-intl php7.3-mbstring php7.3-xml 

数据库及其驱动安装

MySQL:

sudo apt install mariadb-server  php7.3-mysql

SQLite:

sudo apt install sqlite3  php7.3-sqlite3

创建MySQL数据库及用户(已有数据库或使用SQLite者略过)

# 创建数据库
CREATE DATABASE IF NOT EXISTS owncloud DEFAULT CHARACTER SET UTF8 COLLATE utf8_general_ci;
# 创建用户并授予所有权限
GRANT ALL PRIVILEGES ON owncloud.* to '用户名'@'localhost' identified by '密码';
# 刷新权限
FLUSH PRIVILEGES;

重启PHP-FPM

 sudo service php7.3-fpm restart

我的Nginx站点配置

编辑 /etc/nginx/sites-enabled/owncloud

upstream php-handler {
    # server    127.0.0.1:9000; 
    server    unix:/var/run/php/php7.3-fpm.sock; 
} 
server {
    listen  80;
    server_name    cloud.xxx.xx; 
    # Path to the root of your installation 
    root    /var/www/owncloud; 
    # SSL configuration 需要SSL时解除该段注释
    # listen    443 ssl; 
    # ssl_certificate "/etc/letsencrypt/live/cloud.xxx.xx/cert.pem";
    # ssl_certificate_key "/etc/letsencrypt/live/cloud.xxx.xx/privkey.pem";
    # ssl_session_cache shared:SSL:1m;
    # ssl_session_timeout  10m;
    # ssl_ciphers HIGH:!aNULL:!MD5;
    # ssl_prefer_server_ciphers on;
    # set max upload size 
    client_max_body_size    10G; 
    fastcgi_buffers    64    4K; 
    # Disable gzip to avoid the removal of the ETag header 
    gzip    off; 
    # Uncomment if your server is build with the ngx_pagespeed module 
    # This module is currently not supported. 
    #pagespeed    off; 
    rewrite    ^/caldav(.*)$    /remote.php/caldav$1 redirect; 
    rewrite    ^/carddav(.*)$    /remote.php/carddav$1 redirect;
    rewrite    ^/webdav(.*)$    /remote.php/webdav$1 redirect;
    index    index.php;
    error_page    403    /core/templates/403.php;
    error_page    404    /core/templates/404.php;
    location = /robots.txt {
        allow all; 
        log_not_found off; 
        access_log off; 
    } 
    location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
        deny all; 
    }
    location / {
        # The following 2 rules are only needed with webfinger 
        rewrite ^/.well-known/host-meta /public.php?service=host-meta last; 
        rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; 
        rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; 
        rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; 
        rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; 
        try_files $uri $uri/ /index.php; 
    }
    location ~ \.php(?:$|/) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$; 
        include fastcgi_params; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        fastcgi_param PATH_INFO $fastcgi_path_info; 
        fastcgi_pass php-handler; 
    }
    # Optional: set long EXPIRES header on static assets 
    location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
          expires 30d; 
          # Optional: Don't log access to assets 
          access_log off; 
    } 
}

安装完成

重启Nginx

sudo service nginx restart

配置数据库及初始化管理员账号。请事先配置好数据库和数据库用户,SQLite除外。

初始化

希望对你有帮助,遇到问题可在下方评论区留言

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值