CentOS 4.4에 Sendmail로 송신 테스트를 하기 위해 설치 하던중
sendmail.cf를 만드는 과정에서 다음과 같은 에러가 났다.
에러:
/etc/mail/sendmail.cf
`/usr/share/sendmail-cf/m4/cf.m4′: No such file or directory
했다.
(CentOS4.4에 기본적으로 들어있지 않는듯 하다.)
해결:
CentOS 4.4에 Sendmail로 송신 테스트를 하기 위해 설치 하던중
sendmail.cf를 만드는 과정에서 다음과 같은 에러가 났다.
에러:
(CentOS4.4에 기본적으로 들어있지 않는듯 하다.)
해결:
1. 필요한 데몬
– portmap : NFS가 RPC 기반으로 돌아 가기 때문에 rpcbind의 매핑위해 필용한 데몬
– rpc.nfsd : NFS데몬으로 실제로 NFS로 파일 시스템을 공유 가능하게 해줌
– rpc.mountd : 마운트를 가능하게 해주는 데몬
* nfs 관련 패키지가 설치 되어 있지 않으면 레드햇은 RPM으로 nfs-utils 와 portmap
을 받아서 설치 하면 됨
(대부분의 리눅스 시스템에서는 기본적으로 설치 되어 있음)
2. 데몬 실행 (portmap 을 먼저 실행 해야 함)
– /etc/init.d/portmap start
– /etc/init.d/nfs start
– 실행 확인 : rpcinfo -p
– checkconfig 명령을 이용 해서 리부팅 할때 자동으로 실행 하게 하면 편리 함
checkconfig –leve 3 nfs on
3. 설정 파일
– /etc/exports 파일을 수정하고 portmap restart 명령을 내리면 됨
– 설정 방법
/test 192.168.0.10(rw) –> 192.168.0.10 서버에서 리드 라우트 권한을 가짐
/test 192.168.0.10(ro) –> 192.168.0.10 에서 읽기 권한만 가짐
/test 192.168.0.10(rw)
/test/test2 192.168.0.10(noaccess) –> 하위 디렉토리 접근 권한 없음
/test 192.168.0.10(rw,root_squash) –> 루트로 마운트시 루트 권한이 아닌
nfsnobody 권한으로 사용 하게 됨
no_root_squash 로 하면 root권한으로 사용(보안적인 문제로 인하여 잘
사용 하지는 않음)
기본 값은 root_squash 임
/test 192.168.0.10(rw,all_squash) –> 일반 사용자 모두 nfsnobody 로 매핑
되어 사용 함, 각각의 계정으로 사용 하려면 no_all_squash로 설정 함
no_all_squash 가 기본 값임
/etc 192.168.0.19(rw,anonuid=510,anongid=510) –> 특정 계정으로 권한을 줌
* nfsnobody 로 할 경우 UID가 지 맘대로 정해 지는 현상이 있음으로 그것에 맞게
nfs서버에서 디렉토리 권한을 바꾸주면 됨
4. 클라이언트에서 NFS 붙이기
– NFS 서버에 공유된 디렉토리를 확인합니다.
showmount -e <서버 IP>
– 공유된 디렉토리를 마운트할 로컬 디렉토리를 만들어 줍니다. 이건 mkdir로 ㅎ
– 이제 마운트 해줍니다.
mount -t nfs <서버 IP>:<디렉토리> <로컬 디렉토리>
ex) mount -t nfs 192.168.0.1:/usr/local /localmount
* 자동 마운트를 할경우
클라이언트의 /etc/fatab 에 다음 항목 추가
192.168.0.10:/home/jook /data nfs defaults 0 0
PHP 설치시 다음과 같은 오류 발생시.. 해결방법
/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1
#1 첫번 째 해결 방법
yum install libtool-ltdl-devel
이후 다시
make all
위와 같은 명령어를 실행해 libtool-ltdl-devel 를 설치 했음에도 오류가 발생된다면,
#2 두번 째 해결 방법
위와 같은 에러가 발생 시에는 아래와 같이 파일을 수정하도록 합니다.
$ vi ext/standard/dl.c
수정 전 | |
23 24 |
#include “php.h” |
아래와 같이 #define HAVE_LIBDL 1 항목을 추가해주면 됩니다.
수정 후 | |
23 |
#define HAVE_LIBDL 1 #include “php.h” |
이후 다시
make all
을 실행하여 컴파일 하니.. 정상적으로 컴파일 된다.
CentOS 5.6 에서 CMake 로 MySQL 설치시 오류가 날 경우 해결 방법
— The CXX compiler identification is unknown
CMake Error: your CXX compiler: “CMAKE_CXX_COMPILER-NOTFOUND” was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
— MySQL 5.5.17
— Configuring incomplete, errors occurred!
CMake 설치시 일부 패키지가 없어서 오류가 날 경우 다음의 패키지를 yum 으로 설치하면 된다.
[출처] fedora12 i386 에서 android build 환경 만들기|작성자 고파티
참고 : http://heewon0117.blog.me/120123652471
추가하고자 하는 모듈 대부분은 php 소스에 있으므로 처음 PHP 설치시 모듈을 추가하지 않았다면 다음의 방법으로 추가할 수 있다. (php 재설치 없이)
EX) curl 모듈을 기존 php에 추가하는 방법
Ex . 모듈 설치(curl)
cd php소스 디렉토리/ext/curl
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config –with-curl=/usr/local/curl
make
make install
——————————————————————————————
을 하면 대충 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/
에 curl.so 이 생긴다
——————————————————————————————
cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/
cp curl.so /usr/local/apache/modules/
vi /usr/local/php/lib/php.ini
————————————————
;extension_dir = “./”
extension_dir = “/usr/local/apache/modules”
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
extension=curl.so
—————————————-
리눅스 시스템에서의 GD 라이브러리 설치법
—————————————-
검색으로 찾아낸 설치법들을 확인한결과… 상당히 번거로운 라이브러리로 보인다.
이것저것 부가적으로 설치해야되는 라이브러리가 4개나 된다.
1. 필요한 라이브러리 좌표
– zlib 다운로드 : http://www.zlib.net
– png 다운로드 : http://www.libpng.org/pub/png/libpng.html
– JPEG 다운로드 : http://www.ijg.org
– freetype 다운로드 : http://download.savannah.gnu.org/releases/freetype/
– GD 다운로드 : http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
※ 첫 설치하면서 함께 포스팅중이다. 최신버전의 라이브러리를 받아서 진행중임!!
※ root 디렉토리에 다운 받음
2. zlib 설치
./configure -shared -prefix=/usr/local/zlib
make
make install
3. png 설치
./configure -prefix=/usr/local/libpng
make
make install
4. jpeg 설치
———————————————-
참고:
설치시 디렉토리 에러가 나는 경우가 있다고 한다.
버전 6b에서 일어나는 에러인 것으로 보인다.
8b를 받아 설치중이며 디렉토리 에러는 나타나지 않았다.
혹여라도 make install 중에 디렉토리 에러메시지가 보인다면 아래처럼 디렉토리를 생성한다.
mkdir -p /usr/man/man1/
———————————————-
./configure -prefix=/usr/local/jpeg -enable-shared -enable-statie
make
make install
5. freetype 설치
./configure -prefix=/usr/local/freetype
make setup
make install
6. GD 설치
./configure -prefix=/usr/local/gd
=================================================================
출력문 일부 참고:
Support for PNG library: yes
Support for JPEG library: yes
Support for Freetype 2.x library: yes // 무료 폰트 렌더링 라이브러리
Support for Fontconfig library: no
Support for Xpm library: no //unix의 이미지 포맷 라이브러리
Support for pthreads: yes
=================================================================
make
———————————————-
참고:
make시 에러가 나는 경우가 있다고 한다.
현재 설치중인 버전은 2.0.33 이다.
2.0.35 버전 설치중에 일어나는 현상인듯하다. 현재 설치버전엔 나타나지 않았다.
에러내용은 아래와 같다.
cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing –run aclocal-1.9 -I config
aclocal:configure.ac:64: warning: macro `AM_ICONV’ not found in library
cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing –run automake-1.9 –foreign
cd . && /bin/sh /usr/local/src/gd-2.0.35/config/missing –run autoconf
configure.ac:64: error: possibly undefined macro: AM_ICONV
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
make: *** [configure] 오류 1
———————————————-
출처 : http://blog.naver.com/lkylike/80120027958
Aapache 2.x, PHP 5.x, MySQL 5.x 설치후 서버 이전을 끝내고 사이트 접속해보니 한글이 모두 ㅁㅁㅁ 특수기호들로 깨져 버리더군요.
원인을 알아 보니 mysql 기본 설치시 기본 문자셋이 utf8이 아니라서 생긴 문제 이더군요.
웹소스는 utf8 이며 기존 DB 자료 역시 utf8인데 mysql 기본 문자셋은 다른 문자로 되어 있어서 생긴 문제 였습니다.
다행이도 해결 방법이 mysql 다시 설치 하는 것이 아니라 /etc/my.cnf MySQL 설정 파일만 수정해 주면되었습니다.
자신의 기본 문자셋이 어떻게 되어 있는지 확인 해 보실려면 mysql 접속후 다음과 같이 확인 해 보세요!
mysql> SHOW VARIABLES LIKE ‘character_set%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
이와 같이 latin1 등의 문자셋으로 설정 되어 있음을 확인하실 수 있습니다.
설정파일 수정은 /etc/my.cnf 파일을 수정 하시면 되며, 각 [항목] 바로 아래에 문자셋 설정을 추가 해주시면 됩니다.
# vi /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
init_connect=’set names utf8′
character-set-server=utf8
default-collation=utf8_unicode_ci
skip-character-set-client-handshake
character-set-filesystem=utf8
default-character-set=utf8
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
위와 같이 추가하고 저장후 mysql 데몬을 다시 실행 해 보시면 아래와 같이 문자 기본셋이 변경 되었음을 확인 하실 수 있습니다.
+————————–+—————————————-+
| Variable_name | Value |
+————————–+—————————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+————————–+—————————————-+
사이트 접속해보니 이제 정상으로 한글이 보이는 군요.
등록 및 수정 등 쿼리 전송시 한글 처리는 잘되는지 아직 안해봤음 ^^
MYSQL 설치 후 외부에서 접속시 다음과 같은 오류가 발생한다면..
MYSQL Error 1042 [ Can’t get hostname for your address ]
두가지 옵션이 있다.
1. MySQL이 설치된 서버에 Reverse DNS 를 손봐야 한다.
2. MySQL 을 설치할때 ” –skil-name-resolve”옵션을 붙이고 실행하거나, 아니면 my.ini (my.cnf) 파일에 다음의 옵션을 추가한다.
1. Mysql5.5.9 소스 파일 다운로드를 합니다.
– 웹페이지에서 다운로드 링크를 복사하여
#wget http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.9.tar.gz/from/http://mirror.khlug.org/mysql/
명령어 :
wget http://www.lovecoco.net/dataout/userdata/mysql-5.5.9.tar.gz [다운로드]
2. Mysql 을 서비스할 계정을 생성합니다.(보안을 위해서)
#groupadd mysql
#useradd -g mysql mysql
3. configure 를 진행합니다.
– 여기서 5.1 때와 5.5.9 가 다른걸 알았는데요…
./configure 가 없다는거…5.5.9 부터는 cmake 라는 것을 통해 설치를 진행하게 됩니다.
cmake 를 다운로드 받습니다. ( http://www.cmake.org/ )
압축만 풀면 사용 가능합니다.
그럼 본격적으로 cmake 를 통해 설치 옵션을 부여해서 해볼까요?
#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 .
– 전 오래전부터 EUCKR을 사용하여 왔고 해당 DB의 호환성을 위해
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=euckr -DDEFAULT_COLLATION=euckr_korean_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql/data -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.socket
를 사용했습니다이후 make all , make install 을 해줘야 합니다.
( cmake 설치 옵션 메뉴얼 : http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html#cmake-general-options )
이렇게 해서 설치를 하다보면 필요한 라이브러리가 필요하다며 중간에 실패가 떨어지기도 합니다.
그러면 해당 라이브러리를 설치 해주시면 됩니다. 설치방법은~~
#yum -y install zlib curl
#yum -y install gcc g++ cpp gcc-c++
#yum -y install openssl openssl-devel
#yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel
#yum -y install bison
6. mysql 설치 디렉토리에 대한 mysql 권한 부여
#chown -R mysql:mysql /usr/local/mysql
7. 기본 DB 생성
설치 디렉토리로 이동하여서 실행하여야 합니다.(저는 /usr/local/mysql )
#./scripts/mysql_install_db –user=mysql –datadir=/usr/local/mysql/data
8. mysql 설정 파일 복사
#cp support-files/my-medium.cnf /etc/my.cnf또는
#cp support-files/my-medium.cnf my.cnf
저는 /usr/local/mysql 설치 디렉토리에 위치 시켰는데 mysql 를 여러개 설치할 경우에 각 mysql에 대한 설정값을 사용하기 위해 mysql설치디렉토리에 위치 시켰습니다.
다음으로 MySQL 서버와 프로그램을 연결해줄 소켓을 링크파일로 생성하야 한다.
ln -s /var/lib/mysql/mysql.sock /usr/local/mysql/mysql.socket
(여기 블러그 보시고 Apache 와 PHP 설정하실분 해당)
9. 서버 부팅시 mysql 실행을 위한 서비스 등록
#cp support-files/mysql.server /etc/init.d/mysqld
(기존에 mysqld 파일이 있을경우 해당서버에 설치된 mysql 이 있다는 뜻으므로, 이전 설치된 mysql을 사용하지 않을경우 overwite해도 무관)
10. mysql 실행시 생성되는 pid 파일이 /var/run/mysqld 에 생성됩니다.
이것때문에 mysql 이 뜨지 않아 로그파일을 보고 알았습니다.
#mkdir -P /var/run/mysqld
#chown -R mysql:mysql /var/run/mysqld
(기존 mysql 이 설치되었을 경우 해당 디렉토리가 존재할 가능성이 높음. 존재하면 Step 10은 Skip)
11. 외부에서 mysql 에 대한 접근을 위해 서비스 포트를 오픈해야합니다.( 3306 포트 )
/etc/sysconfig/iptables 파일에
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
추가 후
#/etc/rc.d/init.d/iptables restart 로 갱신된 정보를 다시 서비스함.
12. Mysql 실행#cd /usr/local/mysql/bin#mysqld_safe –datadir=/usr/local/mysql/data &
13. Mysql Root 비밀번호 생성
#mysqladmin -uroot password 신규비밀번호
14. Mysql 접속
#mysql -uroot -p
Mysql>
15. 재부팅시 자동 실행
그럼 모든 설치가 끝납니다~ ^^
Yum은 Yellowdog Updater, Modified의 약자로 rpm기반의 시스템(Redhat 계열)을 위한 자동 업데이터이자 패키지 설치/삭제도구입니. Yum은 자동적으로 의존성을 처리해주며 rpm 패키지들을 안전하게 설치, 삭제 및 업데이트하기 위해 반드시 해야할 일들을 스스로 해결합니다.
또한 Yum은 이미 설치 되어 있거나 혹은 저장소에 설치가능한 패키지에 관한 정보를 효율적이고 쉽게 검색해 옵니다. Yum은 rpm이나 다른 도구들처럼 일일이 수동으로 업데이트할 필요가 없으므로 수 많은 시스템들을 더욱 관리하기 쉽게 해줍니다. 한 조직 전체를 통괄하는 규모를 단지 한 두 명만으로 중앙집중적인 패키지 관리를 할 수 있도록, 패키지 그룹, 다수의 저장소, 대체 저장소 및 그 이상을 Yum이 관리해줍니다.
yum으로 update할 경우 커널을 제외한 나머지 패키지들은 모두 삭제됩니다. 커널의 경우는 업데이트를 하더라도 계속 쌓이게 됩니다. yum을 사용하여 install 하거나 update 할 경우 저장소라는 곳에서 해당 rpm 파일을 다운 받은 후 설치하게하게 됩니다. 패키지 파일을 다운받아 임시로 저장하는 위치는 /var/cache/yum 하위 디렉토리 입니다. 윈도우즈 환경으로 비유하면 설치파일인 셈이죠. 시스템에 설치가 끝나면 자동으로 삭제를 합니다.
패키지 리스트 확인 : #yum list
설치된 패키지 확인 : # yum list installed
업데이트 목록 확인 : # yum list updates
패키지 정보 확인 : # yum info 패키지
패키지 의존성 확인 : # yum deplist 패키지
패키지 오류시 오류 항목 무시후 업데이트 진행 : # yum update –skip-broken
새로운 패키지 설치, 의존성이 있는 경우 해당 사항들을 자동으로 같이 설치.
# yum install 패키지
설치되어 있는 패키지 업데이트
# yum update 패키지
설치되어 있는 모든 패키지 업데이트
# yum update
로컬에서 설치(현 시스템에 받아 놓은 경우)
# yum localinstall 패키지
패키지 삭제
# yum remove 패키지 or yum erase 패키지
캐시되어 있는 헤더와 패키지 모두 제거.
여기서 yum은 해당 패키지만 삭제하는 것이 아니라 해당 패키지에 의존적인 모든 패키지들을 삭제한다.
특정한 문자열이 있는 내용을 출력
# yum search 문자열
yum이 제대로 작동을 하지 않을 때.
# yum clean all
(캐시되어 있는 헤더와 패키지 모두 제거.
all은 clean expire-cache, clean packages, clean headers, clean metadata, clean dbcache, clean dbcache, clean rpmdb, clean plugins 모두를 의미한다.
따라서 사용자는 yum clean headers; yum clean metadata 두개의 명령으로 CLEAN OPTIONS의 all을 대신 할 수도 있다.)
# yum check
# yum check-update
(현 시스템에 설치된 패키지 중에서 업데이트 목록만 보여준다.)
참고
yum을 사용해서 패키지를 설치 하거나 업데이트를 하다 보면 속도가 느린 경우가 있다.
특정 업데이트 같은 경우는 순간적으로 접속이 폭주하는 경우가 많고, yum 패키지를 설치 후 특정 저장소에서 작업을 하도록 수정이 되어 있찌 않다면 더욱 그럴 것이다.
해당 문제를 해결하기 위해서는 yum의 설정 파일을 수정하는 방법도 있으나 yum의 plugin 패키지 fastestmirror을 설치해 주면 된다.
또한 fastestmirror 패키지는 사용자 시스템에 따라서 패키지 이름이 다를 수 있다.
# yum list | grep fastestmirror
이렇게 해서 출력된 fastesmirro의 패키지 이름을 아래와 같은 명령을 하면된다.
# yum -y install yum-plugin-fastestmirror(페도라 같은 경우는 다음과 같은 페키지명으로 되어 있다.)
X윈도우를 사용하고 있다면 시스템 – 관리 – Add/Remove Software를 열어서 fastestmirror를 찾기해서 나오는 것을 선택하면 된다.
참고사이트 : http://www.phy.duke.edu/~rgb/General/yum_HOWTO/yum_HOWTO/yum_HOWTO.html
참고사이트 : http://blog.naver.com/forlov3u/20119415129