[리눅스]APM 설치
mysql 5.5 설치
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 설치는 끝났습니다.
아파치 설치
참고사이트 : 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!라는 페이지가 뜹니다.
그러면 성공입니다!
php설치
참고사이트 : 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버전이 나오는 페이지가 뜹니다.
그 페이지가 뜨면 설치가 끝입니다
'02.서버-Linux' 카테고리의 다른 글
[리눅스]FTP 디렉토리 내용이 안보일 경우 (0) | 2012.12.19 |
---|---|
[리눅스]JAVA Path / FTP Port 변경 (0) | 2012.12.19 |
[리눅스]커널 튜닝 관련 내용 (0) | 2012.12.19 |
[리눅스]오픈 파일 개수 수정 (0) | 2012.12.19 |
[리눅스]커널 파라메터 (0) | 2012.12.19 |