You cannot see this page without javascript.

Skip to content

Home

조회 수 3020 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

다시 요약해서 최신에 맞게 작성해 봅니다.

최종수정 : 2014-10-16

 

현재 배포된 Ubuntu 버전은 아래와 같습니다.

사용자 삽입 이미지

운영체제의 수명이 긴 LTS 버전을 설치하도록 합시다. (버전숫자가 높다고 더 좋다는 뜻은 아님)

Ubuntu 운영체제에 관해서는 http://en.wikipedia.org/wiki/Ubuntu_(operating_system) 를 참조하세요.

 

설치는 Ubuntu 12.04 LTS를 기준으로 합니다.

물론 다른버전도 설치될겁니다.

 

일반 사업체에서 사용할 수 있도록 안정적인 세팅법을 알려드리겠습니다.
당신이 운영하고자 하는 소프트웨어가 WordPress나 Drupal , Joomla 같이 안정적인 프로그램이면 14.04 LTS를

gnuboard, technote, kimsq 등 과거 방식의 프로그램이면 12.04 LTS를 설치하세요.
(또는 14.04 설치해서 PHP ERROR REPORTING 부분만 수정해도 되는데.. 이 방식은 추천하지 않습니다.)

 

 

1) 리눅스 버전체크

#uname -a
Linux ubuntu 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

2) Ubuntu 버전체크

#cat /etc/issue
Ubuntu 12.04

3) 하드용량체크

#df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/LaelServer02-root
37G  739M   35G   3% /
tmpfs                 244M     0  244M   0% /lib/init/rw
varrun                244M   72K  244M   1% /var/run
varlock               244M     0  244M   0% /var/lock
udev                  244M  148K  244M   1% /dev
tmpfs                 244M     0  244M   0% /dev/shm
lrm                   244M  2.7M  242M   2% /lib/modules/2.6.28-11-server/volatile
/dev/sda5             228M   14M  202M   7% /boot

대략 다 더하면 40G가 나온다.

다른 예

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda1        19G  2.5G   15G  15% /

udev            486M  4.0K  486M   1% /dev

tmpfs           198M  252K  198M   1% /run

none            5.0M     0  5.0M   0% /run/lock

none            495M     0  495M   0% /run/shm

/dev/sda3        80G  1.4G   75G   2% /home

이건 다 더하면 100G 가 나온다.

사용자 영역은 /home 이므로 약 75G 사용가능하다.

 

/home 이 따로 없으면 / 파티션 공간을 보면 된다.

 

즉 첫째 예시의 여유공간은 35G, 둘째 예시의 여유공간은 75G 이다.

 

4) 메모리 체크

#free -m
total       used       free     shared    buffers     cached

Mem:           988        703        285          0        137        393

-/+ buffers/cache:        172        816

Swap:         1881          0       1881

988M의 전체메모리중 현재 703M을 사용하고 있고 285M가 비어있다.

 

5) 자잘한 업글

apt 목록 갱신
apt란 Advanced Packaging Tool 을 뜻합니다. 우리는 apt 라는 우분투에 내장된 프로그램을 이용해서 프로그램을 쉽게 설치/제거 할 수 있습니다.
#apt-get update

현재 운영체제에 설치되어있는 프로그램 최신버전패치
#apt-get upgrade

6) Apache2 설치

#apt-get install apache212.04 에서는 apache 2.2 가 설치된다.
14.04 에서는 apache 2.4 가 설치된다.부팅시 자동실행 된다. (기본값)
설치 완료되면 자동적용 및 시작된다.확인해본다. http://256.123.213.213(서버의아이피)
웹브라우져에 It Works 라고 뜨면 성공.
(참고로 기본으로 보여지는 파일은 /var/www/index.html 이다.)

7) PHP 5.x 설치

#apt-get install php5
자동으로 아파치 중단시키고  설정파일에 php를 등록시키고 재 구동시킨다.(바로 적용됨)12.04 에서는 php 5.3 이 설치된다.
14.04 에서는 php 5.5 가 설치된다.#apt-get install php5-cli
콘솔에서 php를 실행시키기 위해서 위와 같이 실행
기타 주로 사용되는 모듈을 설치한다.
- 암호화 모듈
#apt-get install php5-mcrypt
- 이미지처리 모듈
#apt-get install php5-gd
기타 주로 사용되는 모듈을 활성화한다.
#a2enmod rewrite
#a2enmod headers
아파치 재시작(적용을 위해서)
#service apache2 restart
버전체크
#php -v

