한국어

tc_backup

wiki는 버린다. 데이터는 남겨둔다.

ubuntu APM(apache2 php mysql) 설치 방법

기본적인 설치 방법


기본적인 설치 방법

$sudo apt-get install apache2
$sudo apt-get install php5 libapache2-mod-php5
$sudo apt-get install mysql-server
$sudo apt-get install phpmyadmin
$sudo /etc/init.d/apache2 restart

apache2를 설치하고 php5와 php5에 대한 apache2 모듈을 설치하고, mysql-server를 설치한다. phpmyadmin의 경우 사용자의 편의에 따라 설치하지 않아도 되며 mysql-server의 경우 설치 도 중 mysql root의 비밀번호를 설정하게 된다. apaceh2가 가동되면 http://주소/phpmyadmin 으로 phpmyadmin 페이지에 접속할 수 있다.


apache2 설정 경로 디렉토리 설명

/etc/apache2 (apache2 설정 경로)
/etc/apache2/apache2.conf (아파치 설정 파일)
/etc/apache2/mods-available (모듈 설정 파일 경로)
/etc/apache2/mods-enabled (모듈 설정 파일 enabled 경로, mods-available 경로의 실제 모듈 설정 파일을 심볼릭 링크파일로 걸어놓아야 작동됨)
/etc/apache2/conf.d (아파치 conf 파일 경로, charset, phpmyadmin.conf, security)
/etc/apache2/sites-available (site 설정 경로, virtualhost 설정도 여기에 파일로 생성)
/etc/apache2/sites-enabled (site 설정 enabled 경로, sites-available 설정 파일을 심볼릭 링크 파일을 sites-enabled 경로에 만들어놔야 작동됨)


rewrite module load

ubuntu 9.10에서 apt-get install로 apache2를 설치하면 기본적으로 rewrite 모듈이 활성화되어있지 않으므로 load하여 활성화 시켜주어야 rewrite 모듈을 사용 할 수 있다.

$a2enmod rewrite

또는

$ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
$sudo /etc/init.d/apache2 restart

rewrite 모듈 load 확인 방법

$sudo vi /var/www/phpinfo.php
<?php
phpinfo();
?>

브라우저에서 http://주소/phpinfo.php 로 접속하여 apache2handler 항목에서 mod_rewrite가 있는지 확인한다.


도메인 설정하기

예전에 서버 세팅 할 당시에는 Virtualhost를 사용하지 않고, 한 서버에서 default로 한대의 도메인만 설정하여 사용하는 방법으로만 세팅을 해왔었지만, 여러 도메인을 사용하기 위해서는 Virtualhost를 사용하여야 하며 최근에는 기본적으로 한개의 도메인을 사용하여도 virtualhost 방식으로 설정하게끔 되어 있다.

Name-based vs. IP-based Virtual Hosts

IP기반 가상호스트는 연결한 IP 주소를 가지고 서비스할 가상호스트를 결정한다. 그래서 각 호스트는 서로 다른 IP 주소를 가져야 한다. 이름기반 가상호스트의 경우 클라이언트가 HTTP 헤더에 호스트명을 서버으로 전달하여야 한다. 이런 방법으로 한 IP 주소로 여러 다른 호스트를 서비스할 수 있다. 여기서는 한 IP에서 여러 도메인을 사용할 것이므로 이름 기반 호스트를 사용한다.

/etc/apache2/sites-available/ 경로를 보면 기본적으로 default, default-ssl 파일이 존재한다. 해당 파일은 그대로 보관한다. default 파일의 경우 var/www 경로를 Root로 인식하고 도메인이 아닌 IP로 접근하는 경우 해당 페이지를 보여주게 된다. 기본적으로 It’s Work 페이지를 보여주지만, 관리자 메일 주소정도 적어놔도 나쁘지 않다.

도메인별 설정 파일을 생성한다.

$sudo vi /etc/apache2/sites-available/rain9.com
<VirtualHost *:80>
	ServerAdmin darkhi@gmail.com
	DocumentRoot /home/darkhi/http/www
	<Directory /home/darkhi/http/www>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	</Directory>

	ServerName rain9.com
	ServerAlias www.rain9.com

	ErrorLog /var/log/apache2/rain9.com-error_log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/rain9.com-access_log common

