[질문]
UTF-8 버전인데요,
설치 과정은 이상없이 진행이 되었습니다.
설치완료후 보드 생성도 정상이구요.
그런데 게시판에서 글을 저장하고 본문 열어 보면 영문으로 작성한 내용은
정상으로 보이는데 한글로 작성한 부분은 ????? ??? ?? ?????? 처럼 깨져서 나옵니다.

[답변]
lib.php 소스에서
$db_selected = @mysql_select_db($DB_access[4],$connect);
위 코드를 찾으십시오. 원본에선 120 번 줄 정도 입니다.
위 줄의 바로 아래에
@mysql_query("set names utf8");
이걸 새로 넣어 주십시오.


1. JDK(java) 설치

JDK 7 다운로드 URL

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
 

rpm -ivh jdk-7u40-linux-x64.rpm

설치 확인 : rpm -qa | grep jdk
whereis java (jdk 가 설치된 경로 확인)

cd /usr/java
mv jdk1.7.0_40 /usr/local/java
vi /etc/profile 해서 아래의 내용을 최하단에 추가할 것!
#JAVA JDK7
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:/usr/local/bin:$JAVA_HOME/bin:$CATALINA_HOME/bin


source /etc/profile (/etc/profile의 내용을 적용시킴)
javac --version   (java가 연동되었는지 버전을 확인하는 것으로 검증) 

2. Apache Tomcat 설치

다운로드 사이트 http://tomcat.apache.org

tar zxxf apache-tomcat-7.0.37.tar.gz
cd apache-tomcat-7.0.37
mv apache-tomcat-7.0.37 /usr/local/
cd /usr/local
ln -s apache-tomcat-7.0.37/ tomcat
vi /usr/local/tomcat/conf/server.xml  해서 아래의 내용을 기존에 등록된 </Host> 하단에 추가!

        <Host name="hasudo24.com" appBase="/home/hasudo24/public_html"
              unpackWARs="true" autoDeploy="true">
         <context path="" docBase="/home/hasudo24/public_html"></context>
        </Host>

만일 다수의 계정을 Port 별로 추가하고 싶다면 아래의 <Service> 항목을 최하단에 추가

<Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8012" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="sudo04.com"  appBase="/home/sudo04/public_html"
            unpackWARs="true" autoDeploy="true">
            <context path="" docBase="/home/sudo04/public_html"></context>
      </Host>
    </Engine>
  </Service>
