시작하기전에 알려드립니다.
본 포스트에는 APM(Apache, Php, Mysql)설치과정이 담겨 있습니다.
정확히 APM설치만을 담고 있기 때문에, 추가적인 보안설정과 APM설정이 필요합니다.
추가적인 여러 설정을 하지 않아서 생기는 문제는 당사자에게 있습니다.
참고사이트는 http://blog.lovecoco.net이며,
참고서적은 [CENTOS 리눅스 구축관리 실무]입니다.
현재 구할수 있는 가장 최신의 안정화 버전으로 설치하였습니다.
정확히 APM설치만을 담고 있기 때문에, 추가적인 보안설정과 APM설정이 필요합니다.
추가적인 여러 설정을 하지 않아서 생기는 문제는 당사자에게 있습니다.
참고사이트는 http://blog.lovecoco.net이며,
참고서적은 [CENTOS 리눅스 구축관리 실무]입니다.
현재 구할수 있는 가장 최신의 안정화 버전으로 설치하였습니다.
설치환경은 Centos 5.5 on Vmware 7.0 입니다.
w.get에서 중간에 .은 빼고 입력하시길 바랍니다..
mysql 5.5 설치
more..
0. 기본 패키지 설치(YUM이용)
yum -y install zlib curl
yum -y install gcc g++ cpp gcc-c++
yum -y install compat-gcc-32-g77 flex
yum -y install openssl openssl-devel
yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel
yum -y install bison
yum -y install freetype freetyle-devel
1. Cmake설치
http://www.cmake.org에서 다운로드
w.get http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
압축을 풀고 해당 디렉토리 안에서 bootscript 실행
tar zxvf cmake-2.8.4.tar.gz
cd cmake-2.8.4
./bootscript
(만약 패키지가 없다는 에러가 나오면, 해당 패키지 설치)
gmake all ; gmake install
gmake와 make는 거의 같은 거라고 합니다.. make all ; make install 하셔도 될것 같습니다.
저는 그낭 gmake all ; gmake install을 했습니다.
2. mysql 패키지 삭제
yum -y remove mysql*
3. mysql 다운로드 & 설치준비
mysql.com에서 mysql community server 다운로드
Generic Linux (Architecture Independent), Compressed TAR Archive) 로 다운로드
한국 미러는 경희대학교지만, 경희대학교 서버는 상당히 느립니다..
일본의 Internet Initiative Japan Inc., JAPAN에서 받겠습니다.
w.get http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.9.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/
(resolv하는데 시간이 조금 걸리수도 있지만, 다운로드는 상당히 빠릅니다.)
mysql용 계정을 만들어 줍니다.
useradd -M -s /sbin/false mysql
이제 gmake로 설치준비(?)를 합니다. gmake의 옵션은 다른 사이트를 참고했습니다.
해당 사이트는 http://blog.lovecoco.net/128 입니다.
cd mysql-5.5.9
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql/data -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
DCMAKE_INSTALL_PREFIX는 기본 설치 디렉토리(저는 그냥 참고사이트와 같은곳에 설치했습니다.)
DDEFAULT_CHARSET은 기본언어셋
DWITH_EXTRA_CHARSETS=all은 추가할 언어셋
DMYSQL_DATADIR은 데이터 디렉토리를 나타낸다고 합니다.
자세한것은 다음 사이트를 참고하세요
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html#cmake-general-options
cmake가 끝났으면 make all ; make install을 시행합니다.
이 부분에서 조금 오래 걸릴수도 있고, warning이 뜰수도 있지만, 자기 혼자 열심히 진행되므로 그냥 냅둡시다.
make install까지 끝났으면, 정상적으로 설치가 되었는지 확인해야 합니다.
ls -al /usr/local/mysql/ 을 입력했을때 다음과 같이 나와야 합니다.
(날짜는 상관하지 마세요. vmware로 스냅샷을 찍어서 갈아 엎으면서 하느라 시간이 엉망입니다.)
==================================================================
-rw-r--r-- 1 root root 17987 1월 20 07:37 COPYING
-rw-r--r-- 1 root root 7390 1월 20 07:37 INSTALL-BINARY
-rw-r--r-- 1 root root 113534 1월 20 07:37 README
drwxr-xr-x 2 root root 4096 2월 27 07:09 bin
drwxr-xr-x 4 root root 4096 2월 27 07:08 data
drwxr-xr-x 2 root root 4096 2월 27 07:08 docs
drwxr-xr-x 3 root root 4096 2월 27 07:08 include
drwxr-xr-x 3 root root 4096 2월 27 07:08 lib
drwxr-xr-x 4 root root 4096 2월 27 07:09 man
drwxr-xr-x 10 root root 4096 2월 27 07:09 mysql-test
drwxr-xr-x 2 root root 4096 2월 27 07:09 scripts
drwxr-xr-x 27 root root 4096 2월 27 07:09 share
drwxr-xr-x 4 root root 4096 2월 27 07:09 sql-bench
drwxr-xr-x 2 root root 4096 2월 27 07:09 support-files
==================================================================
설정파일을 복사해야 합니다.
설정파일은 설치디렉토리/support-filess/에 존재합니다.
my-huge.cnf : 메모리가 1~2G일때
my-large.cnf : 메모리가 512M일때
my-medium.cnf : 메모리리 64~256M일때
my-small.cnf : 메모리가 64M이하일때
저는 my-large.cnf를 이용하겠습니다.
cd /usr/local/mysql
cp support-files/my-large.cnf /etc/my.cnf
그리고 기본 db를 설정해 줍니다.
기본 db설정또한 설치디렉토리/script/mysql_install_db 파일을 이용해서 할 수 있습니다.
cd /usr/local/mysql/script
./mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
이렇게 ./script 디렉토리 안에서 실행을 하면 다음과 같은 에러가 납니다.
FATAL ERROR: Could not find ./bin/my_print_defaults
mysql_install_db 파일을 mysql이 설치된 디렉토리로 복사해서 재실행 하면 됩니다.
cp /usr/local/mysql/script/mysql_install_db /usr/local/mysql/
cd /usr/local/mysql
./mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
마지막 부분에 다음과 같은 안내문이 나오면 성공한 것입니다.
==========================
You can test the MySQL daemon with mysql-test-run.pl
cd ./mysql-test ; perl mysql-test-run.pl
Please report any problems with the ./bin/mysqlbug script!
==========================
이후, mysql이 설치된 디렉토리의 권한을 다시 설정해 줘야 합니다.
cd /usr/local/mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
환경설정변수를 수정하여 PATH에 mysql을 등록합니다.
vi ~/.bash_profile
PATH부분에 다음과 같이 추가합니다.
수정전 : PATH=$PATH:$HOME/bin
수정후 : PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
수정후에 저장하고 종료합니다.
자동실행을 설정합니다.
mysql의 실행 스크립트 파일을 /etc/init.d/에 복사하고 chkconfig명령어를 이용해서 추가해 줍니다.
mysql 5.5.9의 경우, mysql.server파일은 support-files/에 있습니다.
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
확인은 다음과 같이 합니다.
[root@home]
[/usr/local/mysql] #chkconfig --list | grep mysqld
mysqld 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
위와 같이 나오면 설정이 완료된 것입니다.
그리고나서 변경된 환경변수를 적용합니다.
source ~/.bash_profile
외부에서 접근이 가능하도록 서비스 포트를 오픈합니다.
포트는 tcp 3306포트입니다.
/etc/sysconfig/iptables 파일에 다음을 추가해 줍니다.
주의할점은 대소문자를 구분하므로, 절대로 전부 소문자로 쓰면 안됩니다!
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
추가가 되었다면 iptables를 재시작 합니다.
service iptables restart
restart시 에러가 나면, 오타가 없는지 확인해 보세요.
mysql을 구동합니다.
/etc/init.d/mysqld start
만약 다음과 같이 에러가 나면서 구동에 실패하면 /usr/local/mysql/data/home.test.err 파일을 삭제합니다.
============================
Starting MySQL.The server quit without updating PID file (/usr/local/mysql/data/home.test.pid). [실패]
============================
rm -rf /usr/local/mysql/data/home.test.err
그래도 안된다면 /usr/local/mysql/에서 다음과 같이 입력해 주세요
chown -R root .
chown -R mysql data
chgrp -R mysql .
rm -rf data/home.test.err
그리고나서 다시 시작하면 잘 됩니다!
root암호 등록 & 테스트를 합니다.
mysqladmin -u root password [암호] 와 같은 형식으로 합니다.
저는 암호를 123으로 해보겠습니다.
mysqladmin -u root password 123
혹은 mysql로 암호없이 접근하셔서 다음과 같이 입력하세요
grant all privileges on *.* to 'root'@'localhost' identified by '암호';
만약에 제가 한다면 다음과 같이 입력하게 될 것입니다.
grant all privileges on *.* to 'root'@'localhost' identified by '123';
이후에 mysql로 접근하면 에러가 나오면서 접속이 안되야 합니다.
그런데 그냥 접속되는 경우가 생기는데요..
다음과 같이 합니다.
mysql -u root -p
위에서 설정한 암호를 입력합니다.
그리고나서 다음을 입력합니다.
mysql> FLUSH PRIVILEGES;
Query OK가 뜨면 quit로 mysql 접속종료 후 다시 재접속 해 봅니다.
mysql 명령 하나로만 접속하면 Access denied가 뜹니다.
[root@home]
[/] #mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
mysql -u root -p 를 입력한 다음, 암호를 쳐서 접속해 봅니다.
그러면 잘 될겁니다.
접속이 잘 된다면 mysql 설치는 끝났습니다.
----------
trouble shooting
yum -y install zlib curl
yum -y install gcc g++ cpp gcc-c++
yum -y install compat-gcc-32-g77 flex
yum -y install openssl openssl-devel
yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel
yum -y install bison
yum -y install freetype freetyle-devel
1. Cmake설치
http://www.cmake.org에서 다운로드
w.get http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
압축을 풀고 해당 디렉토리 안에서 bootscript 실행
tar zxvf cmake-2.8.4.tar.gz
cd cmake-2.8.4
./bootscript
(만약 패키지가 없다는 에러가 나오면, 해당 패키지 설치)
gmake all ; gmake install
gmake와 make는 거의 같은 거라고 합니다.. make all ; make install 하셔도 될것 같습니다.
저는 그낭 gmake all ; gmake install을 했습니다.
2. mysql 패키지 삭제
yum -y remove mysql*
3. mysql 다운로드 & 설치준비
mysql.com에서 mysql community server 다운로드
Generic Linux (Architecture Independent), Compressed TAR Archive) 로 다운로드
한국 미러는 경희대학교지만, 경희대학교 서버는 상당히 느립니다..
일본의 Internet Initiative Japan Inc., JAPAN에서 받겠습니다.
w.get http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.9.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/
(resolv하는데 시간이 조금 걸리수도 있지만, 다운로드는 상당히 빠릅니다.)
mysql용 계정을 만들어 줍니다.
useradd -M -s /sbin/false mysql
이제 gmake로 설치준비(?)를 합니다. gmake의 옵션은 다른 사이트를 참고했습니다.
해당 사이트는 http://blog.lovecoco.net/128 입니다.
cd mysql-5.5.9
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql/data -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
DCMAKE_INSTALL_PREFIX는 기본 설치 디렉토리(저는 그냥 참고사이트와 같은곳에 설치했습니다.)
DDEFAULT_CHARSET은 기본언어셋
DWITH_EXTRA_CHARSETS=all은 추가할 언어셋
DMYSQL_DATADIR은 데이터 디렉토리를 나타낸다고 합니다.
자세한것은 다음 사이트를 참고하세요
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html#cmake-general-options
cmake가 끝났으면 make all ; make install을 시행합니다.
이 부분에서 조금 오래 걸릴수도 있고, warning이 뜰수도 있지만, 자기 혼자 열심히 진행되므로 그냥 냅둡시다.
make install까지 끝났으면, 정상적으로 설치가 되었는지 확인해야 합니다.
ls -al /usr/local/mysql/ 을 입력했을때 다음과 같이 나와야 합니다.
(날짜는 상관하지 마세요. vmware로 스냅샷을 찍어서 갈아 엎으면서 하느라 시간이 엉망입니다.)
==================================================================
-rw-r--r-- 1 root root 17987 1월 20 07:37 COPYING
-rw-r--r-- 1 root root 7390 1월 20 07:37 INSTALL-BINARY
-rw-r--r-- 1 root root 113534 1월 20 07:37 README
drwxr-xr-x 2 root root 4096 2월 27 07:09 bin
drwxr-xr-x 4 root root 4096 2월 27 07:08 data
drwxr-xr-x 2 root root 4096 2월 27 07:08 docs
drwxr-xr-x 3 root root 4096 2월 27 07:08 include
drwxr-xr-x 3 root root 4096 2월 27 07:08 lib
drwxr-xr-x 4 root root 4096 2월 27 07:09 man
drwxr-xr-x 10 root root 4096 2월 27 07:09 mysql-test
drwxr-xr-x 2 root root 4096 2월 27 07:09 scripts
drwxr-xr-x 27 root root 4096 2월 27 07:09 share
drwxr-xr-x 4 root root 4096 2월 27 07:09 sql-bench
drwxr-xr-x 2 root root 4096 2월 27 07:09 support-files
==================================================================
설정파일을 복사해야 합니다.
설정파일은 설치디렉토리/support-filess/에 존재합니다.
my-huge.cnf : 메모리가 1~2G일때
my-large.cnf : 메모리가 512M일때
my-medium.cnf : 메모리리 64~256M일때
my-small.cnf : 메모리가 64M이하일때
저는 my-large.cnf를 이용하겠습니다.
cd /usr/local/mysql
cp support-files/my-large.cnf /etc/my.cnf
그리고 기본 db를 설정해 줍니다.
기본 db설정또한 설치디렉토리/script/mysql_install_db 파일을 이용해서 할 수 있습니다.
cd /usr/local/mysql/script
./mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
이렇게 ./script 디렉토리 안에서 실행을 하면 다음과 같은 에러가 납니다.
FATAL ERROR: Could not find ./bin/my_print_defaults
mysql_install_db 파일을 mysql이 설치된 디렉토리로 복사해서 재실행 하면 됩니다.
cp /usr/local/mysql/script/mysql_install_db /usr/local/mysql/
cd /usr/local/mysql
./mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
마지막 부분에 다음과 같은 안내문이 나오면 성공한 것입니다.
==========================
You can test the MySQL daemon with mysql-test-run.pl
cd ./mysql-test ; perl mysql-test-run.pl
Please report any problems with the ./bin/mysqlbug script!
==========================
이후, mysql이 설치된 디렉토리의 권한을 다시 설정해 줘야 합니다.
cd /usr/local/mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
환경설정변수를 수정하여 PATH에 mysql을 등록합니다.
vi ~/.bash_profile
PATH부분에 다음과 같이 추가합니다.
수정전 : PATH=$PATH:$HOME/bin
수정후 : PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
수정후에 저장하고 종료합니다.
자동실행을 설정합니다.
mysql의 실행 스크립트 파일을 /etc/init.d/에 복사하고 chkconfig명령어를 이용해서 추가해 줍니다.
mysql 5.5.9의 경우, mysql.server파일은 support-files/에 있습니다.
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
확인은 다음과 같이 합니다.
[root@home]
[/usr/local/mysql] #chkconfig --list | grep mysqld
mysqld 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
위와 같이 나오면 설정이 완료된 것입니다.
그리고나서 변경된 환경변수를 적용합니다.
source ~/.bash_profile
외부에서 접근이 가능하도록 서비스 포트를 오픈합니다.
포트는 tcp 3306포트입니다.
/etc/sysconfig/iptables 파일에 다음을 추가해 줍니다.
주의할점은 대소문자를 구분하므로, 절대로 전부 소문자로 쓰면 안됩니다!
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
추가가 되었다면 iptables를 재시작 합니다.
service iptables restart
restart시 에러가 나면, 오타가 없는지 확인해 보세요.
mysql을 구동합니다.
/etc/init.d/mysqld start
만약 다음과 같이 에러가 나면서 구동에 실패하면 /usr/local/mysql/data/home.test.err 파일을 삭제합니다.
============================
Starting MySQL.The server quit without updating PID file (/usr/local/mysql/data/home.test.pid). [실패]
============================
rm -rf /usr/local/mysql/data/home.test.err
그래도 안된다면 /usr/local/mysql/에서 다음과 같이 입력해 주세요
chown -R root .
chown -R mysql data
chgrp -R mysql .
rm -rf data/home.test.err
그리고나서 다시 시작하면 잘 됩니다!
root암호 등록 & 테스트를 합니다.
mysqladmin -u root password [암호] 와 같은 형식으로 합니다.
저는 암호를 123으로 해보겠습니다.
mysqladmin -u root password 123
혹은 mysql로 암호없이 접근하셔서 다음과 같이 입력하세요
grant all privileges on *.* to 'root'@'localhost' identified by '암호';
만약에 제가 한다면 다음과 같이 입력하게 될 것입니다.
grant all privileges on *.* to 'root'@'localhost' identified by '123';
이후에 mysql로 접근하면 에러가 나오면서 접속이 안되야 합니다.
그런데 그냥 접속되는 경우가 생기는데요..
다음과 같이 합니다.
mysql -u root -p
위에서 설정한 암호를 입력합니다.
그리고나서 다음을 입력합니다.
mysql> FLUSH PRIVILEGES;
Query OK가 뜨면 quit로 mysql 접속종료 후 다시 재접속 해 봅니다.
mysql 명령 하나로만 접속하면 Access denied가 뜹니다.
[root@home]
[/] #mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
mysql -u root -p 를 입력한 다음, 암호를 쳐서 접속해 봅니다.
그러면 잘 될겁니다.
접속이 잘 된다면 mysql 설치는 끝났습니다.
----------
trouble shooting
more..
mysql실행시 다음과 같이 뜰때..(/tmp/mysql.sock 은 다를수도 있습니다.)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
more..
mysql이 설치된 디렉토리에가서 safe_mysql --user=root & 실행
more..
/usr/local/mysql/bin/safe_mysql --user=root &
more..
이후 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 메세지가 나온다.
그러면 mysql root패스워드를 초기화 한다.
그러면 mysql root패스워드를 초기화 한다.
more..
killall mysqld
mysqld_safe --skip-grant &
mysql
mysqld_safe --skip-grant &
mysql
more..
이렇게 하면 mysql에 접속이 됩니다. 이후 mysql shell에서 다음을 입력합니다.
use mysql;
update user set password=password('새로운루트암호') where user='root';
flush privileges;
use mysql;
update user set password=password('새로운루트암호') where user='root';
flush privileges;
more..
more..
아파치 설치
more..
참고사이트 : http://blog.lovecoco.net/116?category=21
1. 소스 다운로드, 기존 패키지 삭제
http://www.apache.org에서 소스를다운로드 합니다.
daum.net 미러는 속도가 느리더군요.ㅠㅠ
저는 tt.co.kr에서 받았습니다.
w.get http://apache.tt.co.kr//httpd/httpd-2.2.17.tar.gz
우어.. 전송속도가 9.97M/s네요..
===================================
[root@home]
[/tmp/apm_set] #w.get http://apache.tt.co.kr//httpd/httpd-2.2.17.tar.gz
--2011-02-27 07:57:59-- http://apache.tt.co.kr//httpd/httpd-2.2.17.tar.gz
Resolving apache.tt.co.kr... 121.125.79.185
Connecting to apache.tt.co.kr|121.125.79.185|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6597991 (6.3M) [application/x-gzip]
Saving to: `httpd-2.2.17.tar.gz'
100%[======================================>] 6,597,991 9.97M/s in 0.6s
2011-02-27 07:58:00 (9.97 MB/s) - `httpd-2.2.17.tar.gz' saved [6597991/6597991]
===================================
그리고 기존에 설치된 패키지를 삭제해 줍니다.
yum -y remove httpd*
2. 설치
apache소스파일의 압출을 풀어줍니다.
tar zxvf httpd-2.2.17.tar.gz
cd httpd-2.2.17
그리고 설치준비를 합니다.
책에서는 ssl 옵션이 없었는데, 참고사이트에서는 ssl추가 옵션이 있습니다.
설치사이트를 따르겠습니다.
./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-modules=so --with-mpm=worker --enable-rewrite --enable-ssl --with-ssl
만약 에러가 난다면, 해당 패키지를 설치해 주세요.
이후 make all ; maks install을 해줍니다.
제대로 설치가 되었다면 실행스크립트를 복사합니다.
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
자동실행에 등록합니다. chkconfig를 사용하기 위해서 실행스크립트를 조금 수정해 줍니다.
수정해 주지 않으면 [httpd 서비스는 chkconfig를 지원하지 않습니다.]와 같은 안내문을 뱉어내며
chkconfig에 등록되지 않습니다.
/etc/init.d/httpd 에 다음 내용을 그대로 추가해 줍니다.
파일 가장 아래쪽에 추가해 주는것이 나중에 수정하기도 편할것이라 생각됩니다.
주석은 풀지 않아도 됩니다. 주석 그대로 입력하세요.
==============
#chkconfig: 2345 90 90
#description: init file for Apache server deamon
#processname: /usr/local/apache/bin /apachectl
#config: /usr/local/apache/conf/httpd.conf
#pidfile: /usr/local/alache/logs/httpd.pid
==============
입력후 저장종료 한 다음 chkconfig에 추가하면 추가가 됩니다.
chkconfig --add httpd
정상등록이 되었는지 확인합니다. 다음과 같이 나오면 성공입니다.
==============
[root@home]
[/] #chkconfig --list | grep httpd
httpd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
==============
3. 기본설정
기본설정파일은 /usr/local/apache/conf/httpd.conf 입니다.
해당 파일을 수정해야 합니다. 원본을 백업해 두도록 합시다.
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.backup
httpd.conf파일을 수정합니다.
102~103번 줄에 <IfModule !mpm_netware_module> <IfModule !mpm_winnt_module>
이 있습니다. 그 사이에 다음과 같이 추가해 주세요
<IfModule !mpm_netware_module>
User nobody
Group nobody
<IfModule !mpm_winnt_module>
그리고 145번째 줄정도에 #ServerName www.example.com:80 가 있습니다.
주석을 해제하고 서버 주소나 도메인을 넣어주면 해당 주소나 도메인으로 접속할 수 있습니다.
이 항목을 설정하지 않으면 127.0.0.1로만 접속이 가능합니다.
저는 vmware의 nat에서 지정해준 주소인 192.168.17.130을 입력했습니다.
146 ServerName 192.168.17.130
저장후 종료하고나서 apache를 실행시켜 봅니다.
/etc/init.d/httpd start
주의할점은, 실행되었는데도 아무런 메세지를 내보내지 않습니다.
ps -e | grep httpd 로 httpd 데몬을 찾아보면, 5개정도가 떠 있습니다.
============
[root@home]
[/] #ps -e | grep httpd
2427 ? 00:00:00 httpd
2523 ? 00:00:00 httpd
2524 ? 00:00:00 httpd
2526 ? 00:00:00 httpd
2528 ? 00:00:00 httpd
============
이후, iptables에 tcp 80번 포트를 개방해 줍니다.(파일위치 /etc/sysconfig/iptables)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
저장종료후 iptables를 다시 시작해 줍니다.
service iptables restart
에러가 뜨지 않고 OK가 뜬다면 성공입니다!
해당 주소로 웹접속을 해보면, It works!라는 페이지가 뜹니다.
그러면 성공입니다!
1. 소스 다운로드, 기존 패키지 삭제
http://www.apache.org에서 소스를다운로드 합니다.
daum.net 미러는 속도가 느리더군요.ㅠㅠ
저는 tt.co.kr에서 받았습니다.
w.get http://apache.tt.co.kr//httpd/httpd-2.2.17.tar.gz
우어.. 전송속도가 9.97M/s네요..
===================================
[root@home]
[/tmp/apm_set] #w.get http://apache.tt.co.kr//httpd/httpd-2.2.17.tar.gz
--2011-02-27 07:57:59-- http://apache.tt.co.kr//httpd/httpd-2.2.17.tar.gz
Resolving apache.tt.co.kr... 121.125.79.185
Connecting to apache.tt.co.kr|121.125.79.185|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6597991 (6.3M) [application/x-gzip]
Saving to: `httpd-2.2.17.tar.gz'
100%[======================================>] 6,597,991 9.97M/s in 0.6s
2011-02-27 07:58:00 (9.97 MB/s) - `httpd-2.2.17.tar.gz' saved [6597991/6597991]
===================================
그리고 기존에 설치된 패키지를 삭제해 줍니다.
yum -y remove httpd*
2. 설치
apache소스파일의 압출을 풀어줍니다.
tar zxvf httpd-2.2.17.tar.gz
cd httpd-2.2.17
그리고 설치준비를 합니다.
책에서는 ssl 옵션이 없었는데, 참고사이트에서는 ssl추가 옵션이 있습니다.
설치사이트를 따르겠습니다.
./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-modules=so --with-mpm=worker --enable-rewrite --enable-ssl --with-ssl
만약 에러가 난다면, 해당 패키지를 설치해 주세요.
이후 make all ; maks install을 해줍니다.
제대로 설치가 되었다면 실행스크립트를 복사합니다.
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
자동실행에 등록합니다. chkconfig를 사용하기 위해서 실행스크립트를 조금 수정해 줍니다.
수정해 주지 않으면 [httpd 서비스는 chkconfig를 지원하지 않습니다.]와 같은 안내문을 뱉어내며
chkconfig에 등록되지 않습니다.
/etc/init.d/httpd 에 다음 내용을 그대로 추가해 줍니다.
파일 가장 아래쪽에 추가해 주는것이 나중에 수정하기도 편할것이라 생각됩니다.
주석은 풀지 않아도 됩니다. 주석 그대로 입력하세요.
==============
#chkconfig: 2345 90 90
#description: init file for Apache server deamon
#processname: /usr/local/apache/bin /apachectl
#config: /usr/local/apache/conf/httpd.conf
#pidfile: /usr/local/alache/logs/httpd.pid
==============
입력후 저장종료 한 다음 chkconfig에 추가하면 추가가 됩니다.
chkconfig --add httpd
정상등록이 되었는지 확인합니다. 다음과 같이 나오면 성공입니다.
==============
[root@home]
[/] #chkconfig --list | grep httpd
httpd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
==============
3. 기본설정
기본설정파일은 /usr/local/apache/conf/httpd.conf 입니다.
해당 파일을 수정해야 합니다. 원본을 백업해 두도록 합시다.
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.backup
httpd.conf파일을 수정합니다.
102~103번 줄에 <IfModule !mpm_netware_module> <IfModule !mpm_winnt_module>
이 있습니다. 그 사이에 다음과 같이 추가해 주세요
<IfModule !mpm_netware_module>
User nobody
Group nobody
<IfModule !mpm_winnt_module>
그리고 145번째 줄정도에 #ServerName www.example.com:80 가 있습니다.
주석을 해제하고 서버 주소나 도메인을 넣어주면 해당 주소나 도메인으로 접속할 수 있습니다.
이 항목을 설정하지 않으면 127.0.0.1로만 접속이 가능합니다.
저는 vmware의 nat에서 지정해준 주소인 192.168.17.130을 입력했습니다.
146 ServerName 192.168.17.130
저장후 종료하고나서 apache를 실행시켜 봅니다.
/etc/init.d/httpd start
주의할점은, 실행되었는데도 아무런 메세지를 내보내지 않습니다.
ps -e | grep httpd 로 httpd 데몬을 찾아보면, 5개정도가 떠 있습니다.
============
[root@home]
[/] #ps -e | grep httpd
2427 ? 00:00:00 httpd
2523 ? 00:00:00 httpd
2524 ? 00:00:00 httpd
2526 ? 00:00:00 httpd
2528 ? 00:00:00 httpd
============
이후, iptables에 tcp 80번 포트를 개방해 줍니다.(파일위치 /etc/sysconfig/iptables)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
저장종료후 iptables를 다시 시작해 줍니다.
service iptables restart
에러가 뜨지 않고 OK가 뜬다면 성공입니다!
해당 주소로 웹접속을 해보면, It works!라는 페이지가 뜹니다.
그러면 성공입니다!
php설치
more..
참고사이트 : http://blog.lovecoco.net/117?category=21
1. php소스 다운로드
w.get http://kr.php.net/get/php-5.3.5.tar.bz2/from/kr2.php.net/mirror
압축을 풀어줍니다.
tar jxvf php-5.3.5.tar.bz2
2. 설치
php는 수많은 옵션을 같이 설치해야 합니다.
책에서 나오는 옵션이나 참고사이트나 거의 비슷할거라 생각됩니다.
apache와 mysql에 대한것만 짚고 넘어가겠습니다.
--prefix : php가 설치될 디렉토리 입니다.
--with-apx2 : 아파치의 apxs를 이용해 아파치에 모듈을 적재하는 것입니다.
apx의 경로는 apache설치디렉토리/bin/apxs 입니다.
--with-mysql : mysql과 연동하는 것입니다. mysql이 설치된 디렉토리를 적어줘야 합니다.
--with-apache-install : apache가 설치된 디렉토리를 적어줘야 합니다.
--with-config-file-path : 설정파일이 위치할 곳을 적어줍니다. 그냥 /etc 로 해주는것이 정신건강에 좋을것 같습니다.
저는 참고사이트의 내용으로 하겠습니다.
책에 있는것도 추가할 모듈은 거의 비슷할 것이고, 모듈은 따로 설정할수도 있으니 지금은 참고사이트대로 가겠습니다.
다음과 같이 입력합니다. 복사해서 붙여넣으세요.(make test를 하실분들은 --enable-safe-mode를 삭제하세요!)
cd php-5.3.5
./configure --prefix=/usr/local/php --with-exec-dir=/usr/bin --with-apxs2=/usr/local/apache/bin/apxs --with-apache-install=/usr/local/apache --with-mysql=/usr/local/mysql --with-config-file-path=/etc --disable-debug --enable-safe-mode --enable-track-vars --enable-sockets --with-png-dir=/usr/lib --with-freetype-dir=/usr/include/freetype2 --with-mod_charset --with-charset=euc_kr --with-xml --with-language=korean --enable-mailparse --enable-calender --enable-sysvsem=yes --enable-sysvshm=yes --enable-ftp --enable-magic-quotes --enable-gd-native-ttf --enable-versioning --enable-url-includes --enable-trans-id --enable-inline-optimization --with-iconv --enable-mbstring --enable-mbregex --with-gd --with-ttf --with-gettext --enable-sigchild --enable-module=so --enable-versioning --enable-url-includes --enable-trans-id --enable-inline-optimization --enable-bcmath --with-jpeg --with-png --with-zlib
=========safe_mode 비활성 모드도 아래 적어드리겠습니다. 참고사이트에 오타가 있어서, 참고사이트의 safe_mode 제외옵션을 그대로 복사해 넣으면 ./configure에 실패합니다.
./configure --prefix=/usr/local/php --with-exec-dir=/usr/bin --with-apxs2=/usr/local/apache/bin/apxs --with-apache-install=/usr/local/apache --with-mysql=/usr/local/mysql --with-config-file-path=/etc --disable-debug --enable-track-vars --enable-sockets --with-png-dir=/usr/lib --with-freetype-dir=/usr/include/freetype2 --with-mod_charset --with-charset=euc_kr --with-xml --with-language=korean --enable-mailparse --enable-calender --enable-sysvsem=yes --enable-sysvshm=yes --enable-ftp --enable-magic-quotes --enable-gd-native-ttf --enable-versioning --enable-url-includes --enable-trans-id --enable-inline-optimization --with-iconv --enable-mbstring --enable-mbregex --with-gd --with-ttf --with-gettext --enable-sigchild --enable-module=so --enable-versioning --enable-url-includes --enable-trans-id --enable-inline-optimization --enable-bcmath --with-jpeg --with-png --with-zlib
=================
그리고
중간에 에러가 나면 해당 패키지를 재설치 해 줍니다.
그냥 쿨하게 해주면 되잖아요..
저는 configure: error: xml2-config not found. Please check your libxml2 installation. 라는 에러가 떳습니다.
libxml2를 설치해줍시다.
yum -y install libxml2 libxml2-devel
또다시 에러가 떳습니다. configure: error: libpng.(a|so) not found.
libpng를 설치해 줍시다.
yum -y install libpng libpng-devel
또 에러가 떳습니다. configure: error: freetype.h not found.
freetype 설치해 주면 되죠..:D
yum -y install freetype freetype-devel
에러가 없이 끝났다면 make all을 합니다.
상당히 오래걸립니다..
make test도 해봅니다.. 위에서 safe_mode를 활성화 했다면 에러납니다!
+-----------------------------------------------------------+
| ! WARNING ! |
| You are running the test-suite with "safe_mode" ENABLED ! |
| |
| Chances are high that no test will work at all, |
| depending on how you configured "safe_mode" ! |
+-----------------------------------------------------------+
저는 safe_mode 비활성모드로 다시./configure + make all을 했으므로, 테스트 한번 해 보겠습니다.
참고로, make를 다시 하실경우, make clean을 반드시 해주고 다시 make all 을 하세요!
make test가 끝나면 다음과 같이 뜹니다.
====================================
You may have found a problem in PHP.
We would like to send this report automatically to the
PHP QA team, to give us a better understanding of how
the test cases are doing. If you don't want to send it
immediately, you can choose "s" to save the report to
a file that you can send us later.
Do you want to send this report now? [Yns]: n
====================================
이후, 설정파일을 복사해 줍니다. PHP는 샘플파일을 제공하는데, 이것을 그냥 사용해도 됩니다.
해당 파일은 소스압축을 푼 디렉토리에(설치 디렉토리가 아닙니다.. 소스 압출을 푼 디렉토리입니다.)
php.ini-developement 입니다.
저는 압축을 /tmp/apm_set/에 풀었고, ./configure시 --with-config-file-path=/etc 으로 옵션을 지정하였으므로
다음과 같이 복사했습니다.
[root@home]
[/tmp/apm_set/php-5.3.5] #cp /tmp/apm_set/php-5.3.5/php.ini-development /etc/php.ini
이젠 아파치와의 연동을 위해 httpd.conf를 수정해야합니다.
httpd.conf 원본 파일을 백업해 놓는것을 추천합니다.
httpd.conf파일을 vi 에디터로 열어 다음을 수정합니다.
우선, 약 100번째줄에 다음이 있음을 확인합니다. 없으면 php재설치를 해야 합니다.
LoadModule php5_module modules/libphp5.so
약 215번째 줄 <IfModule dir_module>에서 다음과 같이 index.htm과 index.php를 추가합니다.
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
그리고 약 335번째 줄 <IfModule mime_module> 안에 다음을 추가해 줍니다.
이미 AddType가 두어개 있을테니, 그 아래에 추가해 줍니다.
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
저장종료후 httpd를 재시작 합니다.
/ets/init.d/httpd restart
다음과 같은 오류가 나오면 SELinux가 켜져 있기 때문에 오류가 발생하는 것입니다.
===========================
httpd: Syntax error on line 101 of /usr/local/apache/conf/httpd.conf: Cannot loa d /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/li bphp5.so: cannot restore segment prot after reloc: Permission denied
===========================
SELinux를 비활성해줘야 하는데, SELinux를 비활성하면 iptables파일이 초기화 됩니다.
iptables파일을 백업한 다음, 다시 복사해 넣으면 됩니다.
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.backup
그리고 setup를 입력해서, 방화벽설정 -> SELinux 비활성화 에 체크해 줍니다.
이후 iptables를 확인해보면 초기화 되어 있을 것입니다.
백업해 놓은 iptables.backup파일을 iptables파일에 덮어 써 줍니다.
cp /etc/sysconfig/iptables.backup /etc/sysconfig/iptables
그러면 iptables 파일이 정상적으로 복구됩니다.
iptables를 재시작 해 주고 httpd를 다시 재시작 합니다.
service iptables restart
/etc/init.d/httpd restart
3. 설치확인
apache의 index파일 저장페이지에 test.php파일을 만들어 봅니다.
저는 /usr/local/server/apache/htdocs/가 index.html파일이 저장되는 곳이므로 다음과 같이 파일을 만들었습니다.
vi /usr/local/apache/htdocs/test.php
그리고 다음 함수를 넣어줬습니다.
<?php phpinfo(); ?>
저장 종료후, 인터넷 창에서 서버주소/test.php를 하면 자신이 설치한 php버전이 나오는 페이지가 뜹니다.
그 페이지가 뜨면 설치가 끝입니다
1. php소스 다운로드
w.get http://kr.php.net/get/php-5.3.5.tar.bz2/from/kr2.php.net/mirror
압축을 풀어줍니다.
tar jxvf php-5.3.5.tar.bz2
2. 설치
php는 수많은 옵션을 같이 설치해야 합니다.
책에서 나오는 옵션이나 참고사이트나 거의 비슷할거라 생각됩니다.
apache와 mysql에 대한것만 짚고 넘어가겠습니다.
--prefix : php가 설치될 디렉토리 입니다.
--with-apx2 : 아파치의 apxs를 이용해 아파치에 모듈을 적재하는 것입니다.
apx의 경로는 apache설치디렉토리/bin/apxs 입니다.
--with-mysql : mysql과 연동하는 것입니다. mysql이 설치된 디렉토리를 적어줘야 합니다.
--with-apache-install : apache가 설치된 디렉토리를 적어줘야 합니다.
--with-config-file-path : 설정파일이 위치할 곳을 적어줍니다. 그냥 /etc 로 해주는것이 정신건강에 좋을것 같습니다.
저는 참고사이트의 내용으로 하겠습니다.
책에 있는것도 추가할 모듈은 거의 비슷할 것이고, 모듈은 따로 설정할수도 있으니 지금은 참고사이트대로 가겠습니다.
다음과 같이 입력합니다. 복사해서 붙여넣으세요.(make test를 하실분들은 --enable-safe-mode를 삭제하세요!)
cd php-5.3.5
./configure --prefix=/usr/local/php --with-exec-dir=/usr/bin --with-apxs2=/usr/local/apache/bin/apxs --with-apache-install=/usr/local/apache --with-mysql=/usr/local/mysql --with-config-file-path=/etc --disable-debug --enable-safe-mode --enable-track-vars --enable-sockets --with-png-dir=/usr/lib --with-freetype-dir=/usr/include/freetype2 --with-mod_charset --with-charset=euc_kr --with-xml --with-language=korean --enable-mailparse --enable-calender --enable-sysvsem=yes --enable-sysvshm=yes --enable-ftp --enable-magic-quotes --enable-gd-native-ttf --enable-versioning --enable-url-includes --enable-trans-id --enable-inline-optimization --with-iconv --enable-mbstring --enable-mbregex --with-gd --with-ttf --with-gettext --enable-sigchild --enable-module=so --enable-versioning --enable-url-includes --enable-trans-id --enable-inline-optimization --enable-bcmath --with-jpeg --with-png --with-zlib
=========safe_mode 비활성 모드도 아래 적어드리겠습니다. 참고사이트에 오타가 있어서, 참고사이트의 safe_mode 제외옵션을 그대로 복사해 넣으면 ./configure에 실패합니다.
./configure --prefix=/usr/local/php --with-exec-dir=/usr/bin --with-apxs2=/usr/local/apache/bin/apxs --with-apache-install=/usr/local/apache --with-mysql=/usr/local/mysql --with-config-file-path=/etc --disable-debug --enable-track-vars --enable-sockets --with-png-dir=/usr/lib --with-freetype-dir=/usr/include/freetype2 --with-mod_charset --with-charset=euc_kr --with-xml --with-language=korean --enable-mailparse --enable-calender --enable-sysvsem=yes --enable-sysvshm=yes --enable-ftp --enable-magic-quotes --enable-gd-native-ttf --enable-versioning --enable-url-includes --enable-trans-id --enable-inline-optimization --with-iconv --enable-mbstring --enable-mbregex --with-gd --with-ttf --with-gettext --enable-sigchild --enable-module=so --enable-versioning --enable-url-includes --enable-trans-id --enable-inline-optimization --enable-bcmath --with-jpeg --with-png --with-zlib
=================
그리고
중간에 에러가 나면 해당 패키지를 재설치 해 줍니다.
그냥 쿨하게 해주면 되잖아요..
저는 configure: error: xml2-config not found. Please check your libxml2 installation. 라는 에러가 떳습니다.
libxml2를 설치해줍시다.
yum -y install libxml2 libxml2-devel
또다시 에러가 떳습니다. configure: error: libpng.(a|so) not found.
libpng를 설치해 줍시다.
yum -y install libpng libpng-devel
또 에러가 떳습니다. configure: error: freetype.h not found.
freetype 설치해 주면 되죠..:D
yum -y install freetype freetype-devel
에러가 없이 끝났다면 make all을 합니다.
상당히 오래걸립니다..
make test도 해봅니다.. 위에서 safe_mode를 활성화 했다면 에러납니다!
+-----------------------------------------------------------+
| ! WARNING ! |
| You are running the test-suite with "safe_mode" ENABLED ! |
| |
| Chances are high that no test will work at all, |
| depending on how you configured "safe_mode" ! |
+-----------------------------------------------------------+
저는 safe_mode 비활성모드로 다시./configure + make all을 했으므로, 테스트 한번 해 보겠습니다.
참고로, make를 다시 하실경우, make clean을 반드시 해주고 다시 make all 을 하세요!
make test가 끝나면 다음과 같이 뜹니다.
====================================
You may have found a problem in PHP.
We would like to send this report automatically to the
PHP QA team, to give us a better understanding of how
the test cases are doing. If you don't want to send it
immediately, you can choose "s" to save the report to
a file that you can send us later.
Do you want to send this report now? [Yns]: n
====================================
이후, 설정파일을 복사해 줍니다. PHP는 샘플파일을 제공하는데, 이것을 그냥 사용해도 됩니다.
해당 파일은 소스압축을 푼 디렉토리에(설치 디렉토리가 아닙니다.. 소스 압출을 푼 디렉토리입니다.)
php.ini-developement 입니다.
저는 압축을 /tmp/apm_set/에 풀었고, ./configure시 --with-config-file-path=/etc 으로 옵션을 지정하였으므로
다음과 같이 복사했습니다.
[root@home]
[/tmp/apm_set/php-5.3.5] #cp /tmp/apm_set/php-5.3.5/php.ini-development /etc/php.ini
이젠 아파치와의 연동을 위해 httpd.conf를 수정해야합니다.
httpd.conf 원본 파일을 백업해 놓는것을 추천합니다.
httpd.conf파일을 vi 에디터로 열어 다음을 수정합니다.
우선, 약 100번째줄에 다음이 있음을 확인합니다. 없으면 php재설치를 해야 합니다.
LoadModule php5_module modules/libphp5.so
약 215번째 줄 <IfModule dir_module>에서 다음과 같이 index.htm과 index.php를 추가합니다.
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
그리고 약 335번째 줄 <IfModule mime_module> 안에 다음을 추가해 줍니다.
이미 AddType가 두어개 있을테니, 그 아래에 추가해 줍니다.
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
저장종료후 httpd를 재시작 합니다.
/ets/init.d/httpd restart
다음과 같은 오류가 나오면 SELinux가 켜져 있기 때문에 오류가 발생하는 것입니다.
===========================
httpd: Syntax error on line 101 of /usr/local/apache/conf/httpd.conf: Cannot loa d /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/li bphp5.so: cannot restore segment prot after reloc: Permission denied
===========================
SELinux를 비활성해줘야 하는데, SELinux를 비활성하면 iptables파일이 초기화 됩니다.
iptables파일을 백업한 다음, 다시 복사해 넣으면 됩니다.
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.backup
그리고 setup를 입력해서, 방화벽설정 -> SELinux 비활성화 에 체크해 줍니다.
이후 iptables를 확인해보면 초기화 되어 있을 것입니다.
백업해 놓은 iptables.backup파일을 iptables파일에 덮어 써 줍니다.
cp /etc/sysconfig/iptables.backup /etc/sysconfig/iptables
그러면 iptables 파일이 정상적으로 복구됩니다.
iptables를 재시작 해 주고 httpd를 다시 재시작 합니다.
service iptables restart
/etc/init.d/httpd restart
3. 설치확인
apache의 index파일 저장페이지에 test.php파일을 만들어 봅니다.
저는 /usr/local/server/apache/htdocs/가 index.html파일이 저장되는 곳이므로 다음과 같이 파일을 만들었습니다.
vi /usr/local/apache/htdocs/test.php
그리고 다음 함수를 넣어줬습니다.
<?php phpinfo(); ?>
저장 종료후, 인터넷 창에서 서버주소/test.php를 하면 자신이 설치한 php버전이 나오는 페이지가 뜹니다.
그 페이지가 뜨면 설치가 끝입니다















