우분투 12.04 LTS 웹 서버 구축하기

Posted at 2012.05.20 14:07 | Posted in 컴퓨터 이야기

계정 생성

일단, 웹서버에서 계정을 정리할 폴더를 만들고 계정을 생성합시다.

sudo mkdir /home/sites
sudo useradd -b /home/sites -s /bin/bash -m 사용자아이디
sudo passwd 사용자아이디
-비밀번호 입력

vsftpd 설치

다음, 외부에서 서버에 ftp로 접속할 수 있도록 운영체제에 맞는 vsftpd를 설치합시다. 운영체제가 32비트라면 amd64를 i386으로 바꿔입력하세요

wget http://ftp.daum.net/ubuntu/pool/main/v/vsftpd/vsftpd_2.3.2-3ubuntu5.1_amd64.deb
sudo dpkg -i vsftpd*
echo "vsftpd hold" | sudo dpkg --set-selections

vsftpd를 저장소에서 바로 설치하지 않고 버전 지정을 해준 이유가 2.3.5버전 이상의 vsftpd는 chroot_local_user옵션 활성화시 500 chmod()에러를 뿜으면서 접속이 안되기 때문입니다. 뾰족한 해결방안이 나오지 않아서 구버전 사용합니다.
/etc/vsftpd.conf를 열어 다음처럼 수정합니다.

sudo vi /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES

mysql 설치

이제, 웹서버에 데이터를 저장하고 읽을 수 있게 mysql 데이터베이스 서버를 설치합시다.

sudo apt-get install mysql-server mysql-client

설치 도중에 비밀번호를 물어보는데, 비밀번호를 까먹었을 때 여기에서 나오는 것처럼 바꿀 수 있습니다.
/etc/mysql/my.cnf를 열어 다음을 추가합니다.

sudo vi /etc/mysql/my.cnf
[client]
...
default-character-set = utf8

[mysqld]
...
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
innodb_autoinc_lock_mode = 0

[mysqldump]
...
default-character-set = utf8

[mysql]
...
default-character-set = utf8

php 설치

다음은 거의 모든 웹서버에서 사용하는 PHP를 설치할 차례입니다. 어떤 패키지가 있는지 확인한 후 골라서 설치합시다.(php5-fpm은 필수입니다.)

sudo apt-cache search php5

저는 이 정도만 있어도 충분하네요.

sudo apt-get install php5-fpm php5-mysql php5-memcache php5-gd php5-curl

/etc/php5/fpm/php.ini를 열어 다음을 수정합니다.

sudo vi /etc/php5/fpm/php.ini
default_charset = "utf-8"
error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
display_errors = On
log_errors = Off
html_errors = On
variables_order = "EGPCS"
allow_url_fopen = Off

nginx 설치

필요한 패키지 설치는 다 끝난 것 같으니 웹서버의 본체인 NGiNX를 설치합시다.

sudo apt-get install nginx

/etc/nginx/sites-available/에 존재하는 사이트 설정파일에서, php를 연동시킬 서버 블럭을 찾아 다음을 추가합니다.

sudo vi /etc/nginx/sites-available/default
server {
	...
	index index.php index.html index.htm;
	...
	root 웹 서버 루트 절대 경로;
	...
	location ~* \.php$ {
		try_files $uri =404;
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_read_timeout 120;
		fastcgi_index index.php;
		fastcgi_intercept_errors on;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include /etc/nginx/fastcgi_params;
	}
	...
}

설정 적용

간단하게 Nginx, PHP5-fpm, MySQL을 기본으로하는 웹서버를 구축했습니다. 마지막으로 남은 일이 있는데, 두가지 방법이 있으니 편한방법 골라서 하세요.

sudo reboot
sudo service vsftpd restart && sudo service mysql restart && sudo service php5-fpm restart && sudo service nginx restart
저작자 표시 비영리
신고

Name __

Password __

Link (Your Website)

Comment