截止到2023年10月 owncloud官网最新版本为10.13.2,插件和功能有所增加,现有的功能完全能满足企业级应用。

支持常规部署和docker容器部署(首选),容器部署后期升级更方便。

一、介绍说明

OwnCloud是一款开源的云存储平台,它提供了类似于百度网盘和OneDrive的功能,但与这些商业服务不同,OwnCloud是一个自托管的解决方案,你可以将它安装在你自己的服务器上,并完全控制你的数据。OwnCloud支持文件存储、同步、共享、在线编辑、备份、加密、扩展等功能。
功能:
1.文件存储:你可以在OwnCloud中存储和管理所有的文件和文件夹,支持上传、下载、删除、重命名、复制、移动等操作。
2.文件同步:OwnCloud提供了与多个平台的客户端应用程序,包括Windows、macOS、Linux、iOS和Android,这些应用程序允许你将文件同步到你的设备上。
3.文件共享:你可以与其他用户共享文件和文件夹,通过链接或者指定目标用户实现分享,同时,你可以设置分享链接的有效期、密码、下载次数等权限。
4.在线编辑:OwnCloud支持在线编辑多种文件类型,包括文档、电子表格、幻灯片、图像、视频等,你可以直接通过浏览器打开文件进行编辑。
5.备份:OwnCloud提供了数据备份和恢复功能,你可以设置自动备份,也可以手动备份你的数据。
6.加密:OwnCloud支持对文件和文件夹进行加密,确保你的数据在传输和存储过程中得到保护。
7.扩展:OwnCloud支持插件扩展,你可以通过社区提供的插件,增加更多功能,如密码保护、邮件通知、日历、联系人等

二、安装部署

ownCloud 是私有云盘的最佳解决方案。它不仅是开源的,而且个人用户全免费!
ownCloud 说到底其实就是一个网站,它需要 PHP、数据库等后端环境。
操作系统:CentOS 7最小安装 (已关闭 SELinux 和防火墙)

三、安装软件
3.1 添加 EPEL & WEBTATIC 软件源
yum -y install epel-release && rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm && yum -y update

3.2 安装所需软件包
yum -y install nginx mariadb-server redis lbzip2 php7.4 samba-client

3.3 下载 & 安装 ownCloud
下载owncloud-10.13.2.tar.bz2

tar -xf ./owncloud-10.13.2.tar.bz2 && rm -rf ./owncloud-10.13.2.tar.bz2 && mv owncloud /usr/share/nginx/ && chown -R nginx:nginx /usr/share/nginx/owncloud;

3.4 创建 ownCloud 数据目录
ownCloud 上的数据将存储到 /data 中。
mkdir /data && chown nginx:nginx /data

四、配置数据库
4.1 初始化数据库
4.1.1 启动服务
systemctl start mariadb
4.1.2 进行安全设置
mysql_secure_installation

4.2 ownCloud 专属数据库的设置
4.2.1 进入数据库命令行界面
mysql -u root -p
Enter password: #输入密码按回车

4.2.2 创建一个用户用于读写 ownCloud 数据库
CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'owncloud';
4.2.3 创建 ownCloud 数据库
CREATE DATABASE owncloud;
4.2.4 为用户授予读写权限
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'owncloud';
4.2.5 刷新权限表
FLUSH PRIVILEGES;
数据库设置完成。

五、配置 Nginx
5.1 创建 ownCloud 专属配置文件
vi /etc/nginx/conf.d/owncloud.conf

upstream php-handler {
server unix:/run/php-fpm/owncloud.sock;
}

server {
listen 80;
server_name cloud.example.com; # cloud.example.com 改为您的域名

location /.well-known/acme-challenge/ {
root /usr/share/nginx/owncloud;
}

location / {
return 301 https://$server_name$request_uri;
}
}

server {
listen 443 ssl http2;
server_name cloud.example.com; # cloud.example.com 改为您的域名

ssl_certificate /etc/pki/tls/owncloud.pem; # 域名证书文件位置,需要修改
ssl_certificate_key /etc/pki/tls/owncloud_key.pem; # 域名证书私钥文件位置,需要修改

ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_dhparam /etc/pki/tls/certs/dh4096.pem;
ssl_prefer_server_ciphers on;
keepalive_timeout 70;
ssl_stapling on;
ssl_stapling_verify on;

add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;

add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;

root /usr/share/nginx/owncloud;

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}

client_max_body_size 16G;
fastcgi_buffers 64 4K;

gzip off;

error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;

location / {
rewrite ^ /index.php$uri;
}

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
return 404;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
return 404;
}

location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_read_timeout 180;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}

location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri $uri/ =404;
index index.php;
}

location ~ \.(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
access_log off;
}

location ~ \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg|map)$ {
add_header Cache-Control "public, max-age=7200";
try_files $uri /index.php$uri$is_args$args;
access_log off;
}
}

5.2 生成 Nginx 所需的 DH 文件
openssl dhparam -out /etc/pki/tls/certs/dh4096.pem 4096
速度可能会有些慢,请耐心等待!

六、配置 PHP-FPM
6.1 创建 ownCloud 专属配置文件
vi /etc/php-fpm.d/owncloud.conf

[owncloud]
user = nginx
group = nginx
listen = /run/php-fpm/owncloud.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0600
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/owncloud-slow.log
php_admin_value[error_log] = /var/log/php-fpm/owncloud-error.log
php_admin_flag[log_errors] = on
php_value[memory_limit] = 512M
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
php_value[upload_max_filesize] = 16G
php_value[post_max_size] = 16G
php_value[max_input_time] = 3600
php_value[max_execution_time] = 3600
php_value[date.timezone] = Asia/Shanghai
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

6.2 创建 PHP 会话目录
mkdir -p /var/lib/php/session && chown -R nginx:nginx /var/lib/php/session

七、启动服务
systemctl start nginx php-fpm redis
如需开机启动,请执行
systemctl enable nginx php-fpm mariadb redis

八、配置 ownCloud
8.1 初始化 ownCloud
打开浏览器,输入 https://cloud.example.com ,回车打开。然后按提示进行 ownCloud 的初始化。
初始化完毕之后会出现登录界面,这时候我们先关闭浏览器。

8.2 配置缓存 & 启用本地文件读取
vi /usr/share/nginx/owncloud/config/config.php #将以下内容插入倒数第二行开头(installed 那里)

'memcache.local' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
],
'memcache.locking' => '\OC\Memcache\Redis',
'files_external_allow_create_new_local' => true,

8.3 配置计划任务
crontab -e
*/15 * * * * sudo -u nginx php -f /usr/share/nginx/owncloud/cron.php > /dev/null 2>&1

然后打开浏览器,输入 https://cloud.example.com ,回车打开。用刚才设置的账号登录之后根据图片提示来设置。

更简单更详细部署摘自 https://www.hhzdd.com/?p=100 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