글 작성자: drizzle_
728x90

ProjectSend는 파일 공유를위한 안전한 무료 자체 호스팅 소프트웨어이다.
ProjectSend는 개인 또는 회사에서 자체 호스팅 파일 공유 플랫폼을 설정하는 경우 직관적이고 강력한 사용자 및 관리 대시 보드를 사용하여 모든 장치에서 콘텐츠를 구축하고 관리 할 수 있도록 도와준다.
타사 서비스에 의존하거나 이메일을 통해 파일을 보내는 대신 ProjectSend를 사용하면 고유 한 서버를 구축하고 안전하게 파일을 업로드하고 직접 만든 특정 클라이언트에 할당 할 수 있다.
이 글에서는 우분투 20.04에 ProjectSend를 Nginx를 이용하여 설치하여 볼 것이다.


설치하기

1. nginx설치하기

Nginx는 역방향 프록시, 로드 밸런서, 메일 프록시, HTTP 캐시로도 사용할 수 있는 웹 서버이다. 2004년에 공개되었다. Nginx는 2-clause BSD 라이센스로 배포된 오픈 소스 소프트웨어이다.
아래 커맨드를 이용해 apt리스트를 업데이트하고, 엔진엑스를 설치하도록 하자.

sudo apt-get update
sudo apt-get install nginx

Y+엔터를 눌러서 진행.

 2. MariaDB설치하기

MariaDB는 Mysql과 매우 똑같은(같지는않음) 오픈 소스 DB소프트웨어이다.
MariaDB는 ProjectSend를 사용하기 위해 필요하다.
아래 커맨드를 이용하여 설치하도록 하자.

sudo apt install mariadb-server mariadb-client

Y+엔터를 눌러 계속한다.

 

MariaDB를 설치하였다면, 아래 커맨드들을 활용해 MariaDB를 끄고, 켜고, 활성화 할 수 있다.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

이제 MariaDB의 비밀번호를 설정해줘야한다. 아래 커맨드를 이용해 MariaDB의 비밀번호를 설정해주자.

sudo mysql_secure_installation

현재 비밀번호를 물어볼텐데 아직 설정하지 않았으니 엔터를 누른다.

  • Set root password? [Y/n]: Y
  • New password: 설정할 비밀번호 입력
  • Re-enter new password: 설정할 비밀번호 다시 입력
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]:  Y
  • Reload privilege tables now? [Y/n]:  Y

MariaDB가 정상적으로 설정되었는지 확인하기 위해서 아래 커맨드를 이용하 MariaDB에 접속해보자.

sudo mysql -u root -p

3. PHP7.4설치하기

PHP7.4는 글을 쓰는 현재 기본 apt레포지토리에서 사용 가능하지 않다. 즉, 다른 레포지토리를 추가한 후 설치해야한다.
아래 커맨드를 사용해 third-party 레포지토리를 추가하자.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

엔터를 누른다.

그리고 php7.4를 설치할 수 있게 apt레포지토리를 업데이트해준다.

sudo apt update

그리고, 아래 커맨드들을 사용해 PHP7.4및 ProjectSend를 이용하기 위해 필요한 모듈들을 설치해준다.

apt install -y nginx php7.4-fpm php7.4-cli php7.4-bcmath php7.4-dev php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-curl php7.4-gd php7.4-mysql php7.4-zip php7.4-intl php7.4-xml php-pear

PHP7.4를 설치하였다면, 아래 커맨드를 사용해 PHP7.4설정파일을 열어 수정해주도록 하자.

sudo nano /etc/php/7.4/cli/php.ini

아래 값들을 찾아서 아래와 같이 변경해주자. 주석처리(;)되어있는것은 해제시켜주고. 추가하는게 아니라 변경하는것이다.

short_open_tag = On

upload_max_filesize = 1000M

max_execution_time = 360

date.timezone = Asia/Seoul

short_open_tag = On
upload_max_filesize = 1000M
max_execution_time = 360
date.timezone = Asia/Seoul

4. ProjectSend 데이터베이스 생성하기

이제 ProjectSend에 필요한 모든 패키지를 설치했으므로 MariaDB에 DB를 추가해야한다. 먼저 아래 명령을 실행하여 MariaDB에 로그인해보자.

sudo mysql -u root -p

projectsend라는 데이터베이스를 만든다.

CREATE DATABASE projectsend;

저장하고 빠져나온다.

FLUSH PRIVILEGES;
EXIT;

5. ProjectSend다운로드하고 설치하기

ProjectSend다운로드페이지에서 Projectsend를 다운로드하고, 설치한다.

cd /tmp
sudo wget -O projectsend.zip https://www.projectsend.org/download/387/
sudo mkdir -p /var/www/projectsend
sudo unzip projectsend.zip -d /var/www/projectsend/

위의 절차가 끝났다면, 아래 커맨드를 실행해 설정 파일을 만들어준다.

sudo cp /var/www/projectsend/includes/sys.config.sample.php /var/www/projectsend/sys.config.php

nano편집기를 이용해 파일을 열어주자.

sudo nano /var/www/projectsend/sys.config.php

아래와 같은것을 찾아 변경해주자.

아래 커맨드를 이용해 폴더 권한을 변경해주자.

sudo chown -R www-data:www-data /var/www/projectsend/
sudo chmod -R 755 /var/www/projectsend/

6. Projectsend사이트 설정하기

Nginx설정파일을 건들여줄것이다.

cd /etc/nginx/sites-available/
sudo nano projectsend.conf

아래와 같이 저장한다.

server {
    listen       80;
    server_name  사용할도메인;
    location / {
        root   /var/www/projectsend;
        index  index.html index.htm index.php;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location ~ \.php$ {
        root           html;
        fastcgi_pass   unix:/run/php/php7.4-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/projectsend$fastcgi_script_name;
        include        fastcgi_params;
    }
}

만든 설정파일을 활성화시켜준다.

sudo ln -s /etc/nginx/sites-available/projectsend.conf /etc/nginx/sites-enabled/projectsend.conf

nginx재시작.

sudo systemctl restart nginx

도메인 DNS제공업체로가서 설정한 도메인의 IP주소를 서버로 바꾸고, 방화벽에서 포트 80을 열면 projectsend의 영롱한 자태를 볼 수 있을 것 이다.

DB등을 설정하면 끝.

7. SSL설정(옵션)

Certbot을 이용할예정.

sudo apt install certbot python3-certbot-nginx

설치가 완료되면 아래 커맨드를 실행하여 SSL인증서를 발급받도록 하자. 설정만 제대로 되었다면 Certbot이 Nginx설정 파일들을 찾아낸 후 알아서 인증서 발급/설치를 진행할것이다. 방화벽 포트(443)여는거 잊지 말고.

sudo certbot --nginx

번호를 입력 후 엔터

http로 들어오면 https로 보낼건지 안보낼건지를 선택하면 된다. 안보내는거(1)선택 후 projectsend설정들을 https로 변경한 후 재설치를 해 2번, 보내는걸 선택하는걸 추천한다.

728x90
Email: b1@yeonw.me / 여기를 눌러 다른 연락 수단들 알아보기