리눅스를 사용하면서 FTP 설정을 해 놓으면 여러모로 편한 점이 있습니다. 저의 경우엔 주로 Windows 환경의 OS를 사용하다가 웹 서버에 어떤 파일을 업로드 하거나 웹 페이지를 변경 할 일이 있으면 FTP를 이용해서 변경을 합니다. 직접 서버에 접속을 해서 변경할 수도 있지만 아무래도 편집기 환경이 윈도우와 다르기 때문에 작업하기가 힘들 수도 있기 때문이죠.

 이럴 때, FTP 가 사용 가능하면 좋은데, 이번에 우분투를 사용하게 되어 우분투에 FTP를 설정하는 방법을 포스팅 하게 되었습니다. ( 나중에 보고 따라할 수도 있어서 기록 해 놓으려구요 ㅎㅎ )

 일단 저는 우분투에 SSH를 이용한 터미널 작업으로 세팅하도록 하겠습니다. 서버 관리에서 직접 서버 컴퓨터에 가서 모니터 켜고 콘솔 작업을 하는 사람은 많지 않을테니까요 ㅋㅋ 저는 한글 PUTTY를 이용해서 접속을 했습니다. 일반 Putty로 접속을 하니까 우분투의 한글이 깨지더라구요. 세팅하기 귀찮아서 한글 PUTTY로 접속을 하였습니다.

한글 putty 다운로드


 네 우분투에 FTP를 설치하는 명령어는 매우 간단합니다.

$ sudo apt-get install vsftpd
$ sudo vi /etc/vsftpd.conf

두 명령어를 입력하시면 FTP 데몬이 설치되고, 설정 페이지가 나옵니다.
여기서 아래의 세군데의 주석을 해제 하시고, 다음과 같이 세팅을 해줍니다.
==================== 편집기 ======================
anonymous_enable=NO
local_enable=YES
write_enable=YES
=================================================


$ sudo /etc/init.d/vsftpd restart

그리고 FTP 데몬을 재시작 시켜 주시면 완료!!

 
그럼 직접 따라해 볼까요? PUTTY를 이용해서 여러분의 서버에 접속을 하시면 다음과 같은 화면이 뜹니다.



이제 첫 번째 명령어를 써 넣습니다.
첫번째 명령어는

$ sudo apt-get install vsftpd

였죠? 이 명령어는 vsftpd 라는 데몬을 설치하라는 명령어입니다.




여기서 한글이 깨져서 나오는 경우가 있는데 그런 경우엔 다음 링크를 참조하시기 바랍니다.

2010/07/22 - [컴퓨터 공학/OS/Linux/Windows] - putty 한글 깨짐 현상 해결

네 이제 vsftpd 데몬이 설치가 되었구요.

$ sudo vi /etc/vsftpd.conf

위 명령어를 입력하면 vsftpd 의 설정에 관한 내용들을 볼 수 있습니다.
굉장히 긴데요. 문장이 #으로 시작하는 것은 주석처리가 된 것으로 설정에 영향을 미치지 않는 부분들입니다.


설정 내용 중에 잘 보시면 위의 3가지를 볼 수 있습니다.
각각 다음과 같이 변환을 해 줍니다.

anonymous_enable=NO
local_enable=YES
write_enable=YES

맨 처음 anonymous_enable 은 YES 에서 NO로 바꿔 주시구요
다음 두개는 맨 앞의 # 을 제거해 주시기만 하면 됩니다.

VI 에디터 사용법은 다음 링크를 따라가 보시기 바랍니다.

http://www.cyworld.com/duck_info/3551206


$ sudo /etc/init.d/vsftpd restart

그리고 위 명령어를 입력하여 데몬을 다시 시작합니다.




이제 FTP 프로그램으로 접속을 해보겠습니다.
간단하게 알 FTP로 실험을 해보겠습니다.


접속이 잘 되네요.
근데 한글은 또 왜 깨지나요 ㅋㅋ
이제 서버와 여러분의 컴퓨터와의 FTP 설정이 끝났습니다. 그냥 웹 하드처럼 쓰셔도 될 듯 하네요.


리눅스 책 추천




putty를 이용해서 원격 접속을 하다보면 한글이 깨지는 현상을 볼 수가 있습니다.


제 경우엔 이렇게 깨져 버리네요.
콘솔에서 봤을 때에는 안 그렇지만 putty에서 접속 할 때에는 한글을 인식 못 해서 이렇게 깨져버리곤 합니다. 보기에도 안 좋고, 가뜩이나 텍스트가 많이 나와서 머리 아픈 리눅스 유저들에게 이런 현상은 용납 할 수 없는 현상이겠지요.