PHP 5.3.10-1ubuntu3.8 with Suhosin-Patch (cli) (built: Sep  4 2013 20:00:51)
Copyright (c) 1997-2012 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

5.3.10 버전이다. (당신이 설치한 버전은 이것보다 높을 것이다.)

8) Mysql 설치

[
#apt-get install mysql-server
mysql 서버데몬 설치.  재부팅시 자동실행된다.
설치중에 root비밀번호를 세팅할 수 있다.

역시 콘솔 컨트롤을 위해서 클라이언트 설치
#apt-get install mysql-client-5.5

]

또는 여러분 중에 MYSQL 최신 버전 설치를 원하는 사람이 있다면 아래의 명령어를 사용하여라.

[
#apt-get install mysql-server-5.6
mysql 서버데몬 설치.  재부팅시 자동실행된다.
설치중에 root비밀번호를 세팅할 수 있다.

역시 콘솔 컨트롤을 위해서 클라이언트 설치
#apt-get install mysql-client-5.6
]

#apt-get install php5-mysql
php5 연동모듈 설치

버전체크
#mysql -V

mysql  Ver 14.14 Distrib 5.5.32, for debian-linux-gnu (x86_64) using readline 6.2

5.5.32 버전이다.

기본 언어셋 설정(중요)
이 단계를 건너뛰면 DB가 latin1 으로 생성되며 추후 DB작업에 문제가 생길 수 있다.
#vi /etc/mysql/my.cnf

(vi 에디터 사용방법을 모른다면 ftp 클라이언트를 사용하여 서버에 로그인 후 해당파일을 수정하고 덮어쓰기한다.)

[mysqld] 항목에 다음 2 줄을 추가한다.

사용자 삽입 이미지

character-set-server = utf8
collation-server = utf8_general_ci

 

*Fine Tuning 의 max_allowed_packet 을 256M 로 변경
(DB한 행의 데이터 크기 제한이라고 보시면 됩니다)

사용자 삽입 이미지

[mysqldump]에도
max_allowed_packet 을 256M으로

변경사항저장

#restart mysql

9) PHP 권한 설정

웹 서비스 구동시 발생할 수 있는 Nobody 퍼미션 관련 문제를 해결하기 위해 관련 프로그램을 설치한다.
이 세팅을 하면 shell의 권한과 ftp의 권한과 web의 권한이 동일하게 취급되며 보안도 좋게된다.
자세한 설명은 https://lael.be/188 를 참조하도록 하고 여기서는 명령어만 나열한다.
순서대로 쓰면 된다.
#apt-get install apache2-mpm-itk
#chmod 711 /home
#chmod -R 700 /home/*

+) 업로드시 기본 권한 설정
리눅스에서 기본적으로 파일 업로드시 지정되는 권한은
파일 : 755, 폴더 : 644 이다.

이것을 변경해 보자.
#vi /etc/profile
해당 파일의 최하단에
umask 077
TMOUT=1800
추가

사용자 삽입 이미지

umask는 권한 설정 계산 값인데 모든 권한을 주는 777 에서 이 값을 뺀 것이 권한지정된다.
즉 umask 077 의 계산법은 [777 – 077] 이 되며 700이 결과가 된다.

파일생성시 기본권한 : 700
TMOUT은 자동로그아웃(time out) 기능이다. TMOUT=1800 이면 아무 명령을 안내리고 1800초동안 가만히 있으면 자동으로 로그아웃된다.
보안 향상에 좋다.
만약 1800초(30분)이 너무 길다면 TMOUT=600  (10분)으로 하고,
너무 짧다면 TMOUT=3600 (1시간) 또는 TMOUT=36000 (10시간) 으로 변경하세요.

10) 계정생성 및 동작테스트

원래 표준명령어는 useradd 이지만    ubuntu는 사용하기 좋게 adduser 를 지원한다.
리눅스 관련 서적을 보면 둘다 계정생성용 명령어라고 되어있다.
쉬운 설정을 위해 adduser를 사용

#adduser lael.be –force-badname

(참고로 위와 반대동작을 하는 계정삭제 명령어는
#userdel -r lael.be
입니다.)
보통 웹루트는 홈디렉토리에 하지 않습니다.
저는 주로 www 디렉토리를 사용합니다.사용자변경 후 www 디렉토리를 생성하고 빠져나오기
#su -l lael.be
#mkdir www
#exit

11) 웹사이트 정보 환경설정파일 작성

다음의 내용을 작성한다.

#11.11.03 샘플파일 추가.

다음의 파일을 다운받아서 알맞게 수정한 후에

/etc/apache2/sites-available/lael.be 에 저장한다.

