펌 주소 : http://jongkwang.com/?p=566 (원본)

                원본을 참조하는게 좋습니다. ^^

 

가상서버 호스팅(Linux CentOS 6.3) 기본셋팅 로그

프로젝트 마다 SE 직군 분들이 해주시던 작업인데,
직접 하려니 쉽지 않은 작업이네요.
기록을 위해 정리를 해둡니다.

주의사항

  • Linux 를 정말 못하는 프로그래머가 작업을 했습니다.
  • 따라서, 맞지 않은 부분도 많이 있습니다. Comment 해주시면 감사하겠습니다.

Linux Version 확인

1
2
3
4
5
[root@jongkwang /root]# cat /etc/*release*
CentOS release 6.3 (Final)
CentOS release 6.3 (Final)
CentOS release 6.3 (Final)
cpe:/o:centos:linux:6:GA

OS 64bit 확인

1
getconf LONG_BIT

Prompt 절대 경로 표시

1
2
3
vi /etc/bashrc
PS1="[\u@\h \\] 이부분 찾아서
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \$PWD]\\$ "

서버명 변경

1
2
vi /etc/sysconfig/network
HOSTNAME=localhost.localdomain // 이부분을 수정 한다.

yum 속도 향상

  • yum-fastestmirror 설치하여 ping 이 빠른 서버 자동으로 찾기
    • 설치여부 확인 :
      1
      yum list installed | grep fastestmirror
    • 설치하기 :
      1
      yum -y install yum-plugin-fastestmirror yum-fastestmirror
  • ftp.daum.net 을 yum repository 에 설정하면 빨라진다.
    • (CentOS 6.3 에서의 설정 방법을 찾지 못함. 아시는 분은 Comment 부탁드립니다.)

기본 설치

1
yum install gcc-c++

Java Version 1.5 –> 1.6 Upgrade

1
2
3
yum remove java-1.5.*
yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel
java -version

Apache 설치

  •  설치 여부 확인 :
    1
    yum list installed | grep http
  • 설치:
    1
    yum install httpd httpd-devel
  • 설치여부 확인1 : 
    1
    yum list installed | grep http
  • 설치여부 확인2 (:80포트가 있어야 한다.) :
    1
    netstat -lntp

setup 설치 (방화벽 설정을 위함)

1
2
3
yum install setup
yum install setuptool
yum install system-config-securitylevel-tui

방화벽 셋팅

1
setup

방화벽 설정 반영

1
/etc/init.d/iptables restart

Apache DocumentRoot

  • Document Root 위치 : grep -i ‘DocumentRoot’ /etc/httpd/conf/httpd.conf
  • DocumentRoot : /var/www/html

Tomcat6 설치

1
yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps

Tomcat6 Repository를 찾지 못해 설치를 못한 경우

1
2
3
4
5
cd /etc/yum.repos.d
yum update
yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps
service tomcat6 start

Tomcat URIEncoding

vi server.xml

1
<Connector port="8080" ...중략... URIEncoding="UTF-8"/>

Tomcat6 실행 및 실행 확인

1
2
service tomcat6 start
netstat -ant | grep 8080

Service 에 Apache 와 Tomcat6 등록하여 부팅 시 자동실행 설정 : Setup 명령에서 서비스 등록한다. + 8080방화벽 Open

Apache VirtualHost 설정

1
2
3
4
5
6
7
8
9
10
11
12
vi /etc/httpd/conf/httpd.conf
 