해결 방법은 간단한 설정만 바꿔주면 됩니다.
저는 한글 PUTTY를 사용하고 있어서 내용들이 한글인데, 어렵지 않은 영어이나 여러분들도 잘 찾아 갈 수 있을 꺼라 믿습니다. ㅋ
왼쪽 메뉴에서 [창] 이라는 메뉴 ( 영어 버전에서는 [Window]인가요? )에서 [변환] 을 선택합니다. ( 영어 버전에서는 [Translation]인가 할 겁니다. )
그러면 인코딩 설정을 할 수 있는 드롭 다운 선택 메뉴가 있습니다.
그 중에서 UTF-8 을 선택하시고 접속하면 완성입니다.



이제 더 이상 한글이 깨지지 않습니다. ㅎ
여러분이 사용하시는 우분투 리눅스가 한글 버전이 아니라 영어만 지원하는 버전이거나 한글을 사용하지 않으시면 별로 상관없는 기능이긴 하지만 한글을 사용하고 한글 작업을 하시는 분들은 이 설정을 꼭 기억하시기 바랍니다. ^^


리눅스 책 추천




 리눅스를 사용하다보면 sudo 라는 명령어를 많이 사용하게 됩니다.
이 명령어는 root 권한이 아닌 유저에게 root 권한을 빌려주는 역할을 합니다. 하지만 매번 sudo 라는 단어를 입력하기가 여간 귀찮은 것이 아닙니다.

$sudo passwd root


 위와 같은 명령어를 입력합니다. passwd 명령어는 유저의 비밀번호를 변경하는 명령어입니다. 위 명령어는 root유저에 명령어를 주는( 바꾸는 ) 명령어입니다. 위 명령어를 실행하면



 그러면 root 유저로 바꿔보도록 하겠습니다.


$ su -

위 명령어를 입력하고 위에서 root에 할당한 비밀번호를 입력하고 쉘의 모양이 "$" 에서 "#" 으로 바뀌었는지 확인합니다.



 성공적으로 root 계정을 얻은 모습입니다. 이제 sudo 명령어를 빼고 아무 명령어나 실행 해보면 root 계정의 권한으로 실행이 되는 것을 볼 수 있습니다.

 
 루트 권한을 얻어 쉘이 "#" 모양으로 되었을 때에는 sudo를 붙이지 않아도 루트 권한의 명령어들을 실행 할 수 있습니다.

 보안 문제도 있고 여러이유로 우분투에서는 root 대신 sudo를 사용하게 만든것 같습니다. 하지만 리눅스를 배우는 초보 입장에서는 보안문제보다는 리눅스를 좀 더 쉽게 사용하는 것이 중요하다고 생각되므로 루트 권한을 얻어서 사용하셔도 무방하다 생각됩니다.




Vi 에디터를 사용하면서 불편한 점이 굉장히 많았습니다. 그래서 한결 사용하기 편한 VIM 에디터를 우분투에 설치하는 방법을 배워 보도록 하겠습니다.

* VIM 설치

$ sudo apt-get install vim

위 명령어를 입력해 줍니다. 참 쉽죠~~


 필요한 패키지를 인터넷이 연결되어 있다면 다운로드 받아서 설치를 하기 시작합니다. 설치가 완료되었으면 vim의 설정을 변경하여 보겠습니다.

* VIM 설정 변경
vim 설정 파일은 /etc/vim/vimrc과 ~/vimrc 에 있습니다. /etc/vim/vimrc 는 글로벌 설정으로 해당 서버를 사용하는 모든 유저에게 설정이 되는 파일이고, ~/vimrc는 해당 디렉토리를 홈 디렉토리로 하는 로컬 유저의 설정이 저장되는 파일입니다.
 다음 명령어를 입력하여 몇가지 설정을 바꿔주도록 하겠습니다. ( 이것은 옵션으로 디폴트 값으로 사용하셔도 됩니다. )

$ sudo vi /etc/vim/vimrc

 처음 설치가 되었을때에는 옵션이 몇가지 업습니다. 보다 좋은 기능들을 활용하기 위해서 다음과 같은 옵션들 중에 필요한 것만 골라서 적어 넣어주겠습니다. ( vi 사용법을 모르시는 분은 인터넷을 검색하여 보시기 바랍니다. i 를 누르면 입력 모드로 전환이 됩니다. )

