평소에 서버를 가지고 노는걸 좋아하는것도 있지만 아직 배우는 입장이다보니 이것저것 보고는 있는데
간혹 정확하지 않거나 하는 글들이 있어서 애먹은 적이 한두번이 아니다..
그래서 조금씩 정리해보려 한다.
우선 리눅스OS가 세팅되어있다는 가정하에 이 글을 시작할 생각이다.
이번 서버세팅을 위해 사용하는 프로그램은 아래와 같다
( 터미널 ) : Putty
( FTP ) 파일질라
1. APM ( Apache + PHP + Mysql ) 을 설치한다.
아파치, MYSQL , PHP을 순서대로 APM을 설치한다.
이유는 아마 아파치가 주 모듈이기에 먼저 설치하고 MYSQL이 있어야 PHP에 물릴 수 있어서 인가?
그렇다면 PHP먼저 하면 안되나.. 순서만 다르게..
나중에 해봐야겠다.
※ ( 2016.03.07 추가)
따로 순서를 바꿔도 문제가 없는듯 하다, 왜냐면 어짜피 따로 별개로 실행할 것도 아니고, 순차적으로 실행 할 것이기 때문에 설치를 바꾸더래도 실행순서에 따라 차이가 있나보다.
각각 입력해야 하는 명령어는 다음과 같다.
- 아파치 설치
yum install -y install httpd ( 아파치)
- MYSQL설치
yum install -y install mysql (MYSQL)
- PHP설치
yum install -y install php (PHP)
여기서 잠깐 말을 붙이자면 yum이 기본적으로 사용이 가능해야하고, yum install 에서 붙는 -y는 나중에 Y를 누르기 귀찮기 떄문에 미리 Accept를 하기 위해 -y를 붙였다.
APM설치가 끝났다면 이제 APM관련 라이브러리를 설치해야한다.
APM만 설치해서 웹서비스를 시작할 줄 알았다면 진작에 집어치워라.
2. APM관련 라이브러리를 설치한다
각 실행하야 하는 명령어는 다음과 같다.
yum -y install gd gd-devel
yum -y install libpng libpng-devel
yum -y install libjpeg libjpeg-devel
yum -y install freetype freetype-devel
yum -y install fontconfig fontconfig-devel
yum -y install libxml2 libxml2-devel
yum -y install openssl openssl-devel
yum -y install gmp gmp-devel
yum -y install mhash mhash-devel
yum -y install libmcrypt libmcrypt-devel
yum -y install mysql-server
yum -y install php-mysql
yum -y install php-devel
yum -y install php-gd
yum -y install php-mbstring
yum -y install php-mhash
저걸 하나하나씩 하는것도 좋은 방법이지만, 저걸 다 띄워서 한번에 입력하면 순차적으로 설치된다.
그냥 본인 취향대로 쓰는것도 나쁘지 않다.
라이브러리를 모두 정상적으로 설치했다면, 이제 아파치 관련은 끝이 났고, MYSQL쪽을 좀 더 해야한다.
3. MYSQL설정
- MYSQL 설정파일을 설정한다
기본적으로 MYSQL을 설치하면 MYSQL에 어느정도의 메모리를 할당할것인지 설정해야 하는데 그 파일의 경로는"/usr/share/mysql/"의 경로에 위치해 있으며
각 파일의 이름은 이러하다
my-huge.cnf / 1GB이상 메모리를 사용할 수 있거나, 남는 경우
my-large.cnf / 512MB~1GB 이상의 메모리를 사용하거나, 남는경우
my-medium.cnf / 128~256MB 이상의 메모리를 사용하거나, 남는경우
my-small.cnf / 64MB 이상의 메모리를 사용하거나 남는경우
필자는 128GB의 메모리를 사용할 수 있기때문에 huge파일을 사용헀다.
서버 메모리에 맞는 파일을 my.cnf로 바꾸어야 하기 때문에 아래의 명령어를 사용한다.
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
이러면 MYSQL파일 생성은 끝이 났고 이제 기본 DB를 관리하고 권한을 지정해보자
/usr/bin/mysql_install_db --user=mysql
chown -R root /usr/bin/
chgrp -R mysql /usr/bin/
chown -R mysql /usr/bin/mysql
그냥 이러면 끝이 난다.
나도 뭐라고 하고 싶은데 이건 설명하기 귀찮을 뿐더러 더 설명했다간 호구취급 하는거 같아서 하지 않기로 했다.
그리고 콘솔에서도 mysql명령을 사용하고 싶다면
vi ~/.bash_profile
을 입력해서 파일을 연다음
PATH=$PATH:$HOME/bin
이 구문을 찾아서
PATH=$PATH:$HOME/bin:/usr/bin 요로코롬 바꿔주면 된다.
- 부팅시 자동으로 MYSQL을 시작하게 한다.
chkconfig --level 2345 mysqld on
이렇게 하면 재부팅을 해도 MYSQL을 따로 재시작할 필요가 없어진다.
만약 재대로 설정했는지 알고 싶다면
chkconfig --list | grep mysqld
를 입력하면 3306포트에 mysql이 물려있는것을 알 수 있다.
- MYSQLD 시작 및 ROOT계정의 비밀번호를 설정한다
이제 MYSQL을 사용하려면 시작을 해야하고, 시작한다고 다가 아니라 총 관리를 해야하는 ROOT계정의 비밀번호를 설정해야한다.
그리고 이 비밀번호는 절대 잊어버리면 안된다.
나중에 골치아파진다.
우선 MYSQLD시작은 다음과 같다.
service mysqld start
이러면 MYSQLD가 기동될것이다.
그 다음 ROOT계정을 설정 하기 위해서는
/usr/bin/mysqladmin -u root password 패스워드
의 명령어를 입력하면 설정될것이다.
이렇게 모두 설정한 후 동작 확인을 하려면
netstat -lntp
를 입력한후 3306의 MYSQL을 확인하면 된다.
4. PHP설정
- PHP.CONF의 파일 설정을 하라
PHP의 기본 설정을 해야 하는데, 이 파일의 경로는 /etc/httpd/conf.d/php.conf 에 있다
이 파일을 vi에서 수정하려면 vi /etc/httpd/conf.d/php.conf 를 입력해서 콘솔단에서 수정하면 되는데 우리가 수정할 내용은
AddHandler php5-script .php .htm .html
AddType application/x-httpd-php-source .phps .php .htm .html
이렇게 수정해주면 된다.
그러면 PHP는 끝났다.
5. 아파치설정
-httpd.conf의 파일 설정을 하라
아파치의 설정 파일은 /etc/httpd/conf/httpd.conf 에 있는데 필자는 vi를 사랑하기 때문에 (?) 다음의 명령어를 사용했다.
vi /etc/httpd/conf/httpd.conf
그 다음 아래의 항목을 본인에 맞게 수정하면 된다.
ServerName www.example.com:80 -> 주석제거
도메인이 있다면 ServerName www.naver.com:80 이 될것이다.
DirectoryIndex index.html index.html.var => DirectoryIndex index.html index.htm index.php
PHP를 인식하기 위해서 아파치에서는 PHP를 index.php 로 설정해줘야한다.
AddType application/x-gzip .gz .tgz를 찾아서 다음과 같이 구문을 추가해준다.
AddType application/x-httpd-php .htm .html .php .php3 .php4 .inc
AddType application/x-httpd-php-source .phps
AddHandler cgi-script .cgi 를 찾았다면 이 구문의 주석을 삭제처리해주고..
vi를 :wq 하여 저장후 quit 하면 된다.
- 아파치를 부팅시 자동으로 시작하게 설정하라
아파치는 웹 데몬이기 때문에 재부팅해서 죽으면 안되는 존재이다.
MYSQL도 마찬가지지만..
hkconfig --level 2345 httpd on 를 입력하여 시작 프로그램에 올려주고..
service httpd start를 하여서 서비스를 실행해주면 된다.
그래고 아파치가 잘 올라갔는지 확인하려면
netstat -lntp
를 실행하여
HTTPD, 80 포트에 올라가 있는지 보면 된다.
6. 리눅스의 방화벽을 설정하라
기본적으로 리눅스의 기본정책은 모든 포트를 막기 때문에 SQL포트와 아파치 포트를 열어야 한다.
이번에도 마찬가지로 vi로 수정하려면
vi /etc/sysconfig/iptables
를 입력하여 방화벽 파일을 열어서
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
이 두 구문을 추가 하면 된다.
그리고 방화벽을 재시작 해야 하는데 재시작 하기 위해서는
service iptables restart
를 입력하면 된다
7. 아파치의 기본 index파일의 위치를 알아보자
우리가 여태까지 설명한 APM설치는 yum 설치방법이였다.
따로 뭘 할것 없이 자동으로 설정되기 때문에 기본 HTML의 INDEX파일의 경로는
/var/www/html
에 위치해 하고 있다.
또한 각 도메인별로 혹은 한 서버에 여러개의 IP가 물려 있는 경우
/etc/httpd/conf/httpd.conf
에서 수정을 따로 할 수 있다.
** 제 블로그에 있던 글을 옮겨놨기에.. 익숙하실 수도 있습니다.