Ubuntu 20.04에 Nginx를 이용하여 ProjectSend를 설치하기
- 개발,서버/Linux
- 📚 1.5min to read
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번, 보내는걸 선택하는걸 추천한다.
댓글
이 글 공유하기
다른 글
-
VPS에 Plex 미디어 서버 설치하기
VPS에 Plex 미디어 서버 설치하기
2021.01.11 -
Ubuntu에서 php8.0으로 마이그레이션하기
Ubuntu에서 php8.0으로 마이그레이션하기
2020.12.27 -
라즈베리파이에 파이썬 디스코드 봇 호스팅하기
라즈베리파이에 파이썬 디스코드 봇 호스팅하기
2020.12.04 -
라즈베리파이에 node.js 디스코드 봇 호스팅하기
라즈베리파이에 node.js 디스코드 봇 호스팅하기
2020.12.01