<VirtualHost *:80>
    ServerAdmin ???@jongkwang.com
    DocumentRoot /home/www/????.sencha.or.kr
    ServerName ????.sencha.or.kr
    ServerAlias ????.sencha.or.kr
    JkMount /*.jsp ajp13
    JkMount /servlet/* ajp13
    ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/????.sencha.or.kr-error_%Y%m%d.log 86400 +540"
    CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/????.sencha.or.kr-access_%Y%m%d.log 86400 +540" common
</VirtualHost>

MySQL 설치

1
2
3
4
yum install mysql mysql-server
(Service 에 mysqld 등록 (setup 이용))
service mysqld start
mysqladmin -u root password XXXX

mysql 한글설정(UTF-8) – http://blog.daum.net/2734/47

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vi /etc/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"
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
 
[mysqldump]
default-character-set=utf8
 
[mysql]
default-character-set=utf8

MySQL Backup & Restore

1
2
Backup : mysqldump --opt --host=localhost --user=root --password=XXXX --all-databases > /tmp/backup/MySql_DailyBackup.sql
Restore : mysql -uroot -pXXXX < MySql_DailyBackup.sql

php 설치 및 Apache 연동
(출처 : http://iniciel.blogspot.kr/2009/06/php-%EC%99%80-apache-%EC%97%B0%EB%8F%99.html )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/usr/local/apache2/modules 디렉토리로 이동해 보면 libphp5.so 란 파일이 있을 것이다. 없으면 연동 안된다. 인스톨 다시 할 것
yum install php (5.3 버전 확인 필요)
httpd.conf 파일을 보면
LoadModule 라는 부분이 있을 것이다.
다음을 추가한다.
LoadModule php5_module modules/libphp5.so
또 AddType 부분에 가서
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
위의 라인을 추가한다.
DirectoryIndex 부분을 찾아서 index.php 와 index.phtml을 추가한다.
끝났으면 test.php 라는 파일을 아래와 같이 작성하고
<!--?php phpinfo(); ?-->
브라우저에서 php 설정 정보에 관한 테이블이 나오면 성공한 것이다.
※ chcon -t texrel_shlib_t /usr/local/apache/modules/libphp5.so : 모듈 권한이 없을경우엔 이와같은 설정을 해주면 된다.
chcon -t texrel_shlib_t /usr/local/apache/modules/libphp5.so

phpmyadmin 설치

1
2
3
4
yum update
yum install php-mcrypt
yum install phpmyadmin

vi /usr/share/phpMyAdmin/config.inc.php ==> cookie 를 http 로 변경

1
$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?

vi /etc/httpd/conf.d/phpMyAdmin.conf 에서 아래 부분 주석처리

1
2
3
4
5
10 #
11 # order deny,allow
12 # deny from all
13 # allow from 127.0.0.1
14 #

mod_jk 설치

1
2
3
4
5
6
7
8
9
tar xvfz tomcat*
cd tomcat*
cd native
./configure -with-apxs=/usr/sbin/apxs
make
make install
 
# "make install" 하면 /etc/httpd/modules/mod_jk.so 파일이 생성된다.

mod_jk 와 Apache 연동

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
32
33
34
# mod_jk.so 위치 확인
ls /etc/httpd/modules/mod_jk.so
 
# workers.properties 생성
vi /etc/httpd/conf/workers.properties
workers.tomcat_home="/home/tomcat6"
workers.java_home="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64"
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.lbfactor=1
worker.ajp13.type=ajp13
 
# mod_jk.conf 생성
vi /etc/httpd/conf/mod_jk.conf
<IfModule mod_jk.c>
    JkWorkersFile "/etc/httpd/conf/workers.properties"
    JkLogFile "/var/log/tomcat6/mod_jk.log"
    JkLogLevel info
#    JkAutoAlias "/var/lib/tomcat6/webapps"
#    JkMount /* ajp13
#    JkMount /*.jsp ajp13
#    JkMount /servlet/* ajp13
#    JkMount /examples/*.jsp ajp13
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
    JkRequestLogFormat "%w %V %T"
</IfModule>
 
# httpd.conf 에 다음 내용 추가
vi /etc/httpd/conf.httpd.conf
LoadModule jk_module modules/mod_jk.so
include conf/mod_jk.conf

svn 1.7 설치

개인적으로 svn 1.7버전을 선호한다.(보통은 대게 1.6버전을 많이 쓴다.)
svn 설치 시 sqlite 설치를 요구한다.

SQLite 설치

1
2
3
4
5
6
7
## 위 주소는 http://www.sqlite.org/download.html 이곳에서 확인 한다.
tar xvfz sqlite-autoconf-3071700.tar.gz
cd sqlite-autoconf-3071700
./configure --prefix=/usr/local/sqlite3
make
make install

Subversion 1.7 설치

1
2
3
4
5
6
7
8
9
10
yum remove subversion
cd /usr/local/src
tar zxf subversion-1.7.10.tar.gz
cd /usr/local/src/subversion-1.7.10
tar zxf apr-util-1.5.2.tar.gz
tar zxf apr-1.4.6.tar.gz
./configure

Subversion 1.7 설치 &gt apr 에러 발생하면

1
./configure --with-apr=/usr/local/apr-1.4.6 --with-apr-util=/usr/local/apr-util-1.4.1

Subversion 1.7 설치 시 sqlite3.c 관련 에러 발생하면

1
2
3
./configure --with-sqlite=/usr/local/src/sqlite-autoconf-3071700/sqlite3.c
또는
cp sqlite3.c /usr/local/src/subversion-1.7.10/sqlite-amalgamation

Subversion 1.7 설치 시 zlib 관련 에러 발생하면
(참고사이트 : http://clumsyfingers.blogspot.kr/2012/04/installing-subversion-17-on-centos-55.html )

1
2
3
4
5
6
7
8
9
10
11
12
13
wget http://zlib.net/zlib-1.2.7.tar.gz #version may have changed, check site
tar xvf zlib-1.2.7.tar.gz
mv zlib-1.2.7 zlib
cd zlib
./configure --shared
make
make install
cd ..
./configure CPPFLAGS="-Izlib/ -Lzlib/"
make
make install
 
/usr/local/bin/svn --version

SVN Repository 생성

1
svnadmin create --fs-type fsfs /home/svn/repos

subversion 이 재부팅 시 자동으로 실행 되지 않는 경우

보통의 경우 service로 등록되어 자동실행 되지만
그렇지 않은 경우 아래와 같은 방법을 이용 할 수 있다.
(사실 service 등록하는 방법보다 훨씬 간편하다.)
/etc/rc.d/rc.local 파일에 아래와 같은 내용 추가

1
2
# SVN Server
/usr/local/bin/svnserve -d -r /home/svnrepository

SFTP만 접속 가능한 계정 생성

1
2
3
4
5
6
7
8
$ vi /bin/sftp-only
 
#!/bin/sh
if [ "$*" != "-c /usr/libexec/openssh/sftp-server" ]; then
 echo "Sorry, ssh access not allowd.";
 exit;
fi;
exec /usr/libexec/openssh/sftp-server

이와 같이 스크립트 작성 후 계정의 로그인쉘로 지정한다.
(물론 실행 권한은 줘야 한다.)

1
adduser 아이디 -d /홈경로/ -g 그룹명 -s /bin/sftp-only