<VirtualHost *:80>
#연결될 도메인을 설정합니다. (main domain)
ServerName lael.be
#다중도메인 설정을 합니다. 서브도메인 및 전혀다른 도메인도 가능합니다. 여러줄 써도 됨(additional domain)
ServerAlias www.lael.be
ServerAlias my-anotherdomain.com

#document Root
DocumentRoot /home/lael.be/www/
#additional setting
< Directory /home/lael.be/www/>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
< /Directory>
AssignUserID lael.be lael.be
< /VirtualHost>ServerAlias 는 사용안하면 빼도 되는 줄이다.

12) 사이트 활성화 및 적용

#a2ensite lael.be
(참고로 사이트 비활성화는
#a2dissite lael.be
입니다.)
- 아파치 설정 다시 불러오기(적용을 위해)
#service apache2 reload


#14.10.16 보안 관련 설정 추가.

1. SSH 포트번호 변경
https://lael.be/285
물론 방화벽을 설정할 수 있다면 굳이 포트번호를 바꿀 필요는 없습니다.
기본 포트번호인 22번을 다른 번호로 바꿉니다. 기억하기 쉬운 숫자로 변경하세요.
이것은 보안향상에 크게 도움이 됩니다. (무작위 대입 프로그램으로부터 보호됨)2. PHP 명령어 제한
의도하지 않게 사이트가 뚫릴 수 있습니다.
웹쉘이 업로드 된다던가 잘못된 웹프로그램을 실행시킨다던가..그것을 막아주는 겁니다.1] php.ini 설정파일 편집
편집이 어려우면 FTP로 php.ini 를 다운받은 후 업로드 하세요.
#vi /etc/php5/apache2/php.ini
2] disable_functions 항목 변경
대략 315번째줄 (줄번호는 다를 수 있음) 에서

사용자 삽입 이미지

기존의 disable_functions을 주석처리하고 (앞에 ; 붙이면 주석처리됨)

disable_functions = “pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd, eval, exec, fp, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, passthru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode”

바로 아래에 넣으세요.

만약 당신의 프로그램에서 위의 명령어중 사용하는 것이 있다면 해당 명령어를 지우고 아래의 3, 4번을 진행하면 됩니다.

3] 아파치 재시작
#service apache2 restart
4] 프로그램 테스트

test.php 파일을 생성해서 웹에서 실행해 본다.

<?php
echo exec(“whoami”);
echo ‘done';
?>

에러 나면서 실행이 안되면 정상.

3. Ubuntu 소프트웨어 업데이트

요즘 가끔씩 엄청난 취약점이 발견되곤 하는데….
해당 취약점을 대하는 우리의 자세는 보안패치 하는 것입니다.

1] 최신 소프트웨어 목록 불러오기
#apt-get update

2] 설치되어 있는 프로그램 최신 버전으로 업데이트
웹서버로 운영중이다면 그냥 아래의 명령어를 쓰시고(별 지장 없음)
기타 게임서버 프로그램이나 자체적으로 운영하는 프로그램이 있다면 끄고 실행하세요.
#apt-get upgrade

 


 

기타 ) #141105 추가. 계정용량 제한하기, 트래픽 제한하기, 속도 제한하기.

1. 트래픽 제한하기 (속도 제한하기)

– 트래픽 무제한의 진실.

간혹 웹서비스 중에 “트래픽 무제한” 이라는 것이 있다. 과연 진짜일까?

놀랍게도 진짜로 무제한이다.

하지만 당신이 생각하는 그 무제한은 아니다.

속도제한 이라는 놀라운 함정이 있다.

 

전송 속도 제한을 1MB/s (1초당 1MB를 전송)로 해둔다고 하자.

당신은 1시간 내내 FULL로 다운로드를 받아도 3600MB를 받을 수 있다. (약 3.6GB)

하루 종일 FULL로 사용해도 86400MB(86GB), 한달 내내 써도 2592000MB(2600GB) 이다.

 

이렇게 따로 트래픽양 제한을 하지 않는다고 해도 [속도제한]으로 인해 최대로 사용할 수 있는 트래픽양이 정해져 있는 것이다.

물론 이렇게 FULL로 사용하면 과부하 사이트로 되어 퇴출 당하게 된다.

 

- 속도 제한 방법

1초에 100번씩 데이터 전송량을 체크한다고 하자.

속도제한을 1MB/s 라고 해 놓았고(1초당 1MB를 전송)

만약 30번(0.3초)동안 1MB 를 이미 전송했다면 남은 70번(0.7초) 동안은 데이터를 전송하지 못하게 막는다. 이렇게 되면 1초당 1MB를 전송하는 셈이다.

