httpd.conf설정파일에서
- AddType application/x-httpd-php .php
이렇게 적어주면 확장자가 php인것만 php parser가 해석하려 한다.
그러나 일반적으로 .html .htm 문서에도 php구문이 들어가기 마련이다.
그러므로
- AddType application/x-httpd-php .php .html .htm
으로 적어두자
===============================================================================
* MySQL, PHP, Apache 설치한다.
mysql postgresql oracle sybase infomix
속도 3 1 1 3 3
기능 1 3 3 2 2
안정성 2 2 2 3 3
mysql : 중소 호스팅 업체 대부분
oracle : 일반기업
sybase : 금융권
informix : 전산관련
* db의 파일 size가 2G정도를 넘어가게 되면 mysql로는 어려워 informix나 sybase를
이용하게 된다.
===============================================================================
레드햇 7.3이하에서 설치방벙으로 8.0에서는 에러난다. pgcc가 돌아가지 않고
db파일도 생성되지 않는다. 물론 밑에 방법이 있다. 편법..^^
*. MySQL 설치
===============================================================================
1. 일단 기존의 MySQL을 모두 삭제하자
- 의존성이 걸려있으므로 하나하나 삭제하고
- rpm -e --nodeps mysql 기타등등 기타등등
- pcpp를 시스템에 설치하자..
2. pgcc 설치
- tar xvfz pgcc-2.xxx.xxx.tar.gz -C /
- /usr/local/pgcc에 설치된다.
- bin/의 gcc와 cpp를 pgcc와 pcpp로 이름을 바꾸어 헷갈리지 않게 사용하자.
- ~/.bash_profile 에 path를 걸어주자.
- . .bash_profile 로 설정파일을 읽어들이자
3. 아래와 같이 스크립트 파일을 작성하자.
#!/bin/bash
# 옵션 설정 시작 - 펜티엄 최적화
CC="/usr/local/pgcc/bin/pgcc"
# 컴파일러를 pgcc로 선택
CFLAGS="-O6 -mpentiumpro -mstack-align-double -fomit-frame-pointer -march=pentiumpro"
CXX="/usr/local/pgcc/bin/pgcc"
# c++ 컴파일러 내용
CXXFLAGS="-O6 -mpentiumpro -march=pentiumpro -mstack-align-double -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"
# 초기화 설정 - 디렉토리지정, 클라이언트,서버 정적 라이브러화"
# - 문자셑지정, 디버깅하지 않음, 트랜잭션사용"
./configure --prefix=/usr/local/mysql --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=euc_kr --without-debug --enable-assembler
#--with-innodb
# all-static으로 정적으로 설치하자 속도를 위해서, 아파치의 경우도 비슷하지만 아파치는 속도차가
# 거진 안난다. 그러나 mysql의 경우 속도차가 있으므로 정적으로 설치하는 옵션으로 항상설치하자
# mysql은 기본적으로 API가 C 이므로 C와 연동하기 위하여 --enable-assembler옵션을 주자
# 컴파일
make
# 설치
make install
#/usr/local/mysql/bin/mysql_install_db
4. bin/ mysqldump : SQL언어로 backup
mysqlimport : text파일을 db화 시킬때
: 기타 여러 명령어들이 있으므로 공부하여 활용하자. ^^
include/mysql/ : 여러 API(C, php,...)들이 mysql을 사용하기위해 쓰이는 header 파일
이곳의 파일을 수동으로 이용하기도 하므로 기억하자
lib/mysql/ : xxx.a : 정적 라이브러리
: xxx.so : 공유 라이브러리
libexec/mysqld : 실제 작동되는 mysql daemon이다.
===============================================================================
===============================================================================
share/mysql/ my-huge.cnf, my-large.cnf, my-medium.cnf .... : 기본적인 설정파일이다.
5. 구동
- ./mysql-install-db : 설치후 처음 한번 실행한다.
* var/ 방이 만들어진다.
* db는 디렉토리 형태로 생성된다.
* 처음 var/방의 소유권이 root이므로
chown -R mysql.mysql var로 소유권을 바꿔준다.
- safe-mysqld & : 로 구동한다.
6. 레드햇 8.0에서는 위와 같이 할 경우 에러가 나므로(db가 생성이 안됨)아래와 같은
작업을 따로 해 주자.
- 일단 예전의 db 파일을 다운(mysql-default-db.tgz)받아서 var/ 방에서 압축을 풀자
* var/mysql에 파일이 풀려 있을 것이다.
7. 위 6번의 설정은 편법이므로 아래의 옵션으로 다시 설치해 보자
- 레드햇 8.0에서 에러가 발생하므로 static옵션을 빼고 --disable-shared옵션으로 다시 설치한다.
#!/bin/bash
CC=gcc
CFLAGS="-O3 -mpentiumpro"
CXX=gcc
CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti"
export CC CFLAGS CXX CXXFLAGS
./configure --prefix=/usr/local/mysql --with-charset=euc_kr --without-debug --enable-assembler --disable-shared
# 컴파일
make
# 설치
make install
#/usr/local/mysql/bin/mysql_install_db
8. 6, 7번의 과정을 거친후 아래와 같이 설정을 한다.
- /usr/local/mysql/share/mysql/my-medium.cnf 를 /etc/my.cnf로 복사하자.
- /usr/local/mysql/share/mysql/mysql-server를 /etc/rc.d/init.d/mysqld로 복사하자
- chmod 755로 퍼미션 변경후
- ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S99mysqld로 링크 걸어주자.
9. MySQL 설치후 해야 할 일(기본 port;3306)
- MySQL의 기본 암호는 없으므로 반드시 설치후 암호를 넣어준다.
- 5.번의 과정을 마친후
* mysqladmin password xxxxxx
* mysql -p
> 암호 입력하여 접속
* > use mysql;
* > show tables;
* > select * from user;
* > update user set password=password('xxxxxx');
- 기본 사용자의 각 필드도 모두 암호를 걸어주자
- 사용자가 추가되면 조건식으로 암호를 준다.
* exit
* mysqladmin -p shutdown
- 암호가 있으므로 서비스 중지도 -p옵션으로 한다.
10. 암호 잊어버렸을때
- kill psnumber로 강제로 일단 죽인다.
- ./safe_mysql -Sg & : 싱글모드로 작동하는 것과 같은 것이다.
- 위와 같이 데몬 실행시킨후 mysql에 접속한다.
- > use mysql
- > update user set password=password('new-password') where user='root';
- 상기와 같은 방법으로 루트의 패스워드를 바꾸어준다.
- 서비스 죽이고 다시 재가동하여 서비스를 재개하자. 성공
11. 암호 자동입력
- 개인 : ~/.my.cnf 파일을 만들어
[client]
user=root
host=localhost
password=xxxxxx
위와 같이 기록한 후 퍼미션을 600으로 하자
- 전체 : /etc/my.cnf
패스워드부분을 고쳐주면 된다.
당연히 퍼미션을 600으로 바꾸자.
- /etc/my.cnf에서 log-bin을 반드시 주석처리하자.
- set-variable 부분을 자세히 공부하자.
/etc/my.cnf
# Example mysql config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# a important part and systems up to 128M very MySQL is used together with
# other programs (like a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /usr/local/mysql/var) or
# ~/.my.cnf to set user-specific options.
#
# One can in this file use all long options that the program supports.
# If you want to know which options a program support, run the program
# with --help option.
# The following options will be passed to all MySQL clients
[client]
#password = skaTldkwjTl
# 패스워드 설정을 이곳에서 해두면 mysql 접속시 암호 입력이 필요없다.
# 이 파일은 퍼미션을 600으로 해 두자.
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
set-variable = key_buffer=16M
# > show variables 의 옵션내용들로
# ./safe_mysqld & -- 옵션으로 시작하여도 되면 아래의 옵션을 직접 고쳐서
# 사용해도 된다.
# backlog나 maxconnect 부분이 중요하다.?????
set-variable = max_allowed_packet=1M
set-variable = table_cache=64
set-variable = sort_buffer=512K
set-variable = net_buffer_length=8K
set-variable = myisam_sort_buffer_size=8M
#log-bin
# log-bin은 주석처리 하자 자세한 데이타 흐름을 분석할 때 사용하는 것으로
# 주석처리 하지 않으면 로그파일이 너무 많이 발생하여 서비스에 많은 무리가
# 온다.
server-id = 1
# Point the following paths to different dedicated disks
#tmpdir = /tmp/
#log-update = /path-to-dedicated-directory/hostname
# Uncomment the following if you are using BDB tables
#set-variable = bdb_cache_size=4M
#set-variable = bdb_max_lock=10000
# Uncomment the following if you are using Innobase tables
#innodb_data_file_path = ibdata1:400M
#innodb_data_home_dir = /usr/local/mysql/var/
#innodb_log_group_home_dir = /usr/local/mysql/var/
#innodb_log_arch_dir = /usr/local/mysql/var/
#set-variable = innodb_mirrored_log_groups=1
#set-variable = innodb_log_files_in_group=3
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#innodb_log_archive=0
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M
#set-variable = innodb_file_io_threads=4
#set-variable = innodb_lock_wait_timeout=50
[mysqldump]
quick
set-variable = max_allowed_packet=16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[isamchk]
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[myisamchk]
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[mysqlhotcopy]
interactive-timeout
===============================================================================
PHP 설치
apache의 module로 동작하도록 설치하는 방법이다.(php재설정시 apache가 재구동)
따로 설치할 경우 CGI로 동작하게 되는 것이다.
===============================================================================
1. 아래와 같은 간단한 스크립트로 설치하자.
#!/bin/bash
./configure --with-apache=/usr/local/src/apache_1.3.27 --enable-calendar
--enable-ftp --with-mysql=/usr/local/mysql --enable-track-vars=yes
--with-config-file-path=/usr/local/apache --with-language=korean
--with-charset=euc-kr --enable-mailparse --with-imap=/usr/local/src/imap-2001a
make
make install
- apache 압축풀린 소스파일 경로 : /usr/local/src/apache_1.3.27
- apache 설치하려는 경로 : /usr/local/apache 라고 한다면
- mysql은 당연히 먼저 설치되어 있어야 하며, apache 압축푼 디렉토리의 경로명을
적어주어 compile된 php가 그 경로속에 포함되게 한다.
(그러고 난 후 apache 설치하면 php가 포함되게 된다.)
그리고 apache가 설치될 디렉토리 또한 적어준다.
- 그러나 위와 같이 하면 에러가 발생한다. 이는 apache에서 설치될 경로가 아직
선정되지 않았기 때문이다. 압축이 풀려있는 apache디렉토리에서 아래와 같이 해준다.
* ./configure --prefix=/usr/local/apache
그리고 나서 다시 위의 스크립트를 돌리면 설치가 된다.
- make install 이 끝나면 /usr/local/src/apache_1.3.27/src/modules에
php4/, standard/, Makefile이 생성되게 된다.
이곳의 모듈들이 apache DSO방식 설치시 모듈로 작동되게 되는 것이다.
===============================================================================
아파치에서 옵션에서 CGI를 사용못하게 하더라도 CGI 모듈이 돌아가고 있다면
.htaccess파일을 개인사용자가 자신의 디렉토리에 생성하여 CGI를 사용할수 있다.
그러므로 httpd.conf의 loadmodule을 주석처리하여 원천적으로 봉쇄해야 한다.
그러나 DSO로 설치하지 않았다면 골치아파진다. 다시 컴파일 해여 하겠지 ~~ 에궁..
아파치 설치시 --enable-module=all로 설치했다면 실험적인 module인
/usr/local/src/apache_1.3.27/src/modules/experemental 등의 모듈까지 설치되므로
설치후에 loadmodule을 반드시 주석처리하자
module에 대해 어느정도 지식을 갖도록 공부하자.
===============================================================================
apache 설치
===============================================================================
1. 아래와 같은 간단한 스크립트를 작성하여 인스톨 하자
#!/bin/bash
./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --enable-module=all --enable-shared=max
- libphp4.a 가 libphp4.so로 변환되게 된다. 내용은 같고 이름만 다른
* a : 정적라이브러리, so : 공유라이브러리
2. httpd.conf설정파일 수정
- AddType application/x-httpd-php .php
- AddType application/x-httpd-php-source .phps
* 위와 같이 적어주면 모든 디렉토리에서 php가 작동하게 된다.
특정 디렉토리에서만 작동되게 하려면 사이에
넣어주면 되겠지 위 옵션들을 키득키드 ~~~
* 그러나 해당 디렉토리만(자료실 등등) 작동안되게 하려면
사이에
AddType application/x-httpd-php-source .php .htm .html
를 추가하자. 그러면 소스가 보여진다. 허허 좋구나..
3. 설정파일 복사
- php 압축푼 디렉토리에서 php.ini-dist, php.ini-recommended 를 apache 설치디렉토리
/usr/local/apache 디렉토리로 복사한다.(--with-config-file-path=/usr/local/apache)
로 설정되어 있기 때문이다. 유의하자.
- php.ini-dist 는 개발목적의 경우에 사용하는 설정파일로 보안도 높고 그렇다..ㅋ
- php.ini-recommended 는 일반 상업적 목적의 홈페이지에 적용되는 설정파일이다. ㅋ
- php.ini-recommended를 php.ini로 복사하자.
- 예전 php와 호환되기 위하여
register_globals=on
register_argc_argv=on 으로 고치자.
===============================================================================
===============================================================================
- php만 업그레이드 할 경우
새로운 php로 설치를 마친후
apache 소스 디렉토리에서 ./configure --activate-module=src/modules/php4/libphp4.a 와
make만 하면 apache_1.3.27/src/modules/php4 밑에 libphp4.so가 생성된다.
이 파일을 아파치가 설치된(/usr/local/apache/libexec)로 복사한후
아파치를 재구동하게 되면 아파치의 재 컴파일 없이 php가 업그레이 된다.
업그레이드 하기 전에 예전 파일을 백업해 두자
loadmodule에서 여러가지 이름으로 변화하여 불러들일수도 있다.^^
- imap 추가 설치하자..
우선 imap을 다운받아서 적당한 디렉토리에 압축을 풀고 make slx 하자
php, apache 소스디렉토리에서 우선 make clean 하자 안심하게.. ^^
php를 새로 컴파일 할때 --with-imap=/usr/local/imap 으로 인식하게 하자.
php 설치후 아파치에서 컴파일 과정을 거친후 make 하여 libphp4.so 파일을 만들어
이 파일을 아파치 설치된 libexec/ 에 적당한 이름으로 넣어두자.
그리고 httpd.conf에서 이 모듈을 불러 들이자..
===============================================================================
- AddType application/x-httpd-php .php
이렇게 적어주면 확장자가 php인것만 php parser가 해석하려 한다.
그러나 일반적으로 .html .htm 문서에도 php구문이 들어가기 마련이다.
그러므로
- AddType application/x-httpd-php .php .html .htm
으로 적어두자
===============================================================================
* MySQL, PHP, Apache 설치한다.
mysql postgresql oracle sybase infomix
속도 3 1 1 3 3
기능 1 3 3 2 2
안정성 2 2 2 3 3
mysql : 중소 호스팅 업체 대부분
oracle : 일반기업
sybase : 금융권
informix : 전산관련
* db의 파일 size가 2G정도를 넘어가게 되면 mysql로는 어려워 informix나 sybase를
이용하게 된다.
===============================================================================
레드햇 7.3이하에서 설치방벙으로 8.0에서는 에러난다. pgcc가 돌아가지 않고
db파일도 생성되지 않는다. 물론 밑에 방법이 있다. 편법..^^
*. MySQL 설치
===============================================================================
1. 일단 기존의 MySQL을 모두 삭제하자
- 의존성이 걸려있으므로 하나하나 삭제하고
- rpm -e --nodeps mysql 기타등등 기타등등
- pcpp를 시스템에 설치하자..
2. pgcc 설치
- tar xvfz pgcc-2.xxx.xxx.tar.gz -C /
- /usr/local/pgcc에 설치된다.
- bin/의 gcc와 cpp를 pgcc와 pcpp로 이름을 바꾸어 헷갈리지 않게 사용하자.
- ~/.bash_profile 에 path를 걸어주자.
- . .bash_profile 로 설정파일을 읽어들이자
3. 아래와 같이 스크립트 파일을 작성하자.
#!/bin/bash
# 옵션 설정 시작 - 펜티엄 최적화
CC="/usr/local/pgcc/bin/pgcc"
# 컴파일러를 pgcc로 선택
CFLAGS="-O6 -mpentiumpro -mstack-align-double -fomit-frame-pointer -march=pentiumpro"
CXX="/usr/local/pgcc/bin/pgcc"
# c++ 컴파일러 내용
CXXFLAGS="-O6 -mpentiumpro -march=pentiumpro -mstack-align-double -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"
# 초기화 설정 - 디렉토리지정, 클라이언트,서버 정적 라이브러화"
# - 문자셑지정, 디버깅하지 않음, 트랜잭션사용"
./configure --prefix=/usr/local/mysql --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=euc_kr --without-debug --enable-assembler
#--with-innodb
# all-static으로 정적으로 설치하자 속도를 위해서, 아파치의 경우도 비슷하지만 아파치는 속도차가
# 거진 안난다. 그러나 mysql의 경우 속도차가 있으므로 정적으로 설치하는 옵션으로 항상설치하자
# mysql은 기본적으로 API가 C 이므로 C와 연동하기 위하여 --enable-assembler옵션을 주자
# 컴파일
make
# 설치
make install
#/usr/local/mysql/bin/mysql_install_db
4. bin/ mysqldump : SQL언어로 backup
mysqlimport : text파일을 db화 시킬때
: 기타 여러 명령어들이 있으므로 공부하여 활용하자. ^^
include/mysql/ : 여러 API(C, php,...)들이 mysql을 사용하기위해 쓰이는 header 파일
이곳의 파일을 수동으로 이용하기도 하므로 기억하자
lib/mysql/ : xxx.a : 정적 라이브러리
: xxx.so : 공유 라이브러리
libexec/mysqld : 실제 작동되는 mysql daemon이다.
===============================================================================
===============================================================================
share/mysql/ my-huge.cnf, my-large.cnf, my-medium.cnf .... : 기본적인 설정파일이다.
5. 구동
- ./mysql-install-db : 설치후 처음 한번 실행한다.
* var/ 방이 만들어진다.
* db는 디렉토리 형태로 생성된다.
* 처음 var/방의 소유권이 root이므로
chown -R mysql.mysql var로 소유권을 바꿔준다.
- safe-mysqld & : 로 구동한다.
6. 레드햇 8.0에서는 위와 같이 할 경우 에러가 나므로(db가 생성이 안됨)아래와 같은
작업을 따로 해 주자.
- 일단 예전의 db 파일을 다운(mysql-default-db.tgz)받아서 var/ 방에서 압축을 풀자
* var/mysql에 파일이 풀려 있을 것이다.
7. 위 6번의 설정은 편법이므로 아래의 옵션으로 다시 설치해 보자
- 레드햇 8.0에서 에러가 발생하므로 static옵션을 빼고 --disable-shared옵션으로 다시 설치한다.
#!/bin/bash
CC=gcc
CFLAGS="-O3 -mpentiumpro"
CXX=gcc
CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti"
export CC CFLAGS CXX CXXFLAGS
./configure --prefix=/usr/local/mysql --with-charset=euc_kr --without-debug --enable-assembler --disable-shared
# 컴파일
make
# 설치
make install
#/usr/local/mysql/bin/mysql_install_db
8. 6, 7번의 과정을 거친후 아래와 같이 설정을 한다.
- /usr/local/mysql/share/mysql/my-medium.cnf 를 /etc/my.cnf로 복사하자.
- /usr/local/mysql/share/mysql/mysql-server를 /etc/rc.d/init.d/mysqld로 복사하자
- chmod 755로 퍼미션 변경후
- ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S99mysqld로 링크 걸어주자.
9. MySQL 설치후 해야 할 일(기본 port;3306)
- MySQL의 기본 암호는 없으므로 반드시 설치후 암호를 넣어준다.
- 5.번의 과정을 마친후
* mysqladmin password xxxxxx
* mysql -p
> 암호 입력하여 접속
* > use mysql;
* > show tables;
* > select * from user;
* > update user set password=password('xxxxxx');
- 기본 사용자의 각 필드도 모두 암호를 걸어주자
- 사용자가 추가되면 조건식으로 암호를 준다.
* exit
* mysqladmin -p shutdown
- 암호가 있으므로 서비스 중지도 -p옵션으로 한다.
10. 암호 잊어버렸을때
- kill psnumber로 강제로 일단 죽인다.
- ./safe_mysql -Sg & : 싱글모드로 작동하는 것과 같은 것이다.
- 위와 같이 데몬 실행시킨후 mysql에 접속한다.
- > use mysql
- > update user set password=password('new-password') where user='root';
- 상기와 같은 방법으로 루트의 패스워드를 바꾸어준다.
- 서비스 죽이고 다시 재가동하여 서비스를 재개하자. 성공
11. 암호 자동입력
- 개인 : ~/.my.cnf 파일을 만들어
[client]
user=root
host=localhost
password=xxxxxx
위와 같이 기록한 후 퍼미션을 600으로 하자
- 전체 : /etc/my.cnf
패스워드부분을 고쳐주면 된다.
당연히 퍼미션을 600으로 바꾸자.
- /etc/my.cnf에서 log-bin을 반드시 주석처리하자.
- set-variable 부분을 자세히 공부하자.
/etc/my.cnf
# Example mysql config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# a important part and systems up to 128M very MySQL is used together with
# other programs (like a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /usr/local/mysql/var) or
# ~/.my.cnf to set user-specific options.
#
# One can in this file use all long options that the program supports.
# If you want to know which options a program support, run the program
# with --help option.
# The following options will be passed to all MySQL clients
[client]
#password = skaTldkwjTl
# 패스워드 설정을 이곳에서 해두면 mysql 접속시 암호 입력이 필요없다.
# 이 파일은 퍼미션을 600으로 해 두자.
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
set-variable = key_buffer=16M
# > show variables 의 옵션내용들로
# ./safe_mysqld & -- 옵션으로 시작하여도 되면 아래의 옵션을 직접 고쳐서
# 사용해도 된다.
# backlog나 maxconnect 부분이 중요하다.?????
set-variable = max_allowed_packet=1M
set-variable = table_cache=64
set-variable = sort_buffer=512K
set-variable = net_buffer_length=8K
set-variable = myisam_sort_buffer_size=8M
#log-bin
# log-bin은 주석처리 하자 자세한 데이타 흐름을 분석할 때 사용하는 것으로
# 주석처리 하지 않으면 로그파일이 너무 많이 발생하여 서비스에 많은 무리가
# 온다.
server-id = 1
# Point the following paths to different dedicated disks
#tmpdir = /tmp/
#log-update = /path-to-dedicated-directory/hostname
# Uncomment the following if you are using BDB tables
#set-variable = bdb_cache_size=4M
#set-variable = bdb_max_lock=10000
# Uncomment the following if you are using Innobase tables
#innodb_data_file_path = ibdata1:400M
#innodb_data_home_dir = /usr/local/mysql/var/
#innodb_log_group_home_dir = /usr/local/mysql/var/
#innodb_log_arch_dir = /usr/local/mysql/var/
#set-variable = innodb_mirrored_log_groups=1
#set-variable = innodb_log_files_in_group=3
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#innodb_log_archive=0
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M
#set-variable = innodb_file_io_threads=4
#set-variable = innodb_lock_wait_timeout=50
[mysqldump]
quick
set-variable = max_allowed_packet=16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[isamchk]
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[myisamchk]
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[mysqlhotcopy]
interactive-timeout
===============================================================================
PHP 설치
apache의 module로 동작하도록 설치하는 방법이다.(php재설정시 apache가 재구동)
따로 설치할 경우 CGI로 동작하게 되는 것이다.
===============================================================================
1. 아래와 같은 간단한 스크립트로 설치하자.
#!/bin/bash
./configure --with-apache=/usr/local/src/apache_1.3.27 --enable-calendar
--enable-ftp --with-mysql=/usr/local/mysql --enable-track-vars=yes
--with-config-file-path=/usr/local/apache --with-language=korean
--with-charset=euc-kr --enable-mailparse --with-imap=/usr/local/src/imap-2001a
make
make install
- apache 압축풀린 소스파일 경로 : /usr/local/src/apache_1.3.27
- apache 설치하려는 경로 : /usr/local/apache 라고 한다면
- mysql은 당연히 먼저 설치되어 있어야 하며, apache 압축푼 디렉토리의 경로명을
적어주어 compile된 php가 그 경로속에 포함되게 한다.
(그러고 난 후 apache 설치하면 php가 포함되게 된다.)
그리고 apache가 설치될 디렉토리 또한 적어준다.
- 그러나 위와 같이 하면 에러가 발생한다. 이는 apache에서 설치될 경로가 아직
선정되지 않았기 때문이다. 압축이 풀려있는 apache디렉토리에서 아래와 같이 해준다.
* ./configure --prefix=/usr/local/apache
그리고 나서 다시 위의 스크립트를 돌리면 설치가 된다.
- make install 이 끝나면 /usr/local/src/apache_1.3.27/src/modules에
php4/, standard/, Makefile이 생성되게 된다.
이곳의 모듈들이 apache DSO방식 설치시 모듈로 작동되게 되는 것이다.
===============================================================================
아파치에서
.htaccess파일을 개인사용자가 자신의 디렉토리에 생성하여 CGI를 사용할수 있다.
그러므로 httpd.conf의 loadmodule을 주석처리하여 원천적으로 봉쇄해야 한다.
그러나 DSO로 설치하지 않았다면 골치아파진다. 다시 컴파일 해여 하겠지 ~~ 에궁..
아파치 설치시 --enable-module=all로 설치했다면 실험적인 module인
/usr/local/src/apache_1.3.27/src/modules/experemental 등의 모듈까지 설치되므로
설치후에 loadmodule을 반드시 주석처리하자
module에 대해 어느정도 지식을 갖도록 공부하자.
===============================================================================
apache 설치
===============================================================================
1. 아래와 같은 간단한 스크립트를 작성하여 인스톨 하자
#!/bin/bash
./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --enable-module=all --enable-shared=max
- libphp4.a 가 libphp4.so로 변환되게 된다. 내용은 같고 이름만 다른
* a : 정적라이브러리, so : 공유라이브러리
2. httpd.conf설정파일 수정
- AddType application/x-httpd-php .php
- AddType application/x-httpd-php-source .phps
* 위와 같이 적어주면 모든 디렉토리에서 php가 작동하게 된다.
특정 디렉토리에서만 작동되게 하려면
넣어주면 되겠지 위 옵션들을 키득키드 ~~~
* 그러나 해당 디렉토리만(자료실 등등) 작동안되게 하려면
AddType application/x-httpd-php-source .php .htm .html
를 추가하자. 그러면 소스가 보여진다. 허허 좋구나..
3. 설정파일 복사
- php 압축푼 디렉토리에서 php.ini-dist, php.ini-recommended 를 apache 설치디렉토리
/usr/local/apache 디렉토리로 복사한다.(--with-config-file-path=/usr/local/apache)
로 설정되어 있기 때문이다. 유의하자.
- php.ini-dist 는 개발목적의 경우에 사용하는 설정파일로 보안도 높고 그렇다..ㅋ
- php.ini-recommended 는 일반 상업적 목적의 홈페이지에 적용되는 설정파일이다. ㅋ
- php.ini-recommended를 php.ini로 복사하자.
- 예전 php와 호환되기 위하여
register_globals=on
register_argc_argv=on 으로 고치자.
===============================================================================
===============================================================================
- php만 업그레이드 할 경우
새로운 php로 설치를 마친후
apache 소스 디렉토리에서 ./configure --activate-module=src/modules/php4/libphp4.a 와
make만 하면 apache_1.3.27/src/modules/php4 밑에 libphp4.so가 생성된다.
이 파일을 아파치가 설치된(/usr/local/apache/libexec)로 복사한후
아파치를 재구동하게 되면 아파치의 재 컴파일 없이 php가 업그레이 된다.
업그레이드 하기 전에 예전 파일을 백업해 두자
loadmodule에서 여러가지 이름으로 변화하여 불러들일수도 있다.^^
- imap 추가 설치하자..
우선 imap을 다운받아서 적당한 디렉토리에 압축을 풀고 make slx 하자
php, apache 소스디렉토리에서 우선 make clean 하자 안심하게.. ^^
php를 새로 컴파일 할때 --with-imap=/usr/local/imap 으로 인식하게 하자.
php 설치후 아파치에서 컴파일 과정을 거친후 make 하여 libphp4.so 파일을 만들어
이 파일을 아파치 설치된 libexec/ 에 적당한 이름으로 넣어두자.
그리고 httpd.conf에서 이 모듈을 불러 들이자..
===============================================================================
'Computer > Linux' 카테고리의 다른 글
Network (0) | 2005.06.10 |
---|---|
MySQL (0) | 2005.06.10 |
Apache (0) | 2005.06.10 |
NameServer (0) | 2005.06.10 |
ProFTP 보안(조별발표자료) (0) | 2005.06.10 |