/usr/local/tomcat/bin/startup.sh
ll /usr/local/tomcat/conf/Catalina/ 하위에 적용을 원하는 도메인명 폴더가 있는지 확인하고 없으면
mkdir 호스트네임명폴더 해서 만든다.  (대부분 자동으로 만들어질 것이다.
cd 호스트네임명폴더
vi ROOT.xml 해서 아래의 내용을 추가한다.!
<?xml version="1.0" encoding="utf-8"?>
<Context crossContext="true" docBase="/home/계정명/public_html" path="/" reloadable="true">
</Context>
netstat -nlp 해서 8080 포트가 java 로 사용되는지 확인


3. Tomcat-Connector 설치
tar zxvf tomcat-connectors-1.2.37-src.tar.gz
cd tomcat-connectors-1.2.37-src/native/
./configure --with-apxs=/usr/local/apache/bin/apxs
make && make install
cd apache-2.0/ (주의 : 자신의 apache 버전에 맞는 것으로 이동) mod_jk 가 설치된 것을 확인
* 정상적으로 설치가 되면 apache 모듈디렉토리에도 동일한 모듈이 만들어져있다.
 
(호스트먼트의 경우 first_setup/home/httpd/build 디렉토리를 /home/httpd/ 에 복사하면 에러 안남)
컴파일 에러가 발생하는 서버를 위해 완성된 모듈을 첨부한다. (첨부파일 참조)

vi /etc/httpd/conf/httpd.conf 해서 아래의 항목 추가
apache 1.3.x 의 경우 LoadModule jk_module     libexec/mod_jk.so
apache 2.x.x 의 경우 LoadModule jk_module          modules/mod_jk.so
 
그리고 아래의 Tomcat connector 설정 파일을 적절한 위치에 추가
 
# JSP TOMCAT
JkWorkersFile "/etc/httpd/conf/workers.properties"
JkLogFile "/var/log/httpd/mod_jk.log"
JkLogLevel emerg
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /*.do ajp13
JkMount /*.pts ajp13
JkMount /*.app ajp13
JkMount /*.bbs ajp13
 
vi /etc/httpd/conf/workers.properties 해서 아래의 내용을 추가할 것!
 
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
#worker.ajp13.lbfactor=1
 
vi /etc/httpd/conf/virtualhosts.conf 해서 적용을 원하는 계정의 </Virtualhost> 상단에 아래내용 추가!
 
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /*.do ajp13
 
해당 계정 public_html 하단에 test.jsp 파일을 만들어 아래내용 추가
 
<%@ page contentType="text/html; charset=euc-kr" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
 </HEAD>
 <BODY>
<% out.print("이 페이지가 보이신다면 JSP 환경이 정상적으로 구성된 것입니다.");%>
 </BODY>
</HTML>

또다른 내용의 test.jsp (현재 시스템 시각을 호출함)

<%@ page language="java" contentType="text/html; charset=EUC-KR"
     pageEncoding="EUC-KR"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <%@ page import="java.util.Date" %>

<head>
 <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
 <title>Insert title here</title>
 </head>
 <body>
안녕하세요!<br>
아래의 현재시각이 보인다면 정상적으로 jsp 가 구동된 것입니다.<br>

<%
  Date d = new Date();
 
  //out객체는 클라이언트 웹브라우져에 출력할 수 있는 jsp 내장객체
 out.println(d);//클라이언트 웹브라우져로 출력됨
%>
 </body>
 </html>


1. 설치

# cd /usr/local/src/php-5.2.9/ext/soap    // php 소스 폴더의 ext/soap 디렉토리로 이동 

# /usr/local/php/bin/phpize

# ./configure --enable-soap --with-php-config=/usr/local/php/bin/php-config

# make

# cp -arp modules/soap.so /usr/local/php/lib

2. 연동

php.ini 파일을 열어서 [soap] 항목에 아래와 같이 soap.so 파일을 추가해줍니다.

# vi /usr/local/apache/conf/php.ini

extension_dir=/usr/local/php/lib
extension=soap.so

그리고 아파치를 재시작 해주면 적용이 완료됩니다.

# /usr/local/apache/bin/apachectl restart

[작성] 차동훈 (http://system.neulwon.com)


[php에서 UTF-8, EUC-KR 인코딩 변경]

UTF-8을 EUC-KR로 변경
$str = iconv("UTF-8", "EUC-KR", $str);

EUC-KR을 UTF-8로 변경
$str = iconv("EUC-KR", "UTF-8", $str);


다른 서버에서 글 내용을 가져와 파싱하는 경우에 특히 많이 사용하게 된다.

상식적으로 알아둘 점: EUC-KR에서 한글은 2byte, UTF-8에서 한글은 3byte이다.

글자수 기준으로 substr() 함수를 이용하여 자를 때 참고해두자.


1. 필요 패키지 설치

yum install ImageMagick ImageMagick-devel

ImageMagick => ImageMagick – is a free software suite for the creation, modification and display of bitmap images.

ImageMagick-devel=> ImageMagick의 라이브러리 링크와 필요한 헤더파일이 포함되어있습니다.

2. 파일 다운로드 및 설치

최신 버전 다운로드 사이트 : http://pecl.php.net/package-stats.php 

다운로드 및 설치

cd /usr/local/src/

tar zxvf imagick-3.0.1.tgz

cd imagick-3.0.1

PHP설치경로/bin/phpize => 

./configure –with-php-config=PHP설치 경로/bin/php-config

php-config 실행시 아래와 같이 에러가 나오면

configure: error: Cannot locate header file MagickWand.h

이는 MagickWand.h 파일이 들어있는 디렉토리의 이름이 ImageMagick 가 아닐 경우 나온다.

 ln -s /usr/local/include/ImageMagick-6 /usr/local/include/ImageMagick (심볼릭 링크 처리)

make && make install

설치가 완료 되면 아래와 같이 파일의 위치가 표시가 됩니다.

PHP설치경로/lib/php/extensions/no-debug-zts-20090626/imagick.so

 

3. PHP.ini 수정 하여 모듈 적재

extension_dir=PHP설치경로/lib/php/extensions/no-debug-zts-20090626/

extension=imagick.so

 

4. 아파치 재시작 및 모듈 적재 확인

아파치를 재시작 후 

PHP설치경로/bin/php -m

Imagick가 목록에 있을 경우 정상 로드 되었습니다.

보다 자세한 내용 확인을 위해

PHP설치경로/bin/php -i | grep -i imagick 을 입력하여 자세한 모듈 정보를 불러 옵니다.

imagick

imagick module => enabled
imagick module version => 3.0.1
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0

Imagick 모듈이 정상적으로 로드가 확인 되었습니다.