사람이 느끼기에는 부드럽게 1초당 1MB씩 전송하는 것처럼 보인다.

컴퓨터가 느끼기에는 데이터가 0.3 초 동안 왕창 왔다가 0.7초 쉬고 또다시 0.3초 전송, 0.7초 휴식하는 것으로 보일 것이다.

 

- 서버를 다운시키는 법

라엘이가 겪었던 일이다. FLV 플래시 비디오를 업로드하고 빠른 속도를 제공했었다.

그런데 수십명이 동시접속을 해서 FLV 플래시 비디오를 재생하니 서버가 다운이 된 것이다.

이처럼 동영상이나 대용량 파일을 서비스 하면서 속도제한을 걸지 않으면 서버가 다운될 것이다.

 

- DDOS 방어 방법중에 하나가 속도제한을 거는 것이다.

속도를 느리게 맞추면, 예를들어 10개의 동시요청으로 다운되는 서버가 1000개의 요청을해야 다운이 된다.

 

- 전송량 제한이 가능하면 속도 제한도 가능하다. 왜냐하면 둘은 연관되어 있기 때문이다.

 

2. 트래픽 제한(속도 제한) 모듈 설치 및 사용 방법

— Ubuntu 12.04 LTS 버전의 경우 설치방법

1] 아파치 확장 개발 라이브러리 다운로드

#apt-get install apache2-prefork-dev

 

2] apache cband module 다운로드

mod-cband-0.9.7.5.tgz

현재 공식사이트가 닫혀있다…

 

위를 클릭해서 다운받도록 하자.

 

 

3] 압축을 풀고 설치

#tar -xzvf mod-cband-0.9.7.5.tgz
#cd mod-cband-0.9.7.5
#./configure
#make
#make install

 

4] 아파치 모듈 켜기

#a2enmod cband

 

5] 적용을 위해서 아파치 재시작

#service apache2 restart

 

6] 설정하기.

https://www.linux.co.kr/home/lecture/?leccode=10588

위의 링크 글을 참조하여 이미 생성해서 사용중인 sites-available 안의 virtualhost 파일을 수정한다.

 

 

용량제한은 quota 프로그램임. 추후 서술.


출처 : http://blog.lael.be/post/73



(안심) 짧은 주소는 : 입니다
?

