我在azure上使用一个ubuntu LTS 的虚拟机搭配sqlite和nginx来做seafile服务器,所有的配置都是按照教程上走的,没有启用https。可是每次打开网页端都是这个样子。。。
我试过改变/seahub下文件夹的权限,也试过删除/tmp下的缓存,但是每次重启缓存都会重新出来。
请问如何解决这个网页端的问题?
我在azure上使用一个ubuntu LTS 的虚拟机搭配sqlite和nginx来做seafile服务器,所有的配置都是按照教程上走的,没有启用https。可是每次打开网页端都是这个样子。。。
我服务器端用的windows2008系统,客户端用的win7,在360浏览器的兼容模式和极速模式下也都会出现和你一样的情况(大多数是在进入设置的时候),不过换了个google chrome 后问题就没出现了。
但是在本地局域网的时候使用私有地址访问,不管我使用360的哪种模式都不会出现排版混乱的情况,但只要一经过外网防火墙,就不知道被pass掉了什么,排版就乱了。
问题已解决!(好开心!)
由于我嫌麻烦所以就直接用的是root用户,所有的文件和数据也都属于root,但是nginx在安装的时候默认用户为www-data,而这个用户的权限又很低,无法访问到/seahub
目录下的网页排版文件,所以才造成了乱码。
我先是用$top
检查进程所属用户的时候发现:
23782 www-data 20 0 125444 3208 1616 S 0.3 0.2 0:00.07 nginx
从而得知nginx的进程所属用户权限不够
然后又在/var/log/nginx/error.log
下发现了以下错误:
2018/04/04 20:35:59 [error] 24005#24005: *4 open() “/root/seafile/seafile-server-latest/seahub/media/img/seafile-logo.png” failed (13: Permission denied), client: 192.168.0.121, server: 192.168.0.129, request: “GET /media/img/seafile-logo.png HTTP/1.1”, host: “192.168.0.129”, referrer: “http://192.168.0.129/”
所以我就得知是默认用户的问题。
其实有两重办法解决这个问题,第一种是用chown www-data:www-data -R *
来给www-data
权限去访问排版文件,但是这样的话root
用户可能会受到影响。所以我在/etc/nginx/nginx.conf
中的第一行将
user www-data;
改为:
user root;
然后nginx -t && nginx -s reload
重新刷新浏览器就好了!
这是我第一次在技术论坛上发言,又因为刚刚把这个大问题解决了,我感到异常开心…希望能帮到大家!
Billy Liang
Best regards