原创

NextCloud私有云盘

温馨提示:
本文最后更新于 2025年01月04日,已超过 105 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

1.简介

NextCloud 是一个开源的、自托管的文件同步和共享解决方案,它提供了一个安全且功能丰富的平台,用于存储、同步和共享文件。NextCloud 不仅可以作为个人云存储解决方案,还可以用于企业级部署,支持团队协作、日历、联系人管理、任务管理和更多扩展功能。NextCloud作为一款开源的云存储和协作平台,具有广泛的应用场景。主要有个人云存储和同步、团队协作与项目管理、企业私有网盘构建、在线办公与文档编辑。

2.安装

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mariadb-server libapache2-mod-php php-gd php-json php-mysql php-curl php-intl php-mbstring php-xml php-zip -y
sudo systemctl start mariadb
sudo mysql_secure_installation

mysql_secure_installation配置

第一个:Enter current password for root (enter for none):
要求输入正确的原root密码,因为我们是新装,没有密码,所以直接回车

第二个:Switch to unix_socket authentication [Y/n]
是否切换到unix_socket 权限验证,因为这个验证不需要密码不安全,所以输入n,回车

第三个:Change the root password? [Y/n]
是否修改root密码,修改密码,输入y回车

第四个:Remove anonymous users? [Y/n]
删除匿名用户,y

第五个:Disallow root login remotely? [Y/n]
禁止root远程登录,y

第六个:Remove test database and access to it? [Y/n]
删除测试库,y

第7个:Reload privilege tables now? [Y/n]
刷新授权表,使设置立即生效,y

数据库登录root用户,创建NextCloud数据库及用户

CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword';
FLUSH PRIVILEGES;
EXIT;

下载

wget https://download.nextcloud.com/server/releases/nextcloud-29.0.4.zip
sudo unzip nextcloud-29.0.4.zip -d /var/www/html/
sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo vim /etc/apache2/sites-available/nextcloud.conf

nextcloud.conf内容

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/nextcloud

    <Directory /var/www/html/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All

        <IfModule mod_dav.c>
            Dav off
        </IfModule>

        SetEnv HOME /var/www/html/nextcloud
        SetEnv HTTP_HOME /var/www/html/nextcloud
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

修改apache端口,更新/etc/apache2/ports.conf配置文件

启用站点,并重启Apache服务

sudo a2ensite nextcloud
sudo a2enmod rewrite headers env dir mime setenvif
sudo systemctl restart apache2

浏览器访问http://your_server_ip_or_domain,在网页上完成NextCloud的安装。

浏览器访问https://github.com/nextcloud/android/releases下载手机APP。

3.其他

1.通过内网IP访问服务报错

通过不被信任的域名访问。

在/var/www/html/nextcloud/config/config.php配置文件的trusted_domains中添加该内网IP即可

<?php
$CONFIG = array (
  'trusted_domains' => 
  array (
    0 => '47.217.34.54',
    1 => '192.168.1.9',
    2 => '43.23.168.23',
  ),
  'instanceid' => 'ocdeoos5lav2',
);

2.Nginx反向代理注意端口号配置

在/etc/nginx/sites-enabled/default配置文件,配置监听8088端口的HTTPS请求

# 监听 8088 端口的 HTTPS 请求
server {
listen 8088 ssl;
server_name lanzi.cyou;

ssl_certificate /etc/nginx/certs/fullchain.crt; # SSL 证书路径
ssl_certificate_key /etc/nginx/certs/private.pem; # SSL 私钥路径

# 代理到 9999 端口
location / {
proxy_pass http://127.0.0.1:9999; # 代理到9999端口
proxy_set_header Host $host:$server_port; # 保留原始 Host 和端口
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# 允许的最大请求体大小为10GB
client_max_body_size 10G;
proxy_buffering off;
proxy_request_buffering off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
}

 

正文到此结束