웹사이트 검색

Ubuntu 18.04 LTS에 Wallabag을 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. git 설치
  3. Nginx 설치
  4. MariaDB 설치
  5. Wallabag용 MariaDB 구성
  6. PHP 및 컴포저 설치
  7. Nginx 구성
  8. Wallabag 설치
  9. SMTP 구성
  10. HTTPS 구성
  11. Wallabag 구성
  12. 왈라백 업그레이드

Wallabag은 나중에 읽을 수 있는 일종의 서비스입니다. 웹 페이지를 저장하여 나중에 자신의 여가 속도로 읽을 수 있습니다. Pocket, Instapaper 등과 같이 이를 수행할 수 있는 많은 서비스가 있지만 자신이 소유한 서버에 서비스를 설치하는 것이 좋습니다. 하나는 사업을 중단하고 링크를 제거하지 않을 것입니다. 그리고 브라우징 데이터를 비공개로 유지할 수 있습니다.

이 튜토리얼은 Ubuntu 18.04 이상에서 실행되는 서버에 Wallabag을 설치하고 설정하는 방법을 다룹니다. 또한 Wallabag 실행에 필요한 Nginx, MariaDB, Git, Postfix, Composer 및 PHP를 설정하는 방법도 다룹니다.

전제 조건

튜토리얼을 진행하기 전에 다음이 필요합니다.

  • An Ubuntu 18.04 based server having a non-root user with sudo privileges.

  • You will also need the Make tool. To install it, just use the following command

    $ sudo apt install make
    

자식 설치

첫 번째 단계는 나중에 git 저장소에서 wallabag 설치 파일을 복사하는 데 사용할 Git을 설치하는 것입니다. Git은 요즘 대부분의 웹 서버에 설치됩니다. 그렇지 않은 경우 다음 명령을 진행하십시오.

$ sudo apt install git
$ git config --global user.name "Your name"
$ git config --global user.email ""

Nginx 설치

$ sudo apt install nginx 

Ubuntus 방화벽을 사용하는 경우 다음 규칙을 목록에 추가하십시오.

$ sudo ufw allow "Nginx HTTP" 

상태도 확인하세요.

$ sudo ufw status 

당신은 이런 것을 볼 수 있습니다

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

브라우저에서 서버 IP 주소에 액세스해 보십시오. Nginx가 성공적으로 설치되었음을 확인하는 다음과 같은 기본 Nginx 페이지가 표시되어야 합니다.

MariaDB 설치

MariaDB는 MySQL의 드롭인 대체품으로 MariaDB를 실행하고 작동하는 명령이 MySQL과 동일합니다. MariaDB를 설치하려면 다음 명령을 실행하십시오.

$ sudo apt install mariadb-server 

다음 명령을 실행하여 루트 암호 제공, 익명 사용자 제거, 원격 루트 로그인 금지 및 테스트 테이블 삭제와 같은 기본 구성을 수행합니다. 모든 항목에 대해 예를 누르고 루트 암호를 설정하십시오.

$ sudo mysql_secure_installation 

루트 비밀번호 설정 시 주의 사항이 있습니다. MariaDB는 기본적으로 시스템 루트 사용자가 암호 없이 MariaDB에 로그인할 수 있도록 허용합니다. 그러나 타사 응용 프로그램을 사용하여 루트를 통해 액세스하려는 경우 비밀번호가 필수입니다. 그렇지 않으면 PHPMyAdmin과 같은 앱이 실패합니다. 이를 위해서는 MariaDB의 기본 옵션인 플러그인 기반 인증을 비활성화해야 합니다.

플러그인 인증을 비활성화하고 루트 비밀번호를 복원하려면 먼저 다음 명령을 사용하여 MySQL 프롬프트를 입력하십시오.

$ sudo mysql -u root 

이제 다음 명령을 입력하여 플러그인 인증을 비활성화하십시오.

use mysql;
update user set plugin='' where User='root';
flush privileges;
exit

그런 다음 MariaDB 서비스를 다시 시작하십시오.

$ sudo systemctl restart mariadb.service 

그게 다야. 다음에 MySQL에 로그인하려면 다음 명령을 사용하십시오.

$ sudo mysql -u root -p 

그리고 처음에 설정한 루트 암호를 묻는 메시지가 나타납니다.

Wallabag용 MariaDB 구성

이제 wallabag 애플리케이션에 사용할 데이터베이스를 설정해야 합니다. 그렇게 하려면 MySQL 프롬프트에 로그인하십시오. 자습서의 나머지 부분에서는 MariaDB의 기본 인증 방법(즉, 루트 암호를 사용하지 않음)을 사용한다고 가정합니다.