set tabstop=4 // "Tab"을 눌렀을 때 4칸으로 이동합니다.
set cindent    // "C언어 스타일"의 들여쓰기를 사용합니다.
set autoindent  // 자동으로 들여쓰기를 합니다.
set smartindent  // 좀 더 똑똑한 들여쓰기 옵션을 사용합니다.
set background=dark  // 화면 배경을 Dark로 어둡게 합니다. 이 때 light로 하면 밝아집니다.
set number      // 행 번호를 보여줍니다.
set visualbell   // 경고음 대신 화면을 번쩍입니다.
set ruler         // 화면 우측하단에 (행, 열) 번호를 보여줍니다.
set nowrapscan // 단어 검색시 문서 처음으로 돌아가지 않는다.
set nobackup   // 백업을 생성하지 않습니다.
hlsearch          // 검색어 강조 기능을 사용합니다.
syntax on        // 구문 강조 기능을 사용합니다.
filetype on        // 파일 종류에 따른 강조기능을 사용합니다.

저는 다음과 같은 옵션들을 사용하였습니다.



 그럼 가장 유명한 프로그램인 "Hello, World"  프로그램을 예제로 작성하여 보겠습니다.


 굉장히 알록 달록하게 보입니다. 기존의 vi 에디터는 메모장 처럼 그냥 텍스트만 보여줬지만 vim을 설치하고 몇가지 옵션을 주니 그리 떨어지지 않는 개발 환경이 되었습니다.



텔넷이란 인터넷 상에서 원격 호스트 컴퓨터에 접속 할 수 있는 프로토콜로 쉽게 말해서 다른 컴퓨터에서 여러분의 우분투 서버에 원격으로 접속 할 수 있도록 해주는 프로그램(?)을 말합니다. 텔넷을 사용하면 서버에 연결된 키보드가 아닌 터미널 환경에서 키보드로 명령을 입력하고 시스템을 관리 할 수 있게 됩니다.

 먼저 다음의 명령어를 입력합니다.
$ sudo apt-get install xinetd


 먼저 여러분의 컴퓨터에 xinetd라는 데몬을 설치 할 것입니다. 이 데몬은 eXtended InterNET Daemon의 약자로 인터넷 기반의 연결을 관리해주는 역할을 합니다. 자세한 내용은 위키피디아참조하시기 바랍니다.

 xinetd가 설치 되었으면 다음 명령어를 입력합니다.
$ sudo apt-get install telnetd
 


이제 xinetd에 관한 설정을 바꿔주겠습니다. 다음 명령어를 입력합니다.
$ vi /etc/xinetd.conf


 vi 에디터를 이용해서 xinetd의 설정파일을 열었습니다. 이제 설정파일에 다음의 내용을 추가해 주도록 하겠습니다.

service telnet

{

     disable = no

     flags = REUSE

     socket_type = stream

     wait = no

     user = root

     server = /usr/sbin/in.telnetd

     log_on_failure += USERID

}





자 이제 xinetd의 설정이 바뀌었습니다. 설정을 바꿨으니 적용이 되도록 xinetd를 재시작 해 주도록 하겠습니다. 다음의 명령어를 입력합니다.

$ sudo /etc/init.d/xinetd restart


이제 텔넷이 설치 되었습니다. [시작] -> [실행] 에서 다음과 같은 형식으로 입력하면 텔넷을 이용해서 접속을 할 수 있습니다.

Telnet [서버의 아이피 주소 혹은 도메인 주소]



그럼 로그인 절차를 나타내는 터미널 화면을 볼 수 있습니다.



정상적으로 로그인이 되시면 터미널에서 여러분의 서버를 이용할 수 있게 됩니다.




 웹프로그래밍을 공부하시는 분들, 특히 PHP를 공부하시는 분들이라면 APM이라는 패키지를 모를리가없다고 생각합니다. ( 모르신다면 지금이라도 한번 찾아 보시기 바랍니다. )


 APM은 웹서버를 구성하는 주요 도구인 Apache서버, PHP, MySQL의 이니셜을 말합니다. 여기에 Linux까지 넣어서 LAMP라고도 합니다.

 우분투 리눅스 환경에서 APM 패키지를 설치하고 PHP를 공부해 보도록 합시다.

$ sudo apt-get install apache2

위 명령을 실행합니다.


 이제 아파치서버가 설치되었습니다. 아파치서버는 전세계 웝서버 점유율이 2007년 기준으로 50%가 넘는 인기있는 서버 프로그램입니다. 자세한 것은 위키백과를 참고하시기 바랍니다.

 다음 명령어를 입력합니다. 아파치와 mysql을 연동하는 라이브러리를 설치하는 부분입니다.

$sudo apt-get install libapache2-mod-auth-mysql


 두번째 단계도 마쳤습니다. 다음으로 DBMS인 My-sql을 설치하도록 하겠습니다. 다음의 명령어를 실행시킵니다.

