Loading... # 宝塔Nginx搭建Nextcloud教程 Nextcloud 是一个免费专业的私有云存储网盘开源项目,可以让你简单快速地在个人/公司电脑、服务器甚至是树莓派等设备上架设一套属于自己或团队专属的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。 Docker 是一个开源的应用容器引擎,开发者可以将自己的应用及其所依赖的软件包打包成一个可移植的镜像当中,然后发布到任何流行的Linux发行版当中。 * 所以本教程使用宝塔Nginx和Docker来搭建Nextcloud。 * 本教程使用的是Nextcloud v23.0.0版本,可能与最新版略有不同。 * 使用Docker的原因是因为它不需要你去安装像PHP之类的软件,不需要去专门为了Nextcloud的最佳运行环境去修改配置。 安装宝塔的步骤不再详述 ## 第一步 通过宝塔面板安装Nginx+Docker * Nginx版本不限,Docker直接默认安装就行了 如果遇到docker无法访问外部网络的时候可以在ssh或者终端下执行以下命令重建docker0的网络。 ``` sudo service docker stop sudo pkill docker sudo iptables -t nat -F sudo ifconfig docker0 down sudo brctl delbr docker0 sudo service docker start ``` ## 第二步 下载Nextcloud镜像 * 这里需要去登陆ssh或者宝塔面板那的终端使用root用户进行操作。 * 执行以下命令 ```bash docker pull nextcloud ``` 如果下载失败请自行寻找加速镜像进行下载。 注意别忘了给Docker开启访问外网的权限。(当然不开也不是不行) ## 第三步 使用Docker运行Nextcloud **注意:这里要先在比如/www/wwwroot/目录下创建个用于Nextcloud数据储存和运行的地方,下文使用的是/www/wwwroot/nextcloud目录作为Nextcloud的运行目录,使用11223端口作为映射端口。** * 执行以下命令 ```bash docker run -d \ -v /www/wwwroot/nextcloud:/var/www/html \ -p 11223:80 nextcloud ``` 当出现一行数字+英文的ID没有其它输出的时候就是运行成功了。 注意根据自己的需要修改命令,更多参考请访问官方文档:[Nextcloud - Official Image | Docker Hub](https://hub.docker.com/_/nextcloud/) ## 第四步 添加网站反代Nextcloud 怎么添加网站这里不在阐述,注意PHP版本选择纯静态,因为是反代到docker那运行。 ### 点击设置,修改配置文件 将宝塔自带的 ``` #一键申请SSL证书验证目录相关设置 location ~ \.well-known{ allow all; } ``` 替换为 ``` rewrite ^/.well-known/webfinger /public.php?service=webfinger last; location = /.well-known/carddav { return 301 $scheme://scheme://$host:$server_port/remote.php/dav; } location = /.well-known/caldav { return 301 Extra close brace or missing open brace$scheme://$host:host:$server_port/remote.php/dav; } ``` ### 添加反向代理 代理名称随便写,目标URL填`http://localhost:11223`其它设置保持默认即可。 ## 第四步 安装Nextcloud 直接用浏览器去访问网站所绑定的域名,进入安装Nextcloud的安装页面。 ![Nextcloud安装界面](/usr/uploads/2022/03/253915594.png) 依次填写好管理员账号密码,数据库配置信息,这里的数据库IP地址填的是docker内网的宿主机IP地址(当然宿主机得安装了MySQL才能这样用)。 耐心等待安装完成后,会自动跳转到Nextcloud的欢迎界面。 ![Nextcloud欢迎界面](/usr/uploads/2022/03/2475559401.png) 至此Nextcloud也已经安装完成了。 在宝塔站点设置那启用强制HTTPS之后除了 设置->管理->概览 那除了会提示 * 您的安装没有设置默认的电话区域。这对验证配置设定中没有国家代码的电话号码而言是必需的。要允许没有国家代码的电话号码,请添加带区域相应的 ISO 3166-1 code ↗ 的“默认_电话_区域”到你的配置文件中。 * 此实例中的 php-imagick 模块不支持 SVG。为了获得更好的兼容性,建议安装它。 不影响日常使用。 附日常维护内容: 使用docker安装完nextcloud之后会在`/www/wwwroot/nextcloud`目录下产生Nextcloud所有文件和数据。 Nextcloud大部分设置都在`/www/wwwroot/nextcloud/config/config.php`文件当中,其中多域名设置参考: ``` 'trusted_domains' => array ( 0 => 'localhost', 1 => 'server1.example.com', 2 => '192.168.1.50', 3 => '[fe80::1:50]', ), ``` 注意备份`config`和`data`目录,第一个是配置文件目录,第二个是数据文件目录。 更多Nextcloud设置与配置相关内容请参考官方文档:[Nextcloud Documentation](https://docs.nextcloud.com/) Last modification:November 6, 2024 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 3 If you think my article is useful to you, please feel free to appreciate