Fork me on GitHub

部署Seafile服务

介绍

安装脚本

sudo apt-get install mysql-server #安装mysql并按照提示设置管理用户,记住管理密码
sudo apt-get python2.7 python-setuptools python-imaging python-ldap python-mysqldb python-memcache
mkdir haiwen && cd haiwen
wget http://download-cn.seafile.com/seafile-server_5.0.4_i386.tar.gz && tar zxf seafile-server*.tar.gz
mkdir installed && mv seafile-server_* installed
cd seafile-server-*
./setup-seafile-mysql.sh  #运行安装脚本并回答预设问题,会自动创建数据库

运行

#在 seafile-server-1.8.2 目录下,运行如下命令:
./seafile.sh start
./seahub start 

排错

大多数情况下 seafile.sh seahub.sh 脚本可以正常工作。如果遇到问题:

使用pgrep命令检查 seafile/seahub 进程是否还在运行中

pgrep -f seafile-controller # 查看 Seafile 进程
pgrep -f "manage.py run_gunicorn" # 查看 Seahub 进程

配置Nginx

参考文档:http://manual-cn.seafile.com/deploy/deploy_with_nginx.html

  • 修改 SERVICE_URL 和 FILE_SERVER_ROOT
  • 修改 ccnet.conf
  • 修改 seahub_settings.py

通过Nginx进行代理

#更改haiwen/conf/ccnet.conf文件中SERVICE_URL 的值
SERVICE_URL = http://your.domain.com
./seafile.sh restart
./seahub.sh restart-fastcgi

Nginx配置:

server {
    listen 80;
    server_name www.myseafile.com; #更改域名

    proxy_set_header X-Forwarded-For $remote_addr;

    location / {
        fastcgi_pass    127.0.0.1:8000; #默认端口
        fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
        fastcgi_param   PATH_INFO           $fastcgi_script_name;

        fastcgi_param    SERVER_PROTOCOL        $server_protocol;
        fastcgi_param   QUERY_STRING        $query_string;
        fastcgi_param   REQUEST_METHOD      $request_method;
        fastcgi_param   CONTENT_TYPE        $content_type;
        fastcgi_param   CONTENT_LENGTH      $content_length;
        fastcgi_param    SERVER_ADDR         $server_addr;
        fastcgi_param    SERVER_PORT         $server_port;
        fastcgi_param    SERVER_NAME         $server_name;
        fastcgi_param   REMOTE_ADDR         $remote_addr;

        access_log      /var/log/nginx/seahub.access.log;
        error_log       /var/log/nginx/seahub.error.log;
    }

    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082;
        client_max_body_size 0;
        proxy_connect_timeout  36000s;
        proxy_read_timeout  36000s;
    }

    location /media {
        root /home/user/haiwen/seafile-server-latest/seahub; #更改media静态文件路径
    }
}

重启Nginx(我使用supervisor管理):

supervisorctl reload

注意事项:

media静态文件文件夹要给予必要的访问权限,否则会出现403错误。nginx默认用户为www-data,默认用户组为www-data,所以要把media文件夹以及上层路径更改用户和用户组,或者更改八进制的访问权限。

chmod -R www-data:www-data media
posted @ 2016-02-01 18:17  weaming  阅读(1303)  评论(0编辑  收藏  举报
 |  Github |  知乎 |  微博  |