2010년 1월 9일 토요일
2009년 12월 30일 수요일
XE 설치
/pub/linux/centos/5.2/os/i386
useradd 만들id
(-D옵션을 통해 루트 디렉토리를 정할 수 있다)
passwd 만들id
groupadd 그룹이름
- apache 2.2.11
다운로드 : http://httpd.apache.org/ - php 5.2.9
다운로드 : http://php.net/ - mysql 5.0.77
다운로드 : http://mysql.com/ mysql-5.0.77-linux-i686-icc-glibc23.tar.gz
단, mysql은 성능 향상을 위해서 직접 컴파일 하지 않고 Intel C/C++ compiled 를 사용하였습니다. - Zend Optimizer 3.3.3
다운로드 : http://zend.com - xCache 1.2.2 (공식사이트 적용 결과 eAccelerator로 채택)
다운로드 : http://xcache.lighttpd.net/ - eAccelerator 0.9.5.3
다운로드 : http://bart.eaccelerator.net/source/0.9.5.3/
MySQL 5.0.77 설치
- 다운 받은 mysql-5.0.77-linux-i686-icc-glibc23.tar.gz 를 /usr/local/msyql-5.0.77-linux-i686-icc-glibc23.tar.gz 로 복사합니다.
파일 이름은 버전, glibc 버전에 따라 다를 수 있습니다.
/bin/cp msyql-5.0.77-linux-i686-icc-glibc23.tar.gz /usr/local - /usr/local 디렉토리로 이동합니다.
cd /usr/local - 압축 해제를 합니다.
tar xvfz msyql-5.0.77-linux-i686-icc-glibc23.tar.gz - mysql 버전 업그레이드시마다 디렉토리 명을 재지정하지 않기 위해 심볼릭 링크를 겁니다.
ln -s msyql-5.0.77-linux-i686-icc-glibc23 mysql
위와 같이 하면 차후부터 /usr/local/mysql 을 mysql의 경로로 지정하면 됩니다.
다만 /usr/local/mysql/data 디렉토리의 경우 잘 관리를 해주어야 합니다. - mysql에서 권장하는 데로 mysql 계정과 그룹을 생성하여 줍니다.
groupadd mysql
useradd -g mysql mysql - mysql디렉토리에 권한을 부여합니다.
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql . - DB 인스톨을 합니다. (Intel C/C++ 컴파일 버전은 따로 컴파일 할 필요 없이 DB 생성을 하면 됩니다.
./scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data - mysql 대몬을 시작합니다.
./bin/mysqld_safe --user=mysql & - 새롭게 MySQL을 설치한 경우 MySQL ROOT 비밀번호를 지정해주어야 합니다.
./bin/mysqladmin -u root password '비밀번호'
이제 mysql 설치는 끝났고 /usr/local/mysql/bin/mysql -u root -p 명령을 통해서 root 계정으로 접속 테스트를 하면 됩니다.
*주의: XE를 설치하기전에 시스템을 재부팅하면 mysql 을 시작할 수 없다.
mysql 이 시작되지 않으면 다시 설치하여야 한다.
Error
091122 2:38:19 [Warning] Can't create test file /var/lib/mysql/localhost.lower-test
/usr/local/mysql/bin/mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 2)
091122 2:38:19 [ERROR] Aborting
091122 2:38:19 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
# mkdir /var/lib/mysql && chown -R mysql /var/lib/mysql
Apache, PHP 컴파일 설치
PHP는 Apache의 모듈로 탑재되어 동작을 하기에 Apache과 PHP는 같이 설치를 하는 것이 일반적입니다.
여기 사용된 Apache, PHP파일은 다음과 같습니다.
- Apache : httpd-2.2.11.tar.gz
- PHP : php-5.2.9.tar
프로그램 버전에 따라 다른 이름을 가질 수 있습니다만 각 압축을 해제한 파일을 아래와 같은 위치에 두도록 합니다.
- Apache : /root/httpd
- PHP : /root/php
아래와 같은 순서로 컴파일 하시면 됩니다.
- 아파치
[root@localhost apache]# ./configure --prefix=/usr/local/apache --enable-so --enable-modules=so --with-mpm=worker --enable-rewrite
[root@localhost apache]# make
[root@localhost apache]# make install
다양한 옵션을 줄 수 있지만 최소한의 설치만을 위해서 위와 같이 enable so, enable rewrite 만 옵션으로 두고 컴파일을 합니다.
설치되는 경로는 /usr/local/apache 로 합니다.
/usr/local/apache/bin/apachectl start
위의 명령으로 웹서버를 실행하여 확인하실 수 있습니다.
noacceptable C compiler found in $PATH 에러가 나오는 경우
[root@localhost apache]# rpm -qa|grep gcc // gcc가 깔렸는지 확인
libgcc-4.1.2-46.le5[root@localhost apache]#
// gcc가 깔리지 않은 경우이다.
[root@localhost apache]# yum install gcc
//gcc 설치
libapr-1.la 오류1 // 에러의 경우
[root@localhost apache]# yum install libtool
[root@localhost apache]# make distclean - PHP
PHP의 경우 다양한 연동 프로그램이 필요할 수 있습니다.
예를 들어 XE에서 썸네일을 만들기 위해 GD Library가 필요하기도 하고 png, gif등을 다루기 위한 라이브러리가 필요하기도 합니다.
소개하고 있는 CentOS에서는 yum을 이용하여 관련 라이브러리들을 먼저 설치할 수 있고 다른 리눅스 OS도 비슷한 라이브러리 설치 도구를 제공할 것입니다.- 필요한 라이브러리 설치 (CentOS)
yum -y install libxml2 libjpeg libpng freetype - PHP 컴파일
에러 나는 경우
한줄 해결 yum install libxml2-devel openssl-devel bzip2-devel curl-devel libjpeg-devel libpng-devel freetype-devel gmp-devel mysql-devel ncurses-devel unixODBC-devel pspell-devel net-snmp-devel
1) Configure: error: xml2-config not found. Please check your libxml2 installation.
해결책 : #yum install libxml2-devel
2) Checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's <evp.h>
해결책 : #yum install openssl-devel
3) Configure: error: Please reinstall the BZip2 distribution
해결책 : # yum install bzip2-devel
4) Configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
해결책 : # yum install curl-devel
5) Configure: error: libjpeg.(also) not found.
해결책 : # yum install libjpeg-devel
6) Configure: error: libpng.(also) not found.
해결책 : # yum install libpng-devel
7) Configure: error: freetype.h not found.
해결책 : #yum install freetype-devel
8) Configure: error: Unable to locate gmp.h
해결책 : # yum install gmp-devel
9) Configure: error: Cannot find MySQL header files under /usr.
Note that the MySQL client library is not bundled anymore!
해결책 : # yum install mysql-devel
10) Configure: error: Please reinstall the ncurses distribution
해결책 : # yum install ncurses-devel
11) Checking for unixODBC support... configure: error: ODBC header file '/usr/include/sqlext.h' not found!
해결책 : # yum install unixODBC-devel
12) Configure: error: Cannot find pspell
해결책 : # yum install pspell-devel
13) Configure: error: snmp.h not found. Check your SNMP installation.
해결책 : # yum install net-snmp-devel
펼쳐두기..
# tar xvfj php-5.2.9.tar.bz2Warning: Cannot use a scalar value as an array in phar://install-pear-nozlib.phar/PEAR/ChannelFile.php on line 1391 에러가 나는 경우
http://dev.messfilm.com/125
# mv php-5.2.9 /root/php
# cd /root/php
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --enable-magic-quotes --disable-dmalloc --enable-bcmath --enable-gd-native-ttf --enable-sysvsem --enable-sysvshm --enable-inline-optimization --enable-mbstring --enable-mbregex --enable-gd-native-ttf --enable-ftp --with-jpeg-dir --with-freetype-dir --with-curl --with-zlib --with-gd --with-ttf --with-iconv --disable-debug
make
make install - PHP의 make install 시에 libmysqlclient.so.15 를 찾을 수 없다는 에러가 나오면 다음과 같이 해당 파일을 symbolic link로 처리할 수 있습니다.
ln -s /usr/local/mysql/lib/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so.15
다시 make install 하면 됩니다. - php.ini 파일 복사/ 설정
php 구동시 기본 설정을 읽는 php.ini 파일을 여기서는 /usr/local/php/lib/php.ini로 복사 합니다.
cp php.ini-dist /usr/local/php/lib/php.ini
위 파일을 열고 아래 부분을 수정합니다.
register_globals = Off
post_max_size = 200M
file_uploads = On
upload_tmp_dir = /tmp
uplaod_max_filesize = 200M
allow_url_fopen = Off
allow_url_include = Off
위의 설정중 이미 동일하게 설정된 것도 있을 수 있습니다.
post_max_size는 post되는 정보의 사이즈를 설정하는 것이고 upload_max_filesize는 업로드 가능한 최고용량이니 서비스에 맞게 적절히 수정하시면 됩니다.
- 필요한 라이브러리 설치 (CentOS)
- Zend Optimizer 설치
PHP의 기본 상태로 사용시 성능이 매우 저조한데 이를 위해 Zend Optimizer를 설치합니다.
다운로드 받은 Zend Optimizer 압축 해제후 아래와 같이 실행하면 자동으로 설치 됩니다.
./install
위 스크립트를 실행하면 설치 스크립트가 자동으로 위치를 읽어서 진행을 하게 됩니다.
Zend Optimizer를 설치하면 /etc/php.ini 는 /usr/local/Zend/etc/php.ini 로 대체됩니다.
관련문서1 관련문서2 - Apache에 PHP 설정하기
아파치 설정파일에 PHP 실행을 연동하기 위한 설정을 합니다.
/usr/local/apache/conf/httpd.conf 파일을 열어서 아래와 같은 부분을 변경합니다.
LoadModule php5_module modules/libphp5.so
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
<IfModule mime_module>
...
AddType application/x-httpd-php .php
...
</ifModule> - xCache 연동 (eAccelerator로 대체)
- eAccelerator 설치
bash: phpize: command not found
다운로드 받은 파일의 압축을 풀고 다음과 같이 설치하시면 됩니다.*압축풀기 명령어 tar xfvj
bash: phpize: command not found
yum install php-devel
- 관련문서 PHP - eAccelerator 설치# tar xvfj eaccelerator-0.9.5.3.tar.bz2
# cd eaccelerator-0.9.5.3
# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
# make && make install
그리고 /usr/local/Zend/etc/php.ini 파일을 열어서 Zend Optimizer 문 위에 아래와 같은 내용을 입력하세요.
zend_extension_ts="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.log_file="/var/log/eaccelerator.log"
* /var/cache/eaccelerator 디렉토리를 생성하셔야 합니다.
# mkdir /var/cache/eaccelerator
# chown nobody /var/cache/eaccelerator
# chmod 700 /var/cache/eaccelerator
정상적으로 설치 되었다면 위와 같이 eAccelerator, Zend Optimizer 둘다 보여야 합니다.
mysql 시작
/usr/local/mysql/bin/mysqld --user=mysql &
아파치 시작
/usr/local/apache/bin/apachectl restart
/usr/local/Zend/etc/php.ini
/usr/local/apache/htdocs
/usr/local/apache/conf/httpd.conf
/usr/lib/php/modules/eaccelerator.so
/etc/vsftpd/vsftpd.conf
펼쳐두기..
mysql 접속이 안될경우
# /usr/local/mysql/bin/mysqld_safe --user=mysql&
# mkdir /var/run/mysqld && chown mysql /var/run/mysqld
재부팅 후 # ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
<naljebii> man 파일은 /usr/share/man/0/
<naljebii> 실행 파일은 /usr/bin/
<naljebii> 라이브러리는 /usr/lib
<naljebii> 라이브리리 링크지
* bluetux (~terry@115.93.180.244) Quit (Quit: Leaving)
<naljebii> 라이브러리는 /usr/lib/mysql
<naljebii> 또 뭐있지
<naljebii> info파일은
<naljebii> man shared
<naljebii> db파일은
<naljebii> 어디였지 /var/mysqld 였나
<naljebii> 로그는 /var/log/mysql
Can't connect to local MySQL server throught socket '/var/lib/mysql/mysql.sock' (2)
<엘카> mysql -u root -p mysql
// check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
#vi /usr/local/apache/htdocs/conf/httpd.conf
#URL Rewrite 설정
<Directory "/usr/local/apache/htdocs">
...
AllowOverride All
...
</Directory>
비어있는 디렉토리 접근 불가
Options Indexes FollowSymLinks -> Options FollowSymLinks
ssh 설정
#vi /etc/ssh/sshd_config
#PermitRootLogin yes -> PermitRootLogin no
/* vsftpd 설정 */
/etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
anonymous_enable=NO
#vi /etc/vsftpd/chroot_list