반응형

Raspberry Pi 에 Torr PHP 를 돌리기 위해서 웹서버 구축을 진행하였습니다. 많은 분들의 친절한 가이드 덕분에 쉽게 설치 및 활용할 수 있었습니다.

설치

다음과 같은 Script를 통nginx해 설치 하시면 됩니다.

#!/bin/bash
sudo apt update
sudo apt install nginx php-fpm php-curl

 

Nginx 설정

nginx 서버 설정을 위해서는 다음 위치에 있는 파일을 수정하시면 됩니다.

/etc/nginx/sites-enabled/default 파일을 통해 우리가 돌리고자 하는 웹서버 설정을 변경할 수있습니다.

저는 이곳에서 다음과 같은 설정을 변경하였습니다.

  1. Listen port: 접속 포트 수정
  1. root: web페이지 root dir 수정
  1. index 수정
  1. php: 수정
  1. ht: 수정
server {
				#수정
        listen 9000 default_server;
        listen [::]:9000 default_server;

        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;

				#수정
        #root /var/www/html;
        root /home/pi/www;
				
				#수정
        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass PHP scripts to FastCGI server
				#수정
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
                # With php-cgi (or other tcp sockets):
                #fastcgi_pass 127.0.0.1:9900;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
				#수정
        location ~ /\.ht {
                deny all;
        }
}

 

 

동작 테스트를 위해서 위에서 setting 한 루트폴더를 생성해 줍니다. 웹서버가 파일을 읽어갈 수있는 권한 세팅은 항상 필수 입니다. 기본계정인 www-data 계정이 해당 문서를 읽을 수 있도록 setting 해주시면됩니다.

sudo usermod -a -G www-data pi #Pi계정을 www-data그룹에 추가
mkdir -p /home/pi/www
sudo chown www-data:www-data -R /home/pi/www
sudo chmod -R 755 /home/pi/www

 

/home/pi/www/index.php 파일 생성

<?php phpinfo(); ?>

 

이후 nginx 서버를 restart 해주시면 phpinfo page(http://<ip>:9000)에 접근가능합니다.

sudo systemctl restart nginx

 

 

Torr php 사용

다음 스크립트를 활용하면 설치가 가능합니다. 클리앙에서 해당 스크립트와 환경을 공유해주신 롤케익, 반야지비 님 감사합니다

해당 스크립트의 상세한 사용법은 다음 페이지 참고 바랍니다.

다시 살아 돌아온 torr 입니다. : 클리앙
안녕하세요 예전에 토ㅇㅇ RSS 생성기를 만들어서 torr라는 이름으로 공유한 적이 있었습니다. 토ㅇㅇ 사이트들이 워낙에 자주 폐쇄되다 보니까 언제부턴가 업데이트에 손을 놔버려서 죽은 서비스가 되어버렸죠. 찾아보니까 2017년 6월이 마지막이었었네요. 3년만에 다시 살려보는 거네요 ㅎㅎ 이번에는 저도 쪼금 열심히 써보려고 자동 업데이트 기능을 강화했습니다. 지금 등록된 토ㅇㅇ 사이트가 폐쇄되면 다른 사이트를 찾아 업데이트를 해보려고요.
https://m.clien.net/service/board/cm_nas/15287609
#!/bin/bash
WWW_DIR=$HOME/www
mkdir -p $WWW_DIR/torr
chmod 755 -R $WWW_DIR/torr
pushd $WWW_DIR/torr
    sudo wget https://raw.githubusercontent.com/banyazavi/tsharp/master/defaults/torr.php
    sudo wget https://raw.githubusercontent.com/banyazavi/tsharp/master/defaults/UserConfig.php
popd

sudo chown -R www-data:www-data $WWW_DIR/torr
반응형
반응형

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link

필요사항

  • Container-Station
  • SSH

설치

Container Station에서 Docker형태로 Nginx Proxy Manager를 설치하는 방법입니다. 별도 DB설치가 필요없는 다음 이미지를 이용하여 설치할 예정입니다.

jlesage/docker-nginx-proxy-manager
This is a Docker container for Nginx Proxy Manager. Nginx Proxy Manager enables you to easily forward to your websites running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt. NOTE: The Docker command provided in this quick start is given as an example and parameters should be adjusted to your need.
https://github.com/jlesage/docker-nginx-proxy-manager

우선 8080, 8181, 4443 포트가 QNAP에서 사용중이면 안됩니다. 저는 Web서비스랑 포트가 겹쳐서 서비스 포트를 변경하였습니다. 아니면 별도로 도커 포트 매핑을 하시면 됩니다.

이후 작업은 SSH로 접속하여 진행할 예정입니다.

SSH로 접속하여 /config 폴더로 사용할 경로를 하나 만들어줍니다. 저의경우 /share/my/nginx-proxy-manager 폴더를 사용 할 예정입니다. 그리고 다음과 같은 스크립트로 수행하시면 설치 작업이 수행됩니다.(경로는 본인에 맞게 변경 바랍니다)

#!/bin/bash

export PATH=/share/CACHEDEV1_DATA/.qpkg/container-station/bin:$PATH
mycmd="docker run -d --name nginx-proxy-manager \
-v /share/my/nginx-proxy-manager:/config \
--restart "on-failure:10" \
-p 8181:8181 \
-p 8080:8080 \
-p 4443:4443 \
jlesage/nginx-proxy-manager"

echo ${mycmd}
${mycmd}

포트포워딩

위와같이 설치를 완료하였으면 다음과 같이 포트 포워딩을 공유기에서 설정해 주면됩니다.

80(외부) <—> 8080(내부)

443(외부) <—> 4443(내부)

8181(외부) <—> 8181(내부)

DuckDNS DNS Set-up

QNAP NAS의 경우 xxx.myqnapcloud.com 이라는 DNS를 기본적으로 제공하고있다. 그런데 이상하게도 해당 DNS로 하위주소를 추가할 경우 접근이... 안되는 증상이 있어서 DuckDNS에 접속 주소를 생성하여 활용하였다. DuckDNS( https://duckdns.org )에 구글아이디 등으로 로그인하고 사용하고자 하는 도메인명과 IP주소를 넣으면 해당 주소로 서버 접근이 가능하다.

Nginx Proxy Manager Set-up

앞의 세팅을 모두 잘 했다면 발급받은 주소로 접근하면 다음과 같은 메세지를 얻을 수 있다.

이제 URL:8181 주소로 접근하면 Proxy Sever 설정 로그인 화면이 나온다. 초기 비밀번호는 다음과 같고 접속해서 원하고자 하는 계정을 생성하면 된다.

  • ID: admin@example.com
  • PW: changeme

이후 Detail탭에서 필요한 정보들을 입력해주고 SSL탭에서 인증서 신청과 메일을 넣어주면 인증서발급과 함께 새로운 주소 사용이 가능하다.

최종적으로 아래와 같이 활성화된 서버가 Online되었다.

반응형

+ Recent posts