</VirtualHost>
$sudo vi /etc/apache2/sites-available/wiki.rain9.com
<VirtualHost *:80>
	ServerAdmin darkhi@gmail.com
	DocumentRoot /home/darkhi/http/wiki
	<Directory /home/darkhi/http/wiki>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	</Directory>

	ServerName wiki.rain9.com
	ServerAlias www.wiki.rain9.com

	ErrorLog /var/log/apache2/wiki.rain9.com-error_log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/wiki.rain9.com-access_log common

</VirtualHost>
$a2ensite rain9.com
$a2ensite wiki.rain9.com

apache2 재시작

$sudo /etc/init.d/apache2 restart

심볼릭 링크(Symbolic Link) 파일 만들기

ln -s 원본파일경로 심볼릭링크파일명(ex:ln -s /etc/apache2/sites-available/rain9.com rain9.com)

a2ensite 사용법 : a2ensite rain9.com /etc/apache2/sites-available 경로에 있는 rain9.com 설정 파일에 대한 심볼릭 링크파일을 /etc/apache2/sites-enabled 경로에 생성한다.

a2dissite 반대로 /etc/apache2/sites-enabled의 심볼릭 링크파일을 제거한다.

a2enmoda2dismod 위와 동일한 기능을 mods-available, mods-enabled 경로로 실행한다.


도메인 ip 설정

사용하는 DNS에서 ip를 해당 서버 ip로 설정해 놓으면 된다.

PHP Accelerators

PHP의 속도 향상을 위해서 다양항 가속 프로그램이 존재한다. Zend Optimizer, APC (Alternative PHP Cache), eAccelerator, XCache, 등의 다양한 가속 프로그램이 존재하며 Zend Optimizer는 과거에 많이 쓰였고, APC는 free이며 PHP6에 default로 들어가게 될 정도로 안정적이며, eAccelerator는 APC보다 빠르지만 APC보다 인정은 덜 받는 상황이며, XCache는 빠르지만(벤치마크를 보니 APC나 eAccelerator보다) Lighttpd에 대하여 최적화되어져 개발되어지고 있는 상황이다. 그러므로 apaceh2를 사용한다면 APC나 eAccelerator를 사용하고, Lighttpd를 쓴다면 XCache를 추천한다. 이는 개인적인 생각이다.


apc 설치

$sudo apt-get install php-apc
$sudo /etc/init.d/apache2 restart

apache2 log 경로

/var/log/apache2/

apache2 작동에 문제가 생겼을 경우 로그 확인을 하여야 한다. 해당 경로로 접근이 가능한지 확인 한 후, 접근이 불가능 할 경우, 디렉토리 소유권을 확인하여야 한다.

root adm 권한으로 되어 있다면, adm 그룹에 현재 유저를 넣어주고 세션을 다시 시작하면 정상적으로 접근이 가능하며, 그룹에 추가 하기 위해서는 아래 명령어를 사용한다.

$usermod -G 그룹 -a 사용자계정명

또는

$sudo vi /etc/group

에서 해당 group에 직접 사용자계정명 추가.

소유권 그룹에 추가하지 않고 직접 파일을 액세스 하는 방법도 있다. 비소유그룹에 대한 권한 설정과 직접 경로 액세스 방법.

$sudo tail -f /var/log/apache2/access.log
$sudo tail -f /var/log/apache2/error.log

발생할 가능성 있는 error

apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

/etc/apache2/httpd.conf 파일은 빈 파일이고, 해당 파일에 ServerName을 추가한다. 꼭 httpd.conf 파일은 아니어도 된다.

$sudo vi /etc/apache2/httpd.conf

ServerName 127.0.0.1

127.0.0.1 대신 localhost 일 수 도 있고, loopback이 아닌 IP라면 /etc/hosts에 기록된 서버의 hosts명을 적어도 된다. 본인은 IP로 나와서 호스트명을 적었다.


apache2.conf 파일

ServerRoot "/etc/apache2"
# 서버의 Root 디렉토리 지정

LockFile /var/lock/apache2/accept.lock
# 아파치 LockFile의 경로 지정을 위한 설정. 동기화(Serialize)와 관련됨.