$ sudo mysql -u root 

프롬프트에서 wallabag라는 데이터베이스와 wallabaguser라는 데이터베이스 사용자를 설정하고 데이터베이스에 대한 액세스 권한을 부여하는 다음 명령을 입력합니다.

create database wallabag;
create user ;
set password for = password("yourpassword");
grant all privileges on wallabag.* to  identified by "yourpassword";
flush privileges;
exit

PHP 및 컴포저 설치

이제 서버가 가동되어 실행 중이므로 PHP와 Composer를 설치할 시간입니다. Nginx를 사용하고 있기 때문에 PHP-FPM 패키지를 설치해야 합니다. 이와 함께 mbstring, mysql, gd, bc-math, curl, zip 및 xml과 같은 몇 가지 다른 PHP 확장이 필요합니다.

$ sudo apt install php-fpm php-mysql php-bcmath php-xml php-zip php-curl php-mbstring php-gd php-tidy php-gettext php-tokenizer
$ sudo apt install composer

지금은 그게 다야. PHP와 컴포저의 구성 부분은 나중에 다루겠습니다. 다음 단계로 넘어갑시다.

Nginx 구성

실제 설치를 진행하기 전에 Nginx 설치를 구성해야 합니다. wallabag에 사용하는 도메인 이름이 example.com이라고 가정하고 설치를 호스팅할 디렉토리를 만듭니다. Wallabag은 html 디렉토리에 설치됩니다.

$ sudo mkdir -p /var/www/example.com/html 

다음으로 디렉토리의 소유권을 Nginx에서 사용하는 www-data에 할당합니다.

$ sudo chown -R www-data:www-data /var/www/example.com/html 

올바른 권한이 설정되었는지 확인하십시오.

$ sudo chmod -R 755 /var/www/example.com 

다음으로 사이트의 가상 호스트를 만듭니다.

sudo nano /etc/nginx/sites-available/example.com 

wallabag에서 작동하는 다음 구성을 붙여넣습니다.

server {
    server_name example.com www.example.com;
    root /var/www/example/html/web;

    location / {
        try_files $uri /app.php$is_args$args;
    }
    location ~ ^/app\.php(/|$) {
        # replace php7.2-fpm with whichever php 7.x version you are using
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        internal;
    }

    location ~ \.php$ {
        return 404;
    }

    error_log /var/log/nginx/wallabag_error.log;
    access_log /var/log/nginx/wallabag_access.log;
}

Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다. 다음으로 이 구성을 활성화해야 합니다. 이를 위해 사이트에서 활성화된 디렉토리에 대한 링크를 만듭니다.

$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ 

추가 서버 이름으로 인해 발생하는 메모리 버킷 문제에 직면할 수 있습니다. 이를 수정하려면 nginx.conf 파일을 엽니다.

$ sudo nano /etc/nginx/nginx.conf 

server_names_hash_bucket_size 지시문을 찾아 # 기호를 제거하여 줄의 주석을 제거합니다.

server_names_hash_bucket_size 64; 

파일을 저장합니다. 다음으로 Nginx 구성에 오류가 없는지 확인합니다.

$ sudo nginx -t 

문제가 없으면 Nginx를 다시 시작하여 새 변경 사항을 활성화하십시오.

$ sudo systemctl restart nginx 

왈라백 설치

먼저 GitHub 리포지토리에서 wallabag을 복제합니다. www-data 사용자에게 html 폴더의 권한을 부여했으므로 설치를 실행하려면 이 폴더로 전환해야 합니다.

$ sudo -u www-data /bin/bash
$ cd /var/www/example.com
git clone https://github.com/wallabag/wallabag.git html

그러면 wallabag 설치 파일이 html 디렉토리에 복사됩니다. make 명령을 사용하여 Wallabag을 설치합니다.

$ cd html
$ make install

설치 중에 몇 가지 질문을 받게 됩니다.

http를 사용하려면 도메인 이름을 묻는 메시지가 표시될 때 대신 http://example.com을 입력하고 자습서의 HTTPS 부분을 건너뜁니다.

database_driver (pdo_mysql): pdo_mysql
database_driver_class (null): Press Enter
database_host (127.0.0.1): 127.0.0.1
database_port (null): 3306
database_name (wallabag): wallabag
database_user (root): wallabaguser
database_password (null): wallabagpassword
database_path (null): Press Enter
database_table_prefix (wallabag_): Prefix of your choice or Press Enter for the default.
database_socket (null): Press Enter
database_charset (utf8mb4): Press Enter
domain_name ('https://your-wallabag-url-instance.com'): http://example.com 