$sudo apt-get install mysql-server mysql-client


 명령어가 실행이 되면 Mysql 설치에 필요한 자료들을 내려 받고 Mysql 설치가 시작됩니다. 패스워드를 입력합니다. DBMS를 관리하기 위해 앞으로 필요하기 때문에 잘 기억 할 수 있는 암호로 하거나 암호를 잘 기억해 두시기바랍니다.


 암호를 한 번더 반복하여 입력합니다.


 Mysql의 root 비밀번호를 설정하고 나면 설치가 계속 진행이 됩니다. 잠시후 설치가 끝나고 자동으로 Mysql database server 가 재시작됩니다. 설치가 끝났으면 여러분의 리눅스에는 Mysql이라는 데이터베이스 프로그램이 깔리게 된 것입니다.

이제 PHP5를 설치합니다. 다음 명령어를 입력합니다.

$sudo apt-get install php5-common php5 libapache2-mod-php5


php5이 설치되었습니다. 이제 웹프로그래밍을 할 수 있는 환경이 설치되었습니다.
이제 php5와 Mysql을 연동하기 위한 작업을 시작하겠습니다. 다음 명령어를 입력합니다.
$sudo apt-get install php5-mysql


이제 php 프로그래밍을 하면서 Mysql과 연동해서 DB 프로그램을 할 수 있게 되었습니다. 이제 Apache 서버를 재시작합니다.
 다음 명령어를 입력합니다.

$sudo /etc/init.d/apache2 restart



이제 Mysql 서버가 정상적으로 동작하는지 알아보도록 하겠습니다. 다음 명령어를 입력합니다.

$sudo netstat -tap | grep mysql


명령어 입력 후 다음과 같은 메시지가 뜬다면 정상적으로 작동하고 있는 것입니다.

tcp 0 0 localhost.localdomain:mysql *:* LISTEN -

그러면 정상적으로 웹서버가 동작하는지 테스트 해보겠습니다. 다음을 입력해서 텍스트 파일을 만들어 보겠습니다.

$ sudo vi /var/www/phpinfo.php

 vi 에디터를 이용해서 다음과 같은 파일을 만듭니다.
<?php
    print_r(phpinfo());
?>

 간단한 vi에디터 사용법을 알려드리자면 시작하면 i키를 눌러서 삽입 모드를 작동시키고 위의 소스를 타이핑합니다. 타이핑이 완료되면 [ESC]키를 누르고 ":"( 콜론 [Alt] + ";" ) 과 wq를 입력해서 저장하고 종료를 합니다. ( ":wq" )

 인터넷 창을 열고( 우분투 데스크 톱에는 기본적으로 파이어폭스가 설치되어 있습니다. ) http://locahost 를 입력합니다. 아파치서버가 정상적으로 설치되었다면 다음과 같은 화면이 출력 될 것입니다.


  다음으로 php가 정상적으로 설치되어 있는지 확인해 보도록 하겠습니다. http://localhost/phpinfo.php 를 입력해 봅니다. php5가 정상적으로 설치되었다면 다음과 같이 php5에 대한 정보가 출력이 될 것입니다.

 이제 /var/www/ 폴더가 여러분이 개발할 홈페이지의 기본 폴더가 될 것입니다. HTML파일이나 php파일을 만들어서 이 경로에 저장을 하면 다른 컴퓨터에서 웹브라우저를 이용해서 볼 수 있을 것입니다.

 이제 php를 이용해서 웹프로그램을 개발해 보도록 합시다!! 이상 우분투 환경에서 APM을 설치해 보았습니다.




 C언어 개발 환경인 gcc를 우분투 리눅스 환경에서 설치해 보도록 하겠습니다. gcc는 윈도우의 비쥬얼 스튜디오와 같이 프로그래머에게 개발 환경을 제공해 주는 툴입니다.

$ sudo apt-get install build-essential


위 명령어를 입력하시면 gcc가 다음과 같이 설치가 됩니다.



글씨가 좀 깨지긴 했는데, 우분투 환경에 gcc가 설치되었습니다. 그러면 시험삼아 다음 소스를 실행해 보도록하겠습니다.

#include<stdio.h>


main()
{
     printf("Hello, World!!");
}



저는 VI 에디터를 사용해서 파일을 만들었습니다.



이제 gcc를 사용해서 컴파일을 해보도록 하겠습니다. 

다음 명령어를 이용해서 컴파일을 합니다.

gcc 123.c

이는 <123.c 라는 파일을 컴파일 하라!> 라는 명령어입니다.

./a.out

컴파일시 별도로 이름을 지정해 주지 않으면 gcc는 기본 이름으로 a.out이라는 파일을 생성합니다. 이때, a.out 파일 앞의 ./ 의 뜻은 현재 디렉토리를 가리키는 의미입니다.

이를 실행하면 다음과 같이 "Hello, World!!"라는 내용이 콘솔 화면이 출력이 될 것입니다.



이제 기본적인 개발 환경은 세팅이 되었으니 열심히 C 프로그래밍을 즐기시기 바랍니다.




+ Recent posts