PidFile ${APACHE_PID_FILE}
# apache2 시작될 때 자신의 프로세스번호를 기록하는 파일

Timeout 300
# 클라이언트와 서버 간에 정보 연결 유지 시간(초단위).
# 페이지 로딩후 다음 페이지 로딩 작업이 300초 내에 이루어지면
# 대기중이던 쓰레드(또는 프로세스)로 처리하게 되고, 300초가 지나면 해당 대기중이던 쓰레드(또는 프로세스)는 다른 일을 하게 됨.

KeepAlive On
# 프로세스가 특정 사용자의 한가지 작업 요청을 처리하고 소멸할 것인지, 아니면 특정 사용자의 다른 요청도 처리할 것인지 결정하는 요소.
# 프로세스 생성과 소멸은 부하가 생기는 작업이므로 작업이 있다면 더 처리하는 것이 효율적이다.

MaxKeepAliveRequests 100
# KeepAlive On일때 유효
# 프로세스가 특정 사용자의 요청을 100번까지 처리하게 되면 해당 자식 프로세스는 소멸하고 다른 프로세스가 100번 이후의 요청을 처리하게 된다.
# 무한적으로 요청을 처리하게 할려면 0으로 설정

KeepAliveTimeout 15
# KeepAlive On일때 유효
# 특정 사용자의 지속적인 요청이 지정된 시간(초단위)안에 없을 경우 연결을 끊는다.

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
# Ifmodule 지시자
# mpm_prefork : 전통적인 처리 방식(프로세스)

# StartServers
# 아파치 데몬이 시작될 때 자식 프로세스 개수 설정
# MinSpareServers, MaxSpareServers
# 유휴상태(Idle) 자식프로세스가 MinSpareServers의 개수보다 적을 경우 추가로 생성하게 되고, 유후(Idle) 자식프로세스가 MaxSpareServers의 개수보다 많을 경우 소멸시킨다.

<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>
# mpm_worker 쓰레드 처리 방식

# StartServers
# 아파치 데몬이 시작될 때 자식 프로세스 개수 설정
# MaxClients 동시 연결 가능한 클라이언트 최대 개수
# MinSpareThreads, MaxSpareThreads
# 유후상태(Idle) 쓰레드가 MinSpareThreads의 개수보다 적을 경우 추가로 생성하게 되고, 유후상태(Idle) 쓰레드가 MaxSpareThreads의 개수보다 많을 경우 소멸시킨다.

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
# 아파치 자식 프로세스들의 실행 소유자와 소유 그룹

AccessFileName .htaccess
# 디렉토리 접근 제어 정보 파일 명칭
# Directory 지시자와 관련있음(AllowOverride)

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>
# .htaccess 파일 접근

DefaultType text/plain
# 정의되어있지 않은 파일 형식에 대한 요청을 받았을 때 응답 방법 mime type으로 설정

HostnameLookups Off
# Off일때는 로그에 방문자의 IP로 기록, On일때 방문자의 IP에 해당하는 도메인을 DNS에 조회하여 있을 경우 도메인으로 기록, 해당 도메인이 없는 경우에는 IP로 기록
# DNS 조회는 속도와 관련이 있으므로 Off

ErrorLog /var/log/apache2/error.log
# apache2 서버 에러 로그 파일 위치

LogLevel warn
# 에러 로그 기록 레벨 결정
# emerg가 가장 적은 양의 로그, debug가 가장 많은 양의 로그를 남기게 된다.
# default 권장은 notice or warn이며 warn을 추천.
# emerg : 최상위, 매우위험한 상황의 메시지, 전체공지가 요구되는 메시지, 매우 위급한 상황, 시스템을 사용할 수 없는 상황
# alert : 즉각적인 조치를 취해야하는 상황의 메시지로 즉시 행동이 취해져야하는 상황
# crit : 급한 상황은 아니지만 치명적인 시스템문제발생 상황 메시지
# error : 에러가 발생한 상황의 메시지
# warn : 주의를 요하는 메시지
# notice : 에러가 아닌 알림에 관한 메시지
# info : 단순한 프로그램에 대한 정보 및 통계관련 메시지
# debug : 최하위로 디버깅 관련 메시지

Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

Include /etc/apache2/httpd.conf

