vi /usr/local/apache/conf/httpd.conf
#------- 아래 부분 추가 -------
LoadModule rewrite_module libexec/mod_rewrite.so
Addmodule mod_rewrite.c
#------- 여기까지 ---------
/usr/local/apache/apachectl configtest
/usr/local/apache/apachectl restart
1. 소개 : 웹서버 연동시 Apache, PHP, MySQL 연통설치하는데, 최적화된 서버 운영을 위해 추가로 Zend-Optimizer라 는 프로그램을 설치 할 수 있다.
2. 플렛폼 :OS :REDHAT 9(Linux)
3. 다운로드 사이트 :
MySQL : www.mysql.com
dev.mysql.com/get/Downloads/MySQL 다운로드 하면 된다.
Apache : www.apache.org
http://httpd.apache.org/
PHP : www.php.net
http://www.php.net/downloads.php
Zend-Optimizer : www.zend.com
http://www.zend.com/store/free_download.php
가입하면 자신의 메일로 가입허용이라는 메시지가 올 것이다.
클릭하면 된다.(즉 가입해야 다운 받을 수 있다.)
4. 압축 공통 방식 : tar.gz파일, tar.bz2파일
tar.gz 파일명
예 : tar zxvf mysql-standard-4.0.23-pc-linux-gnu-i686.tar.gz
tar.bz2 파일명
예 : tar jxvf mysql-standard-4.0.23-pc-linux-gnu-i686.tar.bz2
4개의 파일을 모두 압축을 풀어 줘야 한다. 그럼 각각의 디렉토리가 생성 될 것이다.
5. 기존의 인스톨된 apache제거하기 : rpm패키지로 설치되어 있는 아파치 웹서버 프로그램을 삭제 해야 한다. 그렇다고 꼭 해야 하는 것은 아 니지만 공간도 차지하고 서로 충돌이 생길 가능성을 배제하긴 어렵다. 최적화를 위한 작은 성의정도....
- 아파치 데몬을 정지 시킨다.
/etc/rc.d/init.d/httpd stop
설명 : 아파치 1.3버전은 apache라는 이름으로 설치되지만, 2.0버전은
httpd라는 이름으로 설치되므로 두가지 모두 검색해서 나오는 것을 삭제
- rpm으로 아파치 검색 또는 제거
rpm -qi | grep httpd -> 아파치의 정보를 볼때 사용한다.
즉 화면에 정보가 추출되면 설치 되어
있으므로 제거 하면 된다.
rpm -e httpd --nodeps -> 의존성관련된 패키지를 먼저 제거해주고
RPM 패키지를 제거 한다.
- PHP, MySQL도 위와 같은 방식으로 하면 된다.(응용이 될 거라 생각한다.)
6. MySQL 설치 하기
- mysql 소스파일의 압축을 푼 디렉토리로 이동한다.
cd /usr/local/src/cd mysql-standard-4.0.23-pc-linux-gnu-i686
- configure로 환경 설정 한다.
./configure --prefix=/usr/local/mysql --with-charset=euckr
설명 : --prefix는 인스톨한 기본 디렉토리를 지정하는 옵션이다.
--with-charset=ecukr은 한글을 지원한다는 뜻이다.
보통 소스파일에서 환경설정시에 configure를 사용하는데 configure와
관련된 옵션은 ./configure --help 하면 볼 수 있다.
기타 다른 옵션은 불 필요 하므로 사용자에 따라 정의 하면 된다.
- make : 소스이기 때문에 컴파일 과정이 필요하다.
- make install : 컴파일한 것을 실행시켜 설치한다.
7. mysql의 테스트
/usr/local/mysql/bin/mysql_install_db
설명 : 처음 설치시 한번 꼭 실행한다. 이작업은 mysql기본 데이터베이스
인 mysql과 testdb를 설치해준다.
/usr/local/mysql/bin/mysqld_safe --user=root &
설명 : 설치된 디렉토리로 이동하여 데몬을 띄운다.
/usr/local/mysql/bin/mysql
설명 : mysql 실행
8. apache 설치
설치될 디렉토리만 configure 한다.
- 아파치 압축을 푼 디렉토리로 이동한다.
- ./configure --prefix=/usr/local/apache --enable=-mods-shared=most --enable-module=so
설명 : prefix는 아파치가 설치될 디렉토리를 지정 하는 것이고,
--enable=-mods-shared=most --enable-module=so은 DSO 방식으로 PHP 모듈이 사용 될 수 있다.
DSO 동적 모듈로 설정 할 경우 PHP를 업데이트 할때 처음부터 재 설치 하지 않아도 된다.
make
make install
9. 환경 설정 파일 ( httpd.conf ) 설정
- /usr/local/apache/conf/httpd.conf 환경설정파일
설명 : 자신이 설치한 디렉토리 및에 conf폴더가 보일 것이다.
conf폴더 밑에 httpd.conf의 파일을 연다.
- vi httpd.conf
- /ServerName 항목을 찾는다.
설명 : IP 주소나 Domain Name을 적는다.
- php관련 환경 설정 : AddType이라는 항목이 모여있는 곳으로 이동한 뒤
아래와 같이 추가한다.
- AddType application/x-httpd-php .php .htm .html .inc .php5 .php4
- AddType application/x-httpd-php-source .phps
- DirectoryIndex index.html index.php index.htm
설명 : www.mass.com/index.php를 할 필요가 없이 www.mass.com 으로 웹 페이지를 로딩 한다.
10. PHP 설치
- PHP압축을 푼 디렉토리로 이동한다.
- ./configure --prefix=/usr/local/php \
설명 : prefix는 PHP가 설치될 디렉토리를 지정한다.
--with-apxs2=/usr/local/apache/bin/apxs \
설명 : --with-apxs2는 php가 아파치데몬에 DSO 모듈로 로딩 되도록 하기 위한 것이다.
--with-mysql=/usr/local/mysql/ \
설명 : mysql과 연동 하기 위한 설정 부분 이다.
--with-config-file-path=/usr/local/apache/conf \
설명 : php.ini 경로의 위치를 저정 하는 옵션 이다.
--with-exec-dir=/usr/local/apache/bin \
설명 : 아파치 데몬의 실행경로를 지정 한다.
--with-zlib --with-gd --with-ttf --with-png --with-jpeg-dir \
설명 : --with-zlib : zlib 는 zip 나 gzip 에 사용되고 있는 압축 알고리즘을 라이브러리화한 것이다.
--with-gd : GD에 있는 함수를 이용해서 이미지를 편집할 수 있는 라이브러리 이다.
--with-ttf ,--with-png, --with-jpeg-dir : 위와 동일하며 각각의 설정 이다.
--with-freetype-dir --with-gmp --with-xml --with-mod-charset \
--with-iconv \
--with-language=korean --enable-mbstr-enc-trans --enable-mbstring \
--enable-track-vars \
--enable-trans-sid \
설명 : --enable-track-vars는 HTTP_GET_VARS, HTTP_POST_VARS,
--enable-iconv
설명 : iconv라는 함수를 사용 하기 위해 iconv 라이브러리를 설정 한다.
- make
- make install
- cp php.ini-dist /usr/local/lib/php.ini
설명 : PHP의 환경설정파일인 php.ini를 라이브러리 디렉토리에 등록 시킨다.
모든 설치는 완료 된 것이다. 하지만 이렇게 한다고 웹 서버가 구축 된 것은
아니다 왜냐면 환경 설정 부분에서 조금 남아 있기 때문이다.
마무리 작업을 하도록 하겠다.
11. Zend-Optimizer 설치
- Zend-Optimizer 압축을 푼 디렉토리로 이동한다.
- ./install.sh을 실행하여 절차대로 설치한다.
12. 아파치 테스트
- 문서는 /usr/local/apache/htdocs/ 밑에 있다 모두 지우고 다시 만들어도
된다. 그러므로 자신이 원하는 이름으로 만들어 본다.
- index.html 문서에 아래와 같이 만든다.
리눅스 웹 서버 만들기
리눅스에 미치든가 아니면 하지 않는다.
리눅스를 자신의 것으로 만들면 된다.
13. 아파치와 PHP가 제대로 연동되는지 테스트
- test.php에 간단한 PHP문서를 이용하여 phpinfo()라는 PHP정보를 보여주는
함수를 이용해서 작성한 뒤에 웹상에서 불러오도록 한다.
- test.php 문서
php.info();
?>
- 웹상에서 실행 해본다.
예) 192.xxx.xxx.xx/test.php
DNS를 구축 했을 경우 : mass.com/test.php
- 실행 해보면 zend와 각종 관련 정보가 보일 것이다. 그럼 이제 부터 나머지는
각자의 노하우로 하면 된다.
14. 간단한 TIP
- /etc/hosts 네트워크 환경 설정 파일 이용하기
설명 : 많은 사람들은 웹 페이지에서 사이트를 입력 할때 문자로 입력하지
숫자로 입력 하지는 않 숫자로 입력 하지는 않는다. 바로 그 부분을 담당하는 것이라고 생각
하면 된다. 자신의 localhost가 192.33.23.xx이라면 아래와 같이 하면된다.
- vi /etc/hosts
- 192.33.23.xx www.mass.com mass
설명 : 이렇게 하면 telnet 192.123.23.xx 하지 않고
telnet mass 하면 해당 주소로 바인딩 된다.
- /etc/hosts 설명 : DNS 서버를 사용하기 이전에 사용하던 파일로 IP주소와
호스트이름을 매핑시켜 데이터베이스화해서 사용하는 파일이다.
설치전에 꼭 밑의 두줄을 생성한다. 이것때문에 설치 중 문제가 발생하는 경우가 있다... 필수!!!
싫으면 말고..ㅡㅡ;; 후회할것이다.
왠만하면... /usr/local 경로에서 설치를 시작해라..ㅡㅡ;;
#rdate -s time.bora.net
#mkdir /usr/local/man/man1
CustomLog logs/access_log common << 이 부분을 수정
SetEnvIfNoCase Request_URI (gif|png|jpg|css|js|bmp|jpeg|swf)$ IMAGE=1
CustomLog /usr/local/apache2/logs/access_log common env=!IMAGE
//있는지 확인후 없으면 추가
LoadModule php5_module modules/libphp5.so
// php파일을 웹서버에서 인식하기 위해 아래두줄 추가
AddType application/x-httpd-php .php .html .htm .inc
AddType application/x-httpd-php-source .phps
//mysql 커멘드에서 디비서버에 계정을 생성
//GRANT all privileges on dbname.* TO id@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
-----------------------------------------------
2.3 RC.LOCAL
vi /etc/rc.d/rc.local
'한빛미디어' 의 '한빛네크워크' 에 가면 유용한 자료들을 볼 수 있다.
간혹 책 광고가 아니냐는 생각이 들지만 어차피 우린 책을 보고 배우는거 아닌가? 의문 가질 필요없다.
좋은 정보를 얻게되면 그만큼 나에게 가치가 되는것이거늘~!
개인적으로 좋와하는 툴은 SQLGate 이지만, 상용이라 부담이 되는건 사실이다. 트라이얼 버전으로 쓰다가 이네 컴퓨터를 밀고 다시 깔아야 하다는 그 사실이 서글프기만 하구나 ㅋㅋ
그래서, 아무래도 가장 익숙한(또한 기능은 그리 많지 않은) PhpMyAdmin 을 사용하게 된다. 보안 문제때문에 아무래도 쓰지가 그렇다고들 하시는데, 이 툴이 얼마나 많은 사람들을 개발자의 대열에 들어가게 하는데 힘이 되어주었는지는 아마 사용해본 사람은 잘 알것이다.(- 그렇게 믿고싶다.)
중요하다 생각되는 것은 툴이란 사용도구 일뿐이라는거다.
도구가 나를 대신에 긴 문장의 퀄리를 실행해주는것일 뿐이지, 내가 명령어나 구조를 모르면 결국 내가 할줄 아는 것은 없다는 것이지.
Copy&Paste 만 하다가 결국 코딩을 잃어버리는 것처럼.
기본은 가지고 잊지말고 사용을 해야한다는 점이다.
콘솔상에서 어느정도 구현이 가능해야 만약의 순간에 정말 자신이 개발자임을 느끼지 않을까.
말주변이 없다보니 조금 이상하게 흘러갔지만,
'운동을 통해 60킬로그램이나 감량,
그리고 최고의 모델이 된 사람.'
나의 독특한 이력과 이미지가 분명 많은 사람들에게
강하게 어필하리라 생각한 것이다. 다이어트의 성공은
무엇보다 엄청난 자신감을 불러왔다. 그랬다.
나는 더 이상 두려운 게 없었다.
태산이라도 옮겨놓을 수 있을 것 같았다.
- 김민철의《나는 나를 넘어섰다》중에서 -
* 다이어트가 무조건 좋은 것은 아닙니다.
그러나 다이어트의 성공 하나로 얻은 자신감과 용기가
한 사람을 세계적 모델로 만들고 CEO 자리에도 오르게
했습니다. 무슨 일이든 시작을 했으면 끝을 보십시오.
//---------------------
뭐든 첫 술에 배부를순 없다.
꾸준히 해야한다는거~!
요즘 수영에 슬 게을러져가는 걸 느낀다.
이럴때 더욱 열심히 할 계기를 만들어야 잘 나갈수 있지 않으까? ㅎㅎ
정상의 기업들이 계속 그 자리를 지키는 가장 큰 이유는
좋은 경영(good management) 때문이다.
이런 회사들은 고객의 소리에 귀 기울이고,
고객이 원하는 제품을 더 잘 만들도록 기술에 투자하고,
시장 트렌드를 주의깊게 관찰하여
가장 큰 이익을 보장하는 분야에 체계적으로 투자한다.
그리고 이런 무난한 경영으로 인해 그들은
어느새 시장의 리더십을 잃게 된다.
- 클레이튼 크리스텐슨, ‘혁신의 딜레마’에서
출처: 행복한 경영이야기
짐 콜린스는 그의 명저 ‘Good to Great'에서
’좋은 것은 위대한 것의 적이다
(Good is the enemy of the Great)‘라고
같은 원리를 갈파하고 있습니다.
조직내에 끝없이 탁월함을 추구하는 DNA를 심어야만
살아남을 수 있는 시대가 되었음을
냉정하게 인식할 수 있어야 합니다.