비밀번호 분실 또는 2단계 인증에 관한 메일을 받기 위해 SMTP 세부 정보를 입력하라는 메시지도 표시됩니다. Mailgun 또는 Sendgrid와 같은 타사 SMTP 서비스를 사용하려는 경우 나머지 값을 채우거나 Enter 키를 누르면 됩니다. 다른 사람이 귀하의 사이트에 등록하는 것을 원하지 않으면 매개변수 fosuser_registration에 대해 no를 입력하십시오. 또한 secret 매개변수의 값을 변경하십시오. 가져올 대용량 데이터가 있는 경우 RabbitMQ 또는 Redis를 설치하고 요청 시 값을 입력합니다.

기존 데이터베이스를 재설정할지 여부를 묻는 메시지가 표시되면 Enter를 눌러 기본 옵션(no)을 사용합니다. 관리자를 생성하라는 메시지도 표시됩니다.

완료되면 기본 Ubuntu 사용자 로그인으로 다시 전환하십시오.

$ exit

SMTP 구성

기본 SMTP 서버를 설정하고 타사 SMTP 서비스를 사용하지 않으려면 Mailutils를 설치하십시오.

$ sudo apt install mailutils

설치하는 동안 Postfix에 대한 구성 유형을 선택하라는 메시지가 표시됩니다. 인터넷 사이트를 선택하고 계속 진행합니다. 시스템 메일 이름 필드를 묻는 메시지가 표시되면 example.com을 입력합니다. 그게 다야.

HTTPS 구성

Lets Encrypt를 사용하여 wallabag 설치를 위한 HTTPS를 설정합니다. Certbot 도구에 대해 다음 리포지토리를 추가합니다.

$ sudo add-apt-repository ppa:certbot/certbot

리포지토리에서 Certbot Nginx 패키지를 설치합니다.

$ sudo apt install python-certbot-nginx

도메인 example.com에 대한 인증서를 얻습니다.

$ sudo certbot --nginx -d example.com -d www.example.com

Certbot 도구를 처음 사용하는 경우 이메일을 제공하고 서비스 약관에 동의하라는 메시지가 표시됩니다. 또한 이메일을 EFF(Electronic Frontier Foundation)와 공유할 것인지 묻는 메시지가 표시됩니다. EFF가 뉴스 및 캠페인에 대해 이메일을 보내는 것을 원하지 않으면 N을 선택하십시오.

성공하면 Certbot이 HTTPS 설정 구성 방법을 묻습니다.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

도메인에 대한 모든 요청을 https로 리디렉션하기를 원하므로 2를 선택하십시오.

그게 다야. HTTPS 도메인이 활성 상태입니다. Certbot은 90일마다 도메인을 자동으로 갱신합니다. 갱신 프로세스를 테스트하려면 테스트 실행을 수행하십시오.

$ sudo certbot renew --dry-run

오류가 표시되지 않으면 모든 것이 완벽하다는 의미입니다.

왈라백 구성

이제 wallabag을 설정했으므로 wallabag 도메인을 엽니다. 다음 화면이 표시됩니다.

위의 make 프로세스 중에 선택한 자격 증명을 입력합니다. 로그인하면 다음 화면이 표시됩니다.

이중 인증을 활성화해야 합니다. 그렇게 하려면 왼쪽의 구성 버튼을 클릭하고 다음 화면에서 USER INFORMATION 탭을 선택합니다. 이중 인증 체크 표시를 활성화하여 활성화합니다.

Pockets, Instapaper, Pinboard 및 Firefox 및 Chrome 기반 브라우저의 북마크에서 데이터를 가져올 수 있습니다.

Wallabag은 링크를 추가할 수 있는 모든 브라우저, 모바일 또는 전자책 리더에 대한 다양한 앱을 제공합니다. 마음에 드는 것이 없다면 설정의 방법 섹션에서 세부 정보에 액세스할 수 있는 북마클릿을 사용할 수도 있습니다.

왈라백 업그레이드

Wallabag을 최신 버전으로 업그레이드하려면 다음 명령을 실행하십시오.

$ sudo -u www-data /bin/bash
$ cd /var/www/example.com/html
$ make update

이것이 이 튜토리얼의 전부입니다. 이제 데이터의 프라이버시를 손상시키지 않고 서버에서 기사를 저장하고 읽을 수 있습니다.