Include /etc/apache2/ports.conf

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# CustomLog 지시자에서 사용할 로그 형식
# %h 호스트명
# %l 리모트 로그 이름
# %u 사용자 인증에 사용된 유저명
# %t 시간
# %r 요청한 내용의 첫 번째 줄
# %s 서버 상태
# %b 전송량 (헤더 포함)
# %{헤더} 요구된 헤더 내용
# %U 요구한 URL

CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined
# common : 공통 로그 형식
# Combined : 결합된 로그 형식

Include /etc/apache2/conf.d/

Include /etc/apache2/sites-enabled/

VirtualHost 설정 설명

ServerAdmin : 해당 가상호스트의 관리자 메일 주소
DocumentRoot : 해당 가상 호스트의 홈디렉토리위치 지정
ServerName : 해당 가상 호스트의 도메인명
ServerAlias : ServerName에 지정한 도메인에 대한 별칭 지정
ErrorLog : 에러로그 파일의 위치 지정
CustomLog : 로그 파일의 위치 지정


참조 사이트

로그형식 http://bluebreeze.textcube.com/176
이름 기반 호스트 http://httpd.apache.org/docs/2.2/vhosts/name-based.html
Apache HTTP Server Version 2.2 문서 http://httpd.apache.org/docs/2.2/ko/
SULINUX를 웹서버로 사용하기 1편 http://blog.daum.net/stock-chart/129
Ubuntu Server Guide > HTTPD – Apache2 Web Server https://help.ubuntu.com/9.10/serverguide/C/httpd.html
PHP Accelerators http://www.ducea.com/2006/10/30/php-accelerators/

조회 수 :
17617
등록일 :
2012.06.11
22:52:02 (*.234.246.12)
엮인글 :
http://www.rain9.com/xe/tc_backup/4009/cbf/trackback
게시글 주소 :
http://www.rain9.com/xe/tc_backup/4009
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜
180 Programming Tomcat 5.5.27 설치 엔신 18150   2009-05-28
서블릿과 JSP를 다루기 위해 웹서버인 Tomcat을 설치하여야 한다. 윈도우 기준으로 설명한다. 1. 다운로드 톰캣 사이트에서 Tomcat 5.5.27을 다운로드 받을수 있다. 톰캣을 설치하기 위해서는 JRE 또는 JDK가 설치되어 있어야 한다. 설치형이 아니므로 C드라이...  
179 DBMS show variables 변경하기 5.0 기준 서버 변수 변경하기 엔신 18042   2008-03-21
Variable Name Value Type Type autocommit boolean SESSION big_tables boolean SESSION binlog_cache_size numeric GLOBAL bulk_insert_buffer_size numeric GLOBAL | SESSION character_set_client string GLOBAL | SESSION character_set_connection stri...  
178 쉘 계정 제한하기 엔신 17736   2013-07-02
ssht라는 계정에 제한을 걸어서 쉘 접속은 가능하되 임의의 행동을 하지 못하도록 제한 mkdir /usr/ssht_rbin ln /bin/ls /usr/ssht_rbin ln /bin/date /usr/ssht_rbin ln /usr/bin/vi /usr/ssht_rbin ln /bin/cat /usr/ssht_rbin ln /usr/bin/rz /usr/ssht_rb...  
» ubuntu APM(apache2 php mysql) 설치 방법 엔신 17617   2012-06-11
wiki는 버린다. 데이터는 남겨둔다. ubuntu APM(apache2 php mysql) 설치 방법기본적인 설치 방법 기본적인 설치 방법$sudo apt-get install apache2 $sudo apt-get install php5 libapache2-mod-php5 $sudo apt-get install mysql-server $sudo apt-get insta...  
176 Security Kismet.conf 설정 [2] file 엔신 17128   2009-05-26
 
175 Linux 리눅스_커널(The_Linux_Kernel_한글번역판).pdf 엔신 17038   2007-01-31
리눅스 커널 한글 번역판 오른쪽 버튼 눌러서 다른이름으로 저장 http://home.megapass.co.kr/~darkhi/리눅스_커널(The_Linux_Kernel_한글번역판).pdf  
174 Linux CentOS (Redhat Enterprise)에서 lighttpd 설치 엔신 16902   2008-04-06
UNIX 2007/01/26 00:14 이번에 회사에서 새 서버들을 구매해서 IDC에 들어왔습니다. Dell PowerEdge SC1435로 AMD기반 옵테론 CPU라서 FreeBSD보다는 Linux가 좋을거 같더군요. 전에도 델서버 들어왔었는데 FreeBSD에서 네트워크 디바이스가 정상적으로 동작을...  
173 ETC 의자 파손 ㅜㅜ file 엔신 16666   2010-01-08
 
