블로그 이미지
Flying Mr.Cheon youGom

Recent Comment»

Recent Post»

Recent Trackback»

« 2024/5 »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

 
 

사이트 옮기기

보안/서버관리 | 2012. 1. 9. 01:12 | Posted by youGom

준비중이던 사이트를 옮겼다.

생각보다 빡세네 -_-;;
한... 다섯시간 걸린듯 ㅋㅋㅋㅋ

대충 적으면.. 아래와 같다..
1. 도메인 설정
2. 서버 절대 경로 설정
3. 설정 파일 수정
4. 서버 재가동
5. 데이터 동기화

실제로 해보면.. 해야할게 여간 많네..
1. 새로 사용할 도메인을 구입한다.
2. 네임서버를 연결 및 등록한다.
 * 내 경우는 직접 서버를 운영하니깐.. 아래와 같이 할일이 많았다.
 * 여기 링크 대로 네임서비스와 아파치 경로를 수정 해주고, 재가동한다.
 - 우분투 Bind9 설치 / 네임서버 설정
 - IP공유기, DNSEVER, DDNS, NS(NAMESERVER), XE
3. 내 경우에는 한 서버에 여러 도메인을 사용했더니, 독특한 에러들이 발생한다.
 * 내가 발생한 에러들은 아래 링크대로 해결했다. 이 에러 해결하느라 시간 다보낸듯 ㅠ
 - perhaps you need a NameVirtualHost directive 
 - httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
 4. 이제 도메인 연결이 경고나 에러없이 잘되었더니..
    경로 설정이 공유가 되어 버린다.  abc.com이 기존 xyz.com에 접근한다 -0-;;;이런! ㅋㅋ
 5. 그래서 mod_rewrite의 설치 및 설정 해 주었더니, 이제 잘 적용한다.
  - 내 경우는 /etc/apache2/site-available/configfile에 요래 설정했다.
<VirtualHost ...>
...
RewriteEngine On
RewriteRule ^/(.*)$ /$1
...
</VirtualHost>    


 6. 그리고, 기존에 설치 했던 웹 페이지를 설치 했다.
  - 이번꺼는 그누보드 사용했다. 사이트 파일 복사하니까.. install 지우고 하라고 하면서 이상하길래.. 그냥.. 빌더 프로젝트 새로 설치해서 한뒤 DB 복사 해줘버렸다 ^^;;
 7. 마지막으로 데이터 DB를 복사해주었다.
 - db dump 및 복사 
 8. 사이트에 들어가 있던, 첨부 파일들은 따로 복사해 주어야 한다. 확인 결과, DB복사 해도, 첨부파일은 따로 저장되는 것 같았다.
:

db dump 및 복사

보안/서버관리 | 2012. 1. 9. 00:39 | Posted by youGom

mysqldump -u사용자명 -p암호 디비명 > 저장할이름.sql


mysql -u사용자명 -p암호 --default-character-set=euckr 디비명 < 복원할파일.sql

:

mod_rewrite의 설치 및 설정

보안/서버관리 | 2012. 1. 9. 00:17 | Posted by youGom

mod_rewrite는 Apache의 기능으로, 모듈을 넣어 사용가능하다.
이는 URL(도메인 이하의 패스)의 리디렉트나 위장, 치환등을 실시할 수 있다.
일반적으로 정규표현을 이용해서 RewriteRule를 적을수 있다.
정규표현식에 관해서는 정규표현관련 페이지를 참고하길 바란다.
 
 
:

perhaps you need a NameVirtualHost directive

보안/서버관리 | 2012. 1. 8. 23:45 | Posted by youGom

"you need a NameVirtualHost directive"

httpd.conf에 NameVirtualHost *가 필요하다는 말


apache2의 경우, /etc/apache2/ports.conf에 있으니. 주석 제거 또는 수정.
NameVirtualHost xx.xx.xx.xx  ( NameVirtualHost localhost ; 이거 아님!! 본인 아이피.. )


:

httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName


매우 간단하다.

httpd.conf 파일을 보면 ServerName localhost:80 으로 변경 하면 된다.

'보안 > 서버관리' 카테고리의 다른 글