List of Articles
번호 제목 날짜 조회 수
28 table 테이블, 칸에서 수평, 수직정렬 (align, valign) TABLE의 수평,수직 정렬 테이블에서 정렬시 테이블관련 속성에서 지원하는 align을 사용하도록 하자!!! 새로운 &lt;p align=center&gt; 내용 &lt;/p&gt; 태그를 사용할 필요가... 2017.02.20 527
27 구글 해킹 취약점 2 검색 서비스는 우리들이 접할 수 있는 각종 포털 탈사이트(다음, 야후, 네이버, 엠파스등)에서도 제공해 준다. 하지만 대부분의 이러한 사이트들의 검색엔진은 포... 2015.05.05 27851
26 구글링 해킹 취약점 구글은 정보수집 작업중 꼭 거쳐야 하는 작업으로 삭제를 해도 DB에 저장되어 있는 것이 있기 때문에 검색을 한다면 중요 파일부터, 기밀정보 등을 볼수있다. 구... 2015.04.29 3822
25 국내 오픈 API 자료 부록. 국내 오픈 API 자료해외에서는 이미 1990년대 부터 마이크로소프트, 썬마이크로시스템즈 등 소프트웨어 플랫폼을 이용한 외부 개발자 전도(Developer Evang... 2015.02.12 1162
24 유튜브의 동영상을 검색할 수 있는 API입니다. 유튜브의 동영상을 검색할 수 있는 API입니다. 기본 URL http://gdata.youtube.com/feeds/api/videos 파라메터 q : 검색하고자 하는 검색어입니다. alt : 리턴받... 2015.01.28 2848
23 구글 URL Shortener API 회사에서 앱에 버전정보를 관리하는 툴을 개발하여 사용하고 있습니다. 다운로드 화일에 대한 메일을 보낼수도 있고 URL 복사해서 보낼수도 있고 카톡을 통해 보... 2015.01.26 3938
22 Facebook 에 이미지와 URL을 공유할때 주의해야 할점 Facebook 에 이미지와 URL을 공유할때 주의해야 할점 - 이미지는 200px*200px 이상(470px*246px 권장) - Redirect 는 안하는게 좋음 - Debug 를 하자 https://dev... 2015.01.26 1375
21 페이스북,트위터 meta 관련 함수 정의 요즘 SNS 공유하기 버튼은 필수!~ 그런데 원하는 내용으로 공유가 잘 안되어 골치아프다.. meta태그를 이용하면, 공유하기 연동시 원하는 내용으로 설정할 수 있... 2015.01.26 2170
20 모바일웹 전화걸기 링크 아직 안써보긴 했는데. 조만간 쓸일 이 있을거 같아서 자료를 찾아봤다. 모바일웹 제작시 전화걸기 링크. 터치하면 전화걸기 &lt;a href = &quot;tel:02-3395-0000&quot;&gt;3395-... 2015.01.14 2541
» 한번에 끝내는 Ubuntu 웹서버세팅 (우분투 서버세팅) 다시 요약해서 최신에 맞게 작성해 봅니다. 최종수정 : 2014-10-16 현재 배포된 Ubuntu 버전은 아래와 같습니다. 운영체제의 수명이 긴 LTS 버전을 설치하도록 합... 2014.12.11 3020
18 웹접속 브라우저 정보 가져오기 &lt;?function check_agent() { global $HTTP_SERVER_VARS; /*----------------------------------------------------------------- OS Pattern 'keyword' =&gt; 'name'... 2014.11.14 1200
17 지도 링크 주소 형식 빨간색 부분은 변경 가능한 부분. 네이버 지도http://maps.naver.com/?menu=location&amp;mapMode=0&amp;lat=37.5702182&amp;lng=126.9792156&amp;dlevel=14&amp;... 2014.11.11 5256
16 $_SERVER [ ] 값 $_SERVER['DOCUMENT_ROOT'] = 현재 사이트가 위치한 서버상의 위치 =&gt; /webapp/include $_SERVER['HTTP_ACCEPT_ENCODING'] = 인코딩 받식 =&gt; gzip, deflate $_SER... 2014.11.06 874
15 유튜브 동영상 다운로드 받는 간편한 방법 유튜브에서 동영상을 보다 보면 다운로드 받고 싶어질 때가 있다. 유튜브 동영상을 다운로드 받는 방법은 다양하게 있겠지만, 지금까지 본 방법 중 가장 쉬운 방... 2014.10.17 1795
14 [팁] 페이스북 동영상 간단히 다운로드 받는 방법 페이스북에 올라와 있는 동영상을 보다 보면 다운로드 받고 싶은 생각이 들 때가 있다. 그러나 페이스북 동영상은 바로 다운 받을 수 없게 되어 있다. 간단하게 ... 2014.10.17 2580
13 웹사이트를 통째로 다운로드 할 수 있는 툴 Website Copier 또는 Offline Browser 로 불리우는 3가지 무료 유틸리티를 소개합니다. 소스 코드까지 공개 되어 있는 오픈 소스 소프트웨어 HTTrack 과 Free Dow... 2014.09.18 12914
12 카카오스토리 웹연동 &lt;!doctype HTML&gt; &lt; html&gt; &lt; head&gt; &lt; meta charset=&quot;utf-8&quot;&gt; &lt; meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot; /&gt; &lt; title&gt;Login Demo - Kakao Javascript ... 2014.08.20 7653
11 카카오링크, 스토리링크, 마이피플 보내기 정보 커피는막심 님 소스를 이용해서 만들어 보았습니다. http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&amp;wr_id=26976&amp;sca=&amp;sfl=wr_subject%7C%7Cwr... 2014.05.03 6442
10 php 내장함수 PHP내장함수는 다음과 같습니다. 내용이 길지만 참고하시길... *time() -용도: 현재 시각을 timestamp값으로 구한다. -방법: time() *date() -용도: 사용자가 지... 2014.03.07 2587
9 두개의 전화번호 구성 알아내기 DB이전시 전화번호가 2가지 종류로 뒤섞여 있어 하나 구성해 봤습니다. ex ) 02-1111-2222 0211112222 위와 같이 뒤섞여 있는 데이터 입니다. 참고하시고 더 좋은... 2014.03.04 2929
Board Pagination Prev 1 2 Next
/ 2

전체 방문자 : 1,166,353 오늘 : 43 어제 : 169 문서 : 0 댓글 : 0
전체회원 : 0 엮인글 : 0 첨부파일 : 0 전체 페이지뷰 : 11,257,451 오늘 페이지뷰 : 269 어제 페이지뷰 : 551
Copyright by Myceo 2008 All rights reserved
수원시 팔달구 인계동 1017-3 2층
☏1600-0324

Made By Myceo

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소