앞서 next cloud를 설치했으나 reverse proxy로 넘길수가 없어서(코드가 하드코딩되어있음) seafile로 변경해서 다시 설치하고자 한다.
next cloud의 경우 LEMP(Linux, Enginx, MariaDB, Php-fpm)스택에서 동작하지만 Seafile의 경우 python + C언어 기반이다.
그래서 Python의 종속성 설치를 먼저 시작해준다.
apt-get update
apt-get install python
apt-get install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache python-requests
이제 Maria DB를 설치할텐데 이전에 설치한 포스팅이 있어서 참고로 설치하면 될것이다.
DB를 만든후에는 데이터 베이스 3개(ccnetdb, seafiledb, seahubdb)와 사용자 seafile을 만들어준다.
mariadb 접속 명령어는 mysql -u root -p 이다.
create database seafiledb ;
create database ccnetdb ;
create database seahubdb ;
create user 'seafile'@'localhost' identified by '비밀번호 입력';
계정을 만들면 만든 db에 대한 권한을 줘야한다.
GRANT ALL ON seafiledb.* TO 'seafile'@'localhost' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;
GRANT ALL ON ccnetdb.* TO 'seafile'@'localhost' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;
GRANT ALL ON seahubdb.* TO 'seafile'@'localhost' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
위과정을 모두 거치면 seafile을 위한 db생성은 모두 완료된것이다. 이제 seafile 설치를 위한 사전과정을 마쳤으니 seafile을 다운받는다. 현재 2019년 05월 25일 기준 안정화버전은 6.3.4 버전이다.
wget https://download.seadrive.org/seafile-server_6.3.4_x86-64.tar.gz
mkdir /var/www/html/seafiletar -xvzf seafile-server_6.3.4_x86-64.tar.gz -C /var/www/html
Seafile은 .sh 파일로 설치하기 떄문에 /var/www/html/ 로 이동후 이름을 바꾸고 설치를 시작한다.
cd /var/www/html
mv seafile-server-6.3.4 seafile
cd /var/www/html/seafile
./setup-seafile-mysql.sh
실행후 Enter 키를 누르면 아래와 같이 환경설정 입력창이 나온다.
설치후 seafile의 권한을설정해주는데 다음과 같이해주면 된다.
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
이제 파일들을 실행시키자 실행할 파일은 seafile.sh 와 seahub.sh 인데
cd /var/www/html/seafile/
./seafile.sh start
./seahub.sh start
로실행시키면 된다 seahub.sh를 처음 실행시키면 admin의 패스워드와 이메일을 지정하게되는데 알아서 작성하자.
netstat -plntu로 정상실행을 확인할수있다.
이렇게 일단 설치를 완료했따. 여기서 SSL을 추가시키고 싶으면 ssl 인증서를 추가시키면 된다.
reverse proxy로 192.168.0.102만 눌러도 들어갈수있게 설정할수있는데 그건 다시 포스팅할 예정.
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 1200s;
# used for view/edit office file via Office Online Server
client_max_body_size 0;
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_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
location /media {
root /var/www/html/seafile-server-latest/seahub;
}
위의 코드는 리버스 프록시 참고.