在群晖中,如果通过web station 搭建nextcloud,教程参见这里,其中会遇到很多坑,这里记录一下
- 第一条,非常非常重要,请确定你的群晖已经$翻$墙$,请确定你的群晖已经$翻$墙$,请确定你的群晖已经$翻$墙$,如果没有,那即使你布置好了Nextcloud,你只能使用基本功能,无法查看和安装Nextcloud内部插件。
这一条,真是让我吃尽苦头,安装教程中没人提过这个!
- 在将nextcloud安装文件上传到DSM上的一个文件夹后,需要对文件夹的权限进行配置。假设文件夹路径为
/volume1/web/nextcloud
。执行如下命令,需要通过SSH,以ROOT权限登陆DSM。详细教程见之前的文章
chmod -R 0775 /volume1/web/nextcloud
chown -R http:http /volume1/web/nextcloud
- 如果需要将文件数据存在其他指定的文件夹,需要在设置前,创建好文件夹,并且对这个文件夹执行面相同的命令。
- 开始的安装页面下,MariaDB 的地址需要填写
127.0.0.1:3307
,因为群晖的MariaDB端口是3307
- 在web station 中,HTTPP后端程序一定不能选Nginx,如果选了,在设置完nextcloud后,你会得到一个404页面...
- 如果Nextcloud安装完后,提示如下信息
这可以再SSH 中执行如下命令
sudo -u http /usr/local/bin/php72 occ db:convert-filecache-bigint
- 添加受信任的域名。如果安装时,使用的是本地的ip地址打开的网页,后面需要绑定到自己的域名上,那就需要在config文件中添加域名。
- 如果使用内网其他机器用nginx做反向代理来指定外网域名,用域名访问的时候,无法上传文件,提示
没有空间
。目前不知道具体原因,但应该和nginx的反向代理有关。
解决办法是使用DSM自己的域名方式指定域名,然后使用域名+后端来访问,就可以正常使用了。在控制面板->安全->配置
下,将指定的https证书指定给nextcloud的端口。
然后,在路由器中设置好端口转发,将8080转发给DSM,然后就可以通过https://域名:8080 来正常访问nextcloud。或者干脆使用DSM作为反向代理服务器
- 使用cron 后台更新任务。nextcloud后台更新任务需要定时执行cron.php文件。群晖后台cron和普通linux不同。命令有点区别
vi /etc/crontab
#在打开的文件中,输入。这里假设你使用的php7.2版本。cron.php地址也需要换成你自己的路径。
*/15 * * * * http /usr/local/bin/php72 /volume3/web/nextcloud/cron.php
# 按esc,输入:wq保存更改后,重启cron服务
synoservice --restart crond
- 群晖PHP配置文件路径。
/usr/local/etc/php72/cli/php.ini
Nextcloud中的警告的消除
启用缓存。即使在PHP设置中已经勾选了缓存,但是仍然要在nextcloud的config.php文件中进行设置才能启动缓存。
vi /volume1/web/nextcloud/config/config.php #在打开文件的末尾 “);”上一行,输入以下两句。 'files_external_allow_create_new_local' => 'true', 'memcache.local' => '\OC\Memcache\APCu',
去除HSTS警告。
HTTP的请求头 "Strict-Transport-Security" 未设置为至少 "15552000" 秒. 为了提高安全性,建议参照security tips ↗中的说明启用HSTS.
这个需要修改apache的配置文件。如果是apache2.4路径为`/volume3/@appstore/Apache2.4/usr/local/etc/apache24/conf/httpd24.conf`,其中volume3需要改成你自己apache24安装在的硬盘盘符。
```
vi /volume3/@appstore/Apache2.4/usr/local/etc/apache24/conf/httpd24.conf
#在下图位置添加一段代码
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
#然后重启apache24服务
synoservice --restart pkgctl-Apache2.4
#小知识点,可以使用这个命令获得所有注册的服务
synoservice --list
```
![](https://hexoblog-photos-1253582753.file.myqcloud.com/2019/01/27/1548585500.png)
这里有另外一个坑,这里修改的是apache24的总的config.所以会影响所有使用apache24的网站。那为什么不去修改nextcloud网站对应的config文件呢?因为,**重启apache服务后,单独网站的配置文件会自动重写!**
网站单独的config文件路径为`/usr/local/etc/apache24/sites-enabled/httpd-vhost.conf`,这个文件会在重启apache后自动被系统改写,**所以你手动改这个文件没用!**
猜想可能有一个模版文件,系统重启后会自动调用,生成每个网站的config文件,找了一圈可能是这个``.但没有验证,等以后有机会再说吧。
版权属于:CraZyMoNk
本文链接:https://blog.peacharc.com/archives/246.html
转载时须注明出处及本声明