mod_rewrite의 설치 및 설정  (0) 2012.01.09
perhaps you need a NameVirtualHost directive  (0) 2012.01.08
IP공유기, DNSEVER, DDNS, NS(NAMESERVER), XE  (0) 2011.12.20
xshell  (0) 2011.12.20
우분투 Bind9 설치 / 네임서버 설정  (0) 2011.12.20
:

IP공유기, DNSEVER, DDNS, NS(NAMESERVER), XE

보안/서버관리 | 2011. 12. 20. 22:59 | Posted by youGom

- IP 공유기에서 개인 서버 돌리기
- DNSERVER의 NS 서버 도움받기
- 개인서버에 네임서버 설정하기
- 네임서버 설정된 경로에 XE 적용하기

즉, 개인 서버를 돌리려고 한다. 집에 공유기가 있고, 서버 돌리려고 하니, 포트가 막힌다. 그 포트를 열었다.

그리고나서, 도메인 서비스를 원활하게 하고 싶었다. 
 domain.com이 있다. 여기에 www.domain.com 도 사용하고 싶고, blog.domain.com 도 사용하고 싶다. 앞으로 더 나아가서 news.domain.com도 추가하고 싶다.
 이를 해결하기 위해 DDNS를 이용했으며, DDNS가 설정된 상태에서 Bind9를 이용하여 네임서버를 구동시켰다.
DDNS는 Dynamic DNS로써 유동 IP를 도메인에 원활하게 연결하기 위한 하나의 방법이다. 그리고 Bind9는 네임서버 구축 툴이다. 
 www.domain.com을 최종 접근하기 위해서는 두번의 네임서버를 거쳐서 들어오게 된다. 첫번째는 DNSEVER에서 개인서버로 포워드하고, 개인서버에서 해당하는 ( 여기서는 www ) 경로로 안내해준다. 즉, www.domain.com URL 입력 -> dnserver -> mypc -> mysite ( www.domain.com )


* 공유기 위에 서버 설치 방법을 간략히 나열한다.
 - DHCP에 해당 서버 MAC 주소 등록, 사용할 외부 Port 등록 ( 포트 방화벽 해제됨 )
* DNSEVER에 추가할 SubDomain을 추가 등록한다. ( 당연히 기존 www는 살려준다. )
* Bind9 설치 한다. ( Apach2, php, MySql 등은 기본으로 설치 되어있다고 가정한다. )
 - /etc/bind/named.conf.local 에 domain.com의 ns 정보 파일 등록
 - /etc/bind/db.domain.com 에 domain.com의 ns정보 등록 또는 수정 ( SubDomain 등 세세한 설정 )
   # /etc/init.d/bind9 restart 로 재시작
 - /etc/apache2/sites-available/domain에 site 정보 등록 또는 수정
   # sudo a2ensite domain으로 sites-enabled 등록
   # /etc/init.d/apache2 restart 로 재시작
 - 기존 등록한 domain.com이 이미 존재한다면, subDomain만 더 등록해주면 된다. ( db.domain.com, sites-available/domain )

* XE 설치는 www.xpressengine.com에 잘 나와 있진 않았다. 나도 검색해서 설치했다 ^^; ( 비교적 설치하기 편하게 되어 있었다. 내 경우, 라이브러리와 퍼미션 설정만 잘 해주면 됐었다. )
:

xshell

보안/서버관리 | 2011. 12. 20. 20:19 | Posted by youGom
www.netsarang.co.kr


아카데미 버젼은 공개됨.
:

우분투 Bind9 설치 / 네임서버 설정

보안/서버관리 | 2011. 12. 20. 20:12 | Posted by youGom

1. Bind9 설치

 

$ sudo apt-get install bind9

 

2. zone 파일 등록

$ sudo gedit /etc/bind/named.conf.local

//
// Do any local configuration here
//
zone "domain.com" {
        type master;
        file "/etc/bind/db.domain.com";
};   // <- 괄호 뒤 세미콜른 잊지 말것


3. zone 파일 작성

$ sudo cp /etc/bind/db.local /etc/bind/db.domain.com

 


$ sudo vi /etc/bind/db.domain.com

$ vi /etc/bind/db.domain.com

;
; BIND data file for local loopback interface
;

$TTL    604800
@       IN      SOA   ns.domain.com.    root.domain.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS     ns.domain.com.
@       IN      A       111.222.333.444
www  IN      A       111.222.333.444
mail    IN      A       111.222.333.444
*        IN      A       111.222.333.444

 

