제로보드4 와 같이 MySQL euckr 을 사용 한글 깨짐

제로보드4 와 같이 euckr사용하시는분께서는 아래와 같이 꼭 수정해주셔야 한글깨짐이 없습니다.
(물론 안깨지시면 안하셔도 됩니다.)

제로보드4 버전상관없이 euckr만 해당, lib.php 파일중 기본적으로 약 297번째줄쯤
@mysql_select_db($f[4], $connect) or Error("DB Select 에러가 발생했습니??,"");

                return $connect;
        }



@mysql_select_db($f[4], $connect) or Error("DB Select 에러가 발생했습니다","");
@mysql_query("set names euckr");
               return $connect;
      }
이렇게 return $connect; 바로 위에 @mysql_query("set names euckr"); 를 꼭 삽입해주세요.

소스컴파일시 zlib 이 누락되어있을 경우 재컴파일 없이 확장모듈로 zlib을 올리는 방법이다.

[root@sysadm ~]# cd php소스파일디렉토리/ext/zlib

[root@sysadm ~]# cp -rp config0.m4 config.m4
[root@sysadm ~]# /usr/local/php/bin/phpize
[root@sysadm ~]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@sysadm ~]# make
[root@sysadm ~]# make install


php.ini 파일내부에

[zlib]
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/"  (extension 경로는 php 버전에 따라 다를수 있음)
extension="zlib.so"

웹서버 재시작


[root@lvm07 src]# wget http://download.suhosin.org/suhosin-0.9.29.tgz

[root@lvm07 src]# tar xvfz suhosin-0.9.29.tgz

[root@lvm07 src]# cd suhosin-0.9.29

[root@lvm07 suhosin-0.9.29]# /usr/local/php/bin/phpize

[root@lvm07 suhosin-0.9.29]# ./configure --with-php-config=/usr/local/php/bin/php-config

[root@lvm07 suhosin-0.9.29]# make && make install

 

- php.ini Suhosin 설정 추가

[root@lvm07 ~]# vi /etc/httpd/conf/php.ini (서버 설정에 따라 php.ini 경로는 다를 수 있음)

[Suhosin]

;extension_dir=/usr/lib64/php/modules/

extension=suhosin.so

 

[root@lvm07 ~]# /usr/local/php/bin/php -v

PHP 5.3.3 (cli) (built: Jul  9 2015 17:39:00)

Copyright (c) 1997-2010 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

    with Suhosin v0.9.29, Copyright (c) 2007, by SektionEins GmbH

 

Download

http://suhosin.org/stories/download.html

 

[자체추가]

php.ini에 아래와같이 설정하면 mail함수가 안됨

disable_functions = mail  (서버내 전체계정에 영향을 받음)


수호신을 이용해 계정별 php 함수 제한을 걸고 싶을때에는 아래의 룰을 <VirtualHost *> </VirtualHost> 사이에 넣어주면 된다.


php_admin_value suhosin.executor.func.blacklist "함수명"
예) php_admin_value suhosin.executor.func.blacklist "mail" (mail 함수를 사용불가하게 할경우)

 

1개 이상의 함수를 막는경우에는

 

php_admin_value suhosin.executor.func.blacklist "함수명1,함수명2"

 

[출처] http://sangchul.kr/551


[질문]
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>