172 [iphone] decrypt 도구 file 엔신 16587   2012-06-11
 
171 Ambiguous 싸이월드 창 닫힘(닫히는, 꺼지는, 꺼짐) 현상 해결 [1] 엔신 16459   2007-03-06
컴퓨터 새로 사고 윈도우를 최적화 시디로 깔았더니 쾌적한 환경을 구축해줬다 그러나, 싸이월드에서 사진 올리기,기타 등등 에서 익스플로러 창이 다 꺼지는 현상이 발생하였다 바탕화면에 오류 메시지 파일이 생겼는데 거기엔 JVM 오류라고 다시 설치하라고 ...  
170 Ambiguous MBR 디스크와 GPT 디스크 엔신 16443   2008-06-20
윈도즈 비스타에서는 MBR 디스크와 GPT 디스크라는 2가지 파티션 테이블 스키마(partition table Scheme)가 제공된다. 이는 일반 사용자들도 지금보다 한층 고용량화된 하드디스크를 사용하게 될 것을 대비, 2,000Gbyte(2Tbyte) 이상 용량의 하드디스크를 자...  
169 ETC [시외버스] 부천, 안양 <-> 속초,양양 시간표 [1] file 엔신 16397   2009-01-16
 
168 Linux 사이트 비밀번호 입력하기 엔신 15697   2008-05-02
노출이 되서는 안되는 페이지라면 아래 php 구문으로 비밀번호를 입력하게끔 설정한다. 소스에서 가장 상단에 php 내용 삽입해주면 된다.(존재한다면 사이에 넣어주면됨) 로그인하는 페이지라면 상단에 삽입하여 서로 다른 아이디와 비밀번호로 이중 비밀번호...  
167 charset configuration 엔신 15684   2013-04-01
# charset configuration file for DistrRTgen v3.2 by Martin Westergaard (martinwj2005@gmail.com) byte = [] alpha = [ABCDEFGHIJKLMNOPQRSTUVWXYZ] alpha-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ ] alpha-numeric = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]...  
166 VoIP VoIP DTMF(Dual Tone Multi-Frequency) file 엔신 15676   2010-04-11
 
165 Incident Response Dcode - Forensic Date/Time Decoder file 엔신 15543   2009-04-05
 
164 Ambiguous USB용 Putty(ssh, telnet 클라이언트) 엔신 15532   2006-11-15
ssh, telnet 클라이언트인 Putty의 포터블용(USB) 버전입니다. 설정 내용이 레지스트리에 저장되지 않고 파일로 저장되도록 수정되어서, USB에 넣고 다니기에 편하도록 만들어진 버전입니다. PortaPuTTY - Portable Putty for USB http://socialistsushi.com/p...  
163 Linux fedora linux 리눅스에서 텔넷(SSH) 한글 깨질 때 [2] 엔신 15406   2008-02-16
SSH로 접속했을 때 한글이 깨져 나온다면.... /etc/sysconfig/i18n 파일을 보시면 SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR:ko" SYSFONT="latarcyrheb-sun16" 이런식으로 있을텐데 이것을 다음과 같이 고치면 됩니다. LANG="ko_KR.eucKR" SUPPORTED...  
162 Windows 윈도우XP 시디키 바꾸기 엔신 15285   2007-12-14
시작 > 실행 > regedit 입력 HKey_Local_Machine\Software\Microsoft\WindowsNT\ CurrentVersion\WPAEvents\oobetimer 더블클릭 후 나오는 값을 전체 삭제후 종료 시작 > 실행 > oobe/msoobe /a 입력 제품인증 뜨면 2번째 전화로 인증하는거 누르면 나오는데 ...  
161 CCNA 비스타에서 ahci 모드 작동시키기(965P-DS3) file 엔신 15257   2008-06-01