PHP 설치시 “collect2: ld returned 1 exit status” 오류 발생시..

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”
#include “dl.h”

아래와 같이 #define HAVE_LIBDL 1 항목을 추가해주면 됩니다.

수정 후

23
24
25
26

#define HAVE_LIBDL 1

#include “php.h”
#include “dl.h”

이후 다시

make all

을 실행하여 컴파일 하니.. 정상적으로 컴파일 된다.

[CMake] MySQL 5.5.17 설치시 오류 해결

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 으로 설치하면 된다.

No package libsdl-dev available.  => SDL-devel

No package libesd0-dev available. => esound-devel
No package libwxgtk2.6-dev available. => wxGTK-devel
No package build-essential available.  
=> yum groupinstall “Development Tools” “Development Libraries”
build-essential =>  yum install gcc 로도할수 있다.

MySQL 5.x 설치후 기존 utf8 자료 이전시 한글 깨짐 증상 해결 my.cnf 수정

출처 : 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 Error 1042 [ Can’t get hostname for your address ]

MYSQL 설치 후 외부에서 접속시 다음과 같은 오류가 발생한다면..

MYSQL Error 1042 [ Can’t get hostname for your address ]

두가지 옵션이 있다.

1. MySQL이 설치된 서버에 Reverse DNS 를 손봐야 한다.

2. MySQL 을 설치할때 ” –skil-name-resolve”옵션을 붙이고 실행하거나, 아니면 my.ini (my.cnf) 파일에 다음의 옵션을 추가한다.

[mysqld] 
skip-name-resolve

Linux yum 사용법

YumYellowdog 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

[Linux] Samba 폴더 접근 권한 문제

(펌)http://shieder.tistory.com/6

SELINUX에서 삼바 서버 설정 시 /etc/samba/smb.conf 파일 설정만 하게 되면 윈도우즈 클라이언트에서 공유 폴더 접근 시 액세스 제한 메시지가 뜨게 된다. 이를 해결 하기 위해서는 추가적인 설정을 해줘야 한다.

삼바서버에 디렉토리를 공유하기 위해선 그 디렉토리에  samba_share_t 라는 마크를 설정해줘야
한다. 마크를 설정하는 방법은 아래와 같다.
#chcon -t samba_share_t /path

또한 디렉토리에 어떤 마크가 설정되어 있는지 확인하기 위한 명령어는 ls -ldZ /path 이다.
홈 디렉토리의 마크 설정 여부를 알아보면 다음과 같다. samba_share_t를 주목하기 바란다.
[root@fedora shieder]# ls -ldZ /home
drwxr-xr-x  root root system_u:object_r:samba_share_t:s0 /home

이제 공유를 한 디렉토리의 권한 설정을 해줘야한다.
#/usr/s/bin/setsebool -P samba_export_all_rw on

이 명령어는 samba-share-t가 설정된 모든 디렉토리에 읽기 권한과 쓰기 권하을 부여한다.

이제 다시 공유 폴더에 접근하면 정상적으로 작동하는 것을 볼 수 있을 것이다.

리눅스 시간 (시간 및 시간대(로케일)) 설정

#ln -sf /usr/share/zoneinfo/GMT /etc/localtime


: 한국일 경우
#ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime


– 우선 사용할 시간대를 localtime에 연결한다.


#rdate -p time.bora.net


– 시간 체크후


#rdate -s time.bora.net


– 동기화를 시켜준다.

#clock -w

– 컴퓨터 BIOS의 시계를 리눅스 시계로 셋팅한다.

Proftpd 접속 지연 문제

대부분의 Proftpd의 접속 지연 문제는 reverse domain을 검색하는 부분으로 발생된다.

/etc/proftpd.conf 에 아래 설정을 추가하신수 ftp를 리스타트 하시면 접속이 바로 됩니다.

———————————–
#Prevent slow login
UseReverseDNS off
IdentLookups off
———————————–
아래 URL을 참고하시면 같은 내용을 보실 수 있습니다.

http://linux.pcran.com/linux_doc_detail.htm?id=48
http://www.kr.freebsd.org/ml/questions/2000/11/msg00227.shtml

Apache2.2 client denied by server configuration

Fedora Core 10 에 아파치 2.2를 설치했는데
설정에 별 문제가 없어 보이는데 계속 4.3에러가 나서 확인해보니..


[Wed Mar 25 17:10:58 2009] [error] [client 127.0.0.1] client denied by server configuration:


로그가 있네요.


httpd.conf 파일을 확인하니


요로코롬 되어 있네요. 기본설정이 “모두 막아라?” ㅠ,.ㅠ;;;


Allow from all 로 변경하고 httpd.exe –k restart 하니 정상적으로 동작을 합니다.


아.. 황당스럽네요…

아파치 SeLinux 권한 관련 오류

Apache 와 PHP를 설치후,.. 아파치를 실행하면,

Syntax error on line 232 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied


Fedora에서는 Selinux기술을 사용하는데, 서버환경에서 Selinux환경이 활성화 되어 있는 상태이면 위와 같은 오류가 발생한다.
Selinux활성화 상태에서 apache를 구동하는 방법은 조금 복잡함으로, 그냥 비활성화 시키고 재부팅하면 된다.


/etc/sysconfig/selinux   파일은 열어서

SELINUX=enforcing  부분을 아래와 같이 변경후 재부팅한다.

SELINUX=disabled