작성일 댓글 2개

우분투 자작 NAS – 7강, FTP 서버 구축

파일전송의 편의를 위해 FTP를 설치해보자. 이전 모든 강의와 마찬가지로 ssh 접속을 통해 이루어진다.

FTP 서버 설치

다음 명령어로 ftp 서버를 설치한다.

sudo apt-get install vsftpd

FTP 서버 설정

sudo vi /etc/vsftpd.conf

다음 부분을 찾아서 주석을 풀어준다. 첫글자가 #이면 주석이다. #을 지워준다.

#write_enable=YES
#local_umask=002

002는 사용자와 그룹에 둘 다에 권한을 주는 설정인데 그룹에는 권한을 주지 않으려면 022로 한다.

저장하고 나와서 ftp 데몬을 재실행한다.

sudo restart vsftpd

클라이언트에서 FTP 서버 접속하기

외부에서 접속하려면 반드시 FTP를 위한 포트포워딩을 해야함을 잊지 말아야 한다.
FTP에서 사용하는 기본 포트는 21다.

Filezilla에서 빠른 연결을 통해 간편하게 FTP 서버에 접속을 해보자.

호스트: 도메인주소 혹은 IP주소
사용자명: 사용자이름
비밀번호: 비밀번호
포트: 21 (기본 포트는 21이지만 공유기 설정에 따라 다르게 바뀔 수 있다.)

그리고 빠른 연결 버튼을 누르면 즉시 연결이 된다.
filezilla connect

아니면 사이트 관리자를 열어 사이트를 등록해서 접속해도 된다. 이럴 경우 여러가지 설정을 변경할 수 있다. 문자셋을 설정한다든가.

작성일 댓글 남기기

우분투 자작 NAS – 6강, Apache2 기본 디렉토리 변경

지난 시간에는 웹서버 운영을 위해 필수적인 APM을 설치했다. 그중에서도 가장 기본적이고 필수적인 것은 아파치(Apache) 서버다. 아파치 서버가 있어야 웹페이지를 보여줄 수 있다.

Apache2 기본 디렉토리?

이 블로그에 연결된 xianchoi.kr 도메인의 기본 접속 주소인 xianchoi.kr과 www.xianchoi.kr에 접속하면 “Hello, World!” 라는 글자만 써있다. 아파치 기본 디렉토리에 “Hello, World!”가 쓰여진 index.php 밖에 없기 때문이다. 이렇듯 아파치 기본 디렉토리는 최상위 도메인과 www 서브도메인과 연결된다.

아파치를 설치하게 되면 기본적으로 설정되는 디렉토리는 다음과 같다.

/var/www/html/

이제 이 디렉토리를 변경할 것이다. 변경하지 않아도 된다! 그러나 관리의 편리함을 위하여 사용자 홈 디렉토리 밑으로 이동시킬 것이다. NAS에서 중요한 건 파일 관리니까 말이다.

수정해야할 파일은 다음과 같다.

/etc/apache2/apache2.conf
/etc/apache2/sites-available/000-default.conf

기본 디렉토리 변경하기

변경할 디렉토리 생성

나의 경우는 웹서버 관리를 편하게 하고자 다음과 같은 경로로 했다.

/home/사용자이름/apm(임의로 지은 이름)/www

그리고 앞으로 설치할 ownCloud며 WordPress며 모두 apm디렉토리 밑에 두었다.
/apm/owncloud  나 /apm/wordpress 같이 말이다.

이 부분은 각 프로그램을 설치하면서 다시 이야기할 부분이다.

변경할 디렉토리를 만들어준다.

mkdir /home/사용자이름/apm
mkdir /home/사용자이름/apm/www

apache2.conf 수정

이제 apache2.conf를 수정한다.

sudo vi /etc/apache2/apache2.conf

페이지 다운으로 넘어가다 보면 다음과 같은 부분이 나온다.

<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

/var/www/html  이 부분을 원하는 경로로 수정한다.

<Directory /home/사용자이름/apm/www>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

000-default.conf 수정

이제 다음 파일을 수정한다.

sudo vi /etc/apache2/sites-available/000-default.conf

ServerAdmin에 관리자 이메일을 쓰고
DocumentRoot에 apache2.conf에서 수정한 경로를 쓴다.
도메인을 연결해야 하니 다음을 추가한다.

ServerName 도메인주소
ServerAlias 도메인주소

그러면 다음과 같이 된다.

ServerName 도메인주소
ServerAlias 도메인주소

ServerAdmin 이메일주소
DocumentRoot /home/사용자이름/apm/www

이제 재시작해준다(다음 부분까지 작업한다면 지금 재시작 할 필요는 없다).

sudo service apache2 restart

디렉토리 변경 후 문제

아파치 기본 디렉토리를 사용자 홈 디렉토리로 옮겼다. 여기서 문제가 발생한다.

권한 문제가 발생하게 되는데, 웹에서 접근하려면 권한이 필요한데 사용자 홈 디렉토리는 사용자 본인이 아닌 제삼자가 아무렇게나 접근할 수 없기 때문이다.

문제 해결

디렉토리 소유자와 소유그룹 변경

소유자와 소유그룹을 www-data로 변경해야 웹에서 누구나 접근할 수 있다.

sudo chown -R www-data:www-data /home/사용자이름/apm/www

디렉토리 권한 변경

그런데 이렇게 소유자와 소유그룹을 변경하게되면 사용자계정에 권한이 없어지기 때문에 파일과 폴더를 수정할 수 없게 된다. 그래서 ftp로 접속했을 때나 삼바로 접속했을 때 수정이 불가능하다.

이를 해결하기 위해 사용자 계정을 www-data 그룹에 추가하고, 해당 디렉토리의 쓰기 권한을 그룹에도 허용해준다.

sudo usermod -a -G www-data 사용자이름
sudo chmod -R 775 /home/사용자이름/apm/www

이제 아파치 서버를 재시작 해준다.

sudo service apache2 restart

아파치서버 동작 확인

기본 디렉토리가 제대로 변경되었는지 확인해보자.
변경한 디렉토리 안에 index.php를 생성할 것이다.

sudo vi /home/사용자이름/apm/www/index.php

다음 내용을 입력한 후 저장한다.

<?php
    phpinfo();
?>

웹브라우저를 열어 도메인주소 혹은 내부 IP 주소를 입력하여 확인해 본다.
다음과 같이 PHP 정보가 뜨면 제대로 변경된 것이다.

phpinfo