加载中...

非根域名下部署 Seahub


在非根域名下部署 Seahub

这份文档将说明如何在网站的非根文件夹下通过 Apache/Nginx 部署 Seafile。

注意: 请先阅读 Nginx 下配置 Seahub 或者 Apache 下配置 Seahub.

Nginx 下部署

首先更改 seahub_settings.py 中一些变量的值:

~~~SERVE_STATIC = False
MEDIA_URL = '/seafmedia/'
SITE_ROOT = '/seafile/'
COMPRESS_URL = MEDIA_URL
STATIC_URL = MEDIA_URL + 'assets/'

  1. 我们将使用 Nginx 来管理静态文件(js, css, etc), 所以将 `SERVE_STATIC` 设置为 `False`
  2. 可以自定义 `MEDIA_URL` 的值,但是确保结尾包含斜线。
  3. 因为要在 `/seafile/` 目录下而不是根目录下部署 Seafile, 所以设置 `SITE_ROOT` 的值为 `/seafile/`
  4. 接下来,配置 Nginx 如下:
  5. ~~~server {
  6. listen 80;
  7. server_name www.example.com;
  8. proxy_set_header X-Forwarded-For $remote_addr;
  9. location /seafile {
  10. fastcgi_pass 127.0.0.1:8000;
  11. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  12. fastcgi_param PATH_INFO $fastcgi_script_name;
  13. fastcgi_param SERVER_PROTOCOL $server_protocol;
  14. fastcgi_param QUERY_STRING $query_string;
  15. fastcgi_param REQUEST_METHOD $request_method;
  16. fastcgi_param CONTENT_TYPE $content_type;
  17. fastcgi_param CONTENT_LENGTH $content_length;
  18. fastcgi_param SERVER_ADDR $server_addr;
  19. fastcgi_param SERVER_PORT $server_port;
  20. fastcgi_param SERVER_NAME $server_name;
  21. # fastcgi_param HTTPS on; # 如果使用 https,请取消掉这行的注释。
  22. access_log /var/log/nginx/seahub.access.log;
  23. error_log /var/log/nginx/seahub.error.log;
  24. }
  25. location /seafhttp {
  26. rewrite ^/seafhttp(.*)$ $1 break;
  27. proxy_pass http://127.0.0.1:8082;
  28. client_max_body_size 0;
  29. }
  30. location /seafmedia {
  31. rewrite ^/seafmedia(.*)$ /media$1 break;
  32. root /home/user/haiwen/seafile-server-latest/seahub;
  33. }
  34. }

接下来设置 SERVICE_URLFILE_SERVER_ROOT 的值。

Apache 下部署

首先更改 seahub_settings.py 中一些变量的值:

~~~SERVE_STATIC = False
MEDIA_URL = '/seafmedia/'
SITE_ROOT = '/seafile/'

  1. `httpd.conf` 文件中加入以下语句:
  2. ~~~ FastCGIExternalServer /var/www/seahub.fcgi -host 127.0.0.1:8000

接下来配置 Apache,示例如下:

  1. ServerName www.example.com
  2. DocumentRoot /var/www
  3. Alias /seafmedia /home/user/haiwen/seafile-server-2.0.2/seahub/media
  4. RewriteEngine On
  5. #
  6. # seafile fileserver
  7. #
  8. ProxyPass /seafhttp http://127.0.0.1:8082
  9. ProxyPassReverse /seafhttp http://127.0.0.1:8082
  10. RewriteRule ^/seafhttp - [QSA,L]
  11. #
  12. # seahub
  13. #
  14. RewriteRule ^/(seafmedia.*)$ /$1 [QSA,L,PT]
  15. RewriteCond %{REQUEST_FILENAME} !-f
  16. RewriteRule ^/(seafile.*)$ /seahub.fcgi/$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

请注意更改 Alias 的值为自己的文件路径。

更改 ccnet.conf 和 seahub_setting.py

更改 ccnet.conf

为使 Seafile 知道你所使用的域名,请更改 /data/haiwen/ccnet/ccnet.confSERVICE_URL 变量的值。

~~~SERVICE_URL = http://www.myseafile.com/seafile

  1. 注意: 如果以后域名有所变动,请记得更改 `SERVICE_URL`.
  2. ### 更改 seahub_settings.py
  3. 更改 `seahub_settings.py` `FILE_SERVER_ROOT` 的值

FILE_SERVER_ROOT = 'http://www.myseafile.com/seafhttp'

  1. ### 启动 Seafile 和 Seahub
  2. ~~~./seafile.sh start
  3. ./seahub.sh start-fastcgi

还没有评论.