4. bind9 재시작

      설정이 잘 되었는지 확인하는 방법 ( 재시작 전에 확인해 본다 )

$ named-checkzone example.com /etc/bind/db.example.com
zone example.com/IN: loaded serial 5
OK

$ sudo /etc/init.d/bind9 restart

 

5. VirtualHost 설정

 

$ sudo vi /etc/apache2/sites-available/domain-name

 

<VirtualHost *:80>

ServerAdmin admin@localhost

DocumentRoot /home/유저폴더

ServerName domain.com

ServerAlias www.domain.com

CustomLog /home/유저폴더/access.log combined

ErrorLog /home/유저폴더/error.log

<Directory /home/유저폴더/ >

Options FollowSymLinks MultiViews

AllowOverride All

php_admin_value open_basedir /home/유저폴더/public_html/:/var/tmp/:/tmp/

</directory>

</VirtualHost>

 

$ sudo a2ensite domain-name

 

$ /etc/init.d/apache2 restart 

 

 

참고) 유저가 모든 활동을 할 수 있게 만드는 과정

  1. 우분투 로컬 계정 생성
    adduser 유저명, passwd 유저명 
  2. 유저 mysql 계정 생성
    1. mysql 접속 ( mysql -u root -p : 루트계정으로 접속 )
    2. 데이터베이스 생성 ( CREATE DATABASE 디비명; )
    3. mysql 계정 생성
    ( GRANT ALL PRIVILEGES ON 디비명.* TO 계정명@localhost IDENTIFIED BY ‘계정암호’ WITH GRANT OPTION; )
  3. 생성된 유저폴더에 가상호스트를 설정합니다.

'보안 > 서버관리' 카테고리의 다른 글

IP공유기, DNSEVER, DDNS, NS(NAMESERVER), XE  (0) 2011.12.20
xshell  (0) 2011.12.20
ubuntu_server에서 할글 깨짐 현상 해결  (0) 2011.12.19
DB, MySQL 계정 생성  (0) 2011.12.19
우분투 원격 부팅 설정  (0) 2011.12.17
:

ubuntu_server에서 할글 깨짐 현상 해결

보안/서버관리 | 2011. 12. 19. 23:47 | Posted by youGom
ubuntu desktop 에디션을 사용중인데, 여기선 한글 깨짐등의 문제가 생길 때는 간편하게
"시스템 -> 관리 -> 언어" 에서 간편하게 해결이 되지만 

서버버젼이나 SSH로 사용중에 한글깨짐 현상은 예전에 콘솔에서 하던 방법으로 해결해야 한다.
자주 사용하지 않다 보니 이것도 깜빡 깜빡해서 여기다 정리해 둔다.

요즘은 이 블로그가 내 개인 메모장인지 블로그인지 혼돈이 간다 .^^
뭐 어떤가 ... 단 한사람이라도 이글이 도움이 된다면 된거 아닌가.

뭐 대충 이렇게 깨져 나온다.

locale 해서 보게 되면 LANG=ko_KR.UTF-8만 나온다. 여기다가 EUC-KR만 추가해 주면 된다.

1. EUC-KR 추가

code:
$ sudo apt-get install language-pack-ko
$ sudo locale-gen ko_KR.EUC-KR

2.  환경설정

code:
$ vi /etc/environment 로 들어가서

LANG="ko_KR.UTF-8"
LANG="ko_KR.EUC-KR"
LANGUAGE="ko_KR:ko:en_GB:en"

위를 추가해 주고 저장한다.

3. rebooting 해서 사용하면 됩니다.



출처 : http://nokia.egloos.com/9676842



'보안 > 서버관리' 카테고리의 다른 글

xshell  (0) 2011.12.20
우분투 Bind9 설치 / 네임서버 설정  (0) 2011.12.20
DB, MySQL 계정 생성  (0) 2011.12.19
우분투 원격 부팅 설정  (0) 2011.12.17
apache2 디렉토리 인덱싱 안되게 하기  (0) 2011.12.16
:

DB, MySQL 계정 생성

보안/서버관리 | 2011. 12. 19. 21:56 | Posted by youGom

서버 관리를 하다보면 mysql 사용자 계정을 추가해 줄때가 있다

 

./mysqladmin -V  버젼명 (테이터베이스 관리 tool)
./mysqladmin -p status 현재상태

 

 데이터베이스 종류 보기
   mysql> show databases;

 

mysql 상의 테이블 정보 보기
   mysql> show tables from mysql;

 

데이터 베이스 생성

mysql> CREATE DATABASE testDB;


편집후에 반드시 mysql 재가동해야함.
   # mysqladmin -u root -p reload 

 

첫번째 방법은 아주 간단하다 한번에 끝낼수 있다.

GRANT ALL PRIVILEGES ON [DB명].[테이블명(*)] TO [유저명]@[서버명] IDENTIFIED BY '[암호]' WITH GRANT OPTION;

"WITH GRANT OPTION" 옵션은 다른 유저에게 권한 부여 여부다.

 

두번째 방법은 세밀하게 권한을 부여할 수 있는 방법이다. 일단 유저를 먼저 생성을 한다.

GRANT ALL PRIVILEGES ON [DB명].[테이블명(*)] TO [유저명]@[서버명] IDENTIFIED BY '[암호]' ;

 

유저를 생성후 권한을 한번에 줄수있다.

GRANT ALL ON [DB명].[테이블명(*)] TO [유저명]@[서버명];

 

특정 권한만 선택적으로 적용할 수 있다.

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALERT ON [DB명].[테이블명(*)] TO [유저명]@[서버명];

 

마지막으로 계정 권한을 새로 로드시켜 준다.

FLUSH PRIVILEGES;

 

권한 삭제는 GRANT 명령어 반대로 하면 된다.

REVOKE ALL ON [DB명].[테이블명(*)] TO [유저명]@[서버명];

 

특정 권한만 삭제할 수 있다.

REVOKE SELECT ON [DB명].[테이블명(*)] TO [유저명]@[서버명];

 

권한만 삭제한다고 유저가 삭제되진 않는다. 아래와 같이 해줘야 완벽하게 유저가 제거된다.

DROP USER [유저명]@[서버명];

 

 

mysql이 외부로도 서비스가 가능하게 하려면,

몇 가지의 확인사항과 그 외에 추가적인 설정을 해야 할 필요가 있습니다.

 

mysql이 설치된 서버의 운영체제를 명시해주시지 않아서,

유닉스 계열 운영체제라 가정하고 설명드리겠습니다.

 

#1.

우선, 기본적으로 mysql 은 tcp 3306 번 포트를 통해 서비스를 제공합니다.

따라서, 외부에서 DB에 접근할 수 있도록 하기 위해서는

서버의 tcp 3306 번 포트가 방화벽에 막혀 있지는 않은지 확인해야 하며

만약 막혀 있을 경우 열어주어야 합니다.

 

iptables -L 명령으로 차단/허용 리스트 조회가 가능합니다. 만약 포트가 막혀 있을 경우,

 

# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

 

명령으로 열어주시면 됩니다.

 

 

#2.

그 다음에는 DB 사용자 계정에 외부에서의 접근 권한을 부여해야 합니다.

외부에서 DB에 접근할때만 사용하는 계정을 새로 생성해도 됩니다.

'%' 의 의미는 외부에서의 접근을 허용한다는 의미입니다.

기존에 사용하던 계정에 외부 접근 권한을 부여하려면, Host를 '%' 로 하여 똑같은 계정을 추가해줍니다.

 

mysql> USE mysql;

mysql> INSERT INTO user (Host, User, Password) VALUES ('localhost', '계정아이디', password('비밀번호'));
mysql> INSERT INTO user (Host, User, Password) VALUES ('%', '계정아이디', password('비밀번호'));
mysql> FLUSH privileges;

계정이 생성되었다면, 그 계정이 접근할 수 있는 데이터베이스를 생성하고 권한을 부여해야 합니다.

 

mysql> CREATE DATABASE 데이터베이스명;
mysql> GRANT ALL privileges ON 데이터베이스명.* TO 계정아이디@locahost IDENTIFIED BY '비밀번호';
mysql> GRANT ALL privileges ON 데이터베이스명.* TO 계정아이디@'%' IDENTIFIED BY '비밀번호';

 

이렇게 방화벽을 열고, 계정에 접근 권한을 부여하는 과정을 거치면

외부로 DB 서비스를  제공할 수 있게 됩니다.

 

도움이 되셨기를 바랍니다.

: