뭐... 일반적인 source 설치면 설치가 안 되어있을 경우가 많지만

요즘 추세를 보면 점점 기본으로 들어가는 듯 하다.

PHP에 모듈로 들어가는 PHP 보안 방화벽??? 이라고 할 수 있는데

각각의 정책에 의해서... selinux와 비슷한??? 역활을 한다고 보면 된다.

뭐... 파라미터의 의미는 본인도 아직... ㅡ.ㅡ 모르겠다.

php에서 file upload가 안 되어서 찾아봤지만... 뚜렸한 답변을 찾지 못 했으며

수호신때문에 정책에 걸려서 file upload가 안 된다는 것만 확인을 했다.

혹시??? PHP를 설치하고서... file upload가 안 된다면

PHP 정보에 수호신이 설치되어 있는지 확인해 보기 바랍니다.

관련 사이트 : http://www.hardened-php.net/suhosin/index.html

덧 1 : 파라미터를 찾았습니다.
suhosin.session.encrypt  session 파라미터가 아닐까 싶기는 했는데...
해당 폴더에 .htaccess 로
php_value suhosin.session.encrypt Off 를 해 주시거나
php.ini에
suhosin.session.encrypt=Off 로 해 주시면 Upload가 가능 합니다.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 삐꾸강아쥐

2008/05/02 08:02 2008/05/02 08:02
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://blog.blog.n-nuri.com/rss/response/527

Trackback URL : http://blog.blog.n-nuri.com/trackback/527

Leave a comment
[로그인][오픈아이디란?]
출처 : http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=utf-8&select_arrange=headnum&desc=asc&no=7348
작성자의 요청이 있을경우 자삭 합니다.


Zeroboard 4.1 pl7을 UTF-8 인코딩으로 바꾸어 주는 패치입니다.



주의 : MySQL DB 변환은 포함되어 있지 않습니다. 그건 별도로 해 주셔야 합니다. 또한, 여기서는 기본 스킨만 utf-8로 패치가 되며, 추가로 설치하신 스킨들 역시 별도로 변환하셔야 합니다.
제로보드를 처음 설치하시는 분이라면, 공식 배포되는 버전을 압축 푸신 후에 바로 이 패치를 적용하여 설치를 하시면 mysql도 자동으로 utf-8로 쓸 수 있게 됩니다.

★☆★ 사용하기 전에 반드시 제로보드 전체를 백업하세요. 데이터 손실 등은 책임지지 않습니다. ★☆★


사용법 :
ftp 등을 이용해서 zboard41pl7.utf8.patch 파일을 ~/에 올리신 다음
~$ cd zboard
~/zboard$ patch -p1 < ../zboard41pl7.utf8.patch
라고 해 주시면 됩니다.


ps. Firefox 등에서도 카테고리와 글쓴이 레이어를 쓸 수 있게 하는 내용도 포함되어 있습니다. (Ryan 님의 게시물 참고)

ps2. 가능한 한 원본 코드에서 실행하세요. 원본 코드에 각종 패치 작업이 되어 있을 경우 예상치 못한 결과가 나타날 수 있습니다.

ps3. 이건 독립적으로 실행될 수 있는 소스 코드가 아니라, 소스 코드에서 어느 부분을 어떻게 고치라고 지시하는 내용이 들어간 자동화된 patch 파일만을 압축한 것입니다. 제로보드 라이센스에 위배되거나 하지는 않겠지요? (메모장으로 patch 파일을 열어서 어디쯤이라는 줄번호와 그 줄 근처의 소스 코드, 그리고 -, + 기호를 보고 사람이 손으로 편집할 수도 있습니다만 그러기엔 양이 너무 많거든요. -_-)


UTF-8을 사용하는 이유..
요즘 일본 애니메이션에 관련된 블로그나 사이트를 운영하시는 분들이 많아졌습니다. 또한 중국어를 사용하는 경우도 있구요.
이런 경우 euc-kr 인코딩을 사용하게 되면 간자나 약식 한자들을 표현할 수가 없게 되며, 중국어의 경우는 아예 사용하지 못하는 구절이 나오기도 합니다. utf-8은 전세계의 모든 문자집합을 표현할 수 있도록 설계되었기 때문에 일본어, 중국어, 한국어를 모두 잘 표현할 수 있고, 나중에 아랍어, 이탈리아어, 그리스어, 러시아어 등등 온갖 다른 언어를 사용한다고 해도 아무런 문제가 발생하지 않습니다.
하지만 단점으로는 한글이 2 byte에서 3 byte로 늘어나게 되고, 사용하는 문자 종류에 따라 한 글자에 최대 6 byte까지도 늘어날 수 있게 됩니다. (일반적인 영문자, 숫자, 간단한 기호들은 ASCII와 동일하며 1 byte를 차지합니다) 따라서 트래픽 증가가 발생할 수 있고 DB 테이블의 크기를 늘려주신다든가 하는 조치가 필요할 수 있습니다.
그래도 전세계적으로 utf-8 인코딩을 사용하는 추세이며, 전세계의 문자 코드 통일화를 위해 utf-8을 사용하시는 것이 앞으로의 발전 방향을 생각할 때 바람직하다고 생각됩니다.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 삐꾸강아쥐

2006/10/25 18:31 2006/10/25 18:31
Response
0 Trackbacks , 0 Comments
RSS :
http://blog.blog.n-nuri.com/rss/response/224

Trackback URL : http://blog.blog.n-nuri.com/trackback/224

Leave a comment
[로그인][오픈아이디란?]

[PHP 확장모듈을 추가하는 방법]

[PHP 확장모듈을 추가하는 방법]

- 작성자 : 김칠봉
- 작성일 : 2003.03.02
- 분 류 : PHP
- 수 준 : 초급
- 내 용 : PHP 확장모듈 mbstring.so을 추가하는 방법(예제)
- 키워드 : PHP, extension, modules, mbstring.so

*주)
이 문서에 대한 최신 내용은 아래 URL에서 확인할 수 있습니다.

http://www.linuxchannel.net/docs/php-ext.txt

---------------------------------------------------------
목차
1. PHP 확장 모듈과 추가하는 방법에 대해서
2. 확장 모듈 만들기
2-1. 기본 모듈의 컴파일 방식
2-2. phpize 를 이용한 컴파일 방식
3. 확장 모듈 로딩하기
3-1. root 권한일 경우
3-2. account 권한일 경우
---------------------------------------------------------


1. PHP 확장 모듈과 추가하는 방법에 대해서

PHP 확장 모듈은 제공 형태에 따라서 크게 두가지로 볼 수 있습니다.

- PHP 소스의 ext 디렉토리에 존재하는 모듈(기본 확장 모듈)
- 사용자 직접 만들거나 기타 다른 확장 모듈

전자의 경우는

# cd php-xxx/ext
# ls
aspell
...
dio
...
mbstring
...

이와 같이 확인할 수 있습니다.
(90개가 넘는 확장 모듈이 있음)

후자는
php-xxx/ext/ext_skel 를 이용하여 사용자가 직접 만든 확장모듈을
의미합니다. oops.org 에서 배포한 korean.so 확장 모듈이 이에
해당됩니다.

우선 웹서버가 이런 PHP 확장 모듈(예: mbstring.so)를 로딩해야 하는데
로딩하는 방법은 크게 두가지 정도가 있습니다.

- 아파치 코어에 PHP를 정적으로 컴파일하는 방법
- shared mbstring.so 모듈을 만드는 방법

전자의 방법은 처음부터 Apache + PHP를 다시 빌드함을 의미하고,
후자의 방법은 PHP 확장모듈을 현재 상태에서 추가하는 방법입니다.

후자의 경우에서 주의할 점이 있는데,
아파치에서는 mod_so.c 모듈이 정적으로 아파치 core 에 컴파일되어
있어야 합니다.

*확인예)

# httpd -l
...
mod_so.c
...

전자의 방법은 생략하고, 후자의 방법에도 서로 다른 방법이
있습니다. 즉,

- 첫번째, 기존 모듈의 컴파일 방식
- 두번째, phpize 를 이용한 컴파일 방식

결과는 동일하지만 두번째 방식은 주로 PHP에서 공식적으로
제공하지 않는 모듈을 추가할때 기존 php.net에서 제공한 PHP 소스
없이 컴파일하는 방법입니다.

mbstring.so 모듈은 PHP에서 제공하기 때문에 첫번째 방식을 사용하면
됩니다.

우선 PHP 확장 모듈을 정적으로 아파치코어에 넣지 않고, PHP의
shard 모듈로 빌드하기 위해서,

--enable-mbstring=shared

이와 같이 'shared'를 붙여줘야 mbstring.so 모듈을 만들수 있습니다.
PHP 4.3 버전은 --with-mbstring=kr,shared
이와 같이 하면 됩니다.(실제로 4.3은 직접 해보질않아서)


2. 확장 모듈 만들기

2-1. 기본 모듈의 컴파일 방식

우선 현재 아파치에서 사용하는 PHP 버전을 알아봅니다.
(phpinfo(), phpversion() 또는 HTTP 응답헤더에도 나옴)

만약 4.2.1 버전을 사용한다면,
php-4.2.1.tar.gz 버전을 받아서 임시 디렉토리에 풉니다.
만약 서로 다른 버전일 경우 잘 안될 경우가 있으므로
가능한 현재 사용하는 같은 버전으로 하는 것이 좋습니다.

# tar zxvf php-4.2.1.tar.gz
# cd php-4.2.1
# ./configure --enable-mbstring=shared
# cd ext/mbstring
# make

이렇게 컴파일하면

php-4.2.1/ext/mbstring/.libs/mbstring.so
or
php-4.2.1/modules/mbstring.so

파일이 만들어집니다.


2-2. phpize 를 이용한 컴파일 방식

이 방법은 앞서 얘기 했듯이 PHP에서 제공하지 않는 확장 모듈을
컴파일할 때, 즉 기존(php.net에서 제공한)의 PHP 소스가 없을
경우에 사용하는 방법입니다.

대부분 이런 모듈은,

# php-xxx/ext/ext_skel --extname=xxx

이와 같이 기본 layout을 만들고 확장 모듈 xxx를 C로 코딩하는
방법을 말합니다.

이에 대한 자세한 내용은,

- http://phpschool.com/classroom/phpext/phpext_1.html

앞의 URL을 방문하기 바랍니다.

*예: xxx 확장모듈)

# ls /usr/local/php/bin (or /usr/bin)
pear pearize php php-config phpextdist phpize phptar
#
# cd xxx
# /usr/local/php/bin/phpize (configure 파일이 만들어짐)
# ./configure \
--with-php-config=/usr/local/php/bin/php-config \
--enable-xxx
# make
# ls module/*.so
xxx.so
#


3. 확장 모듈 로딩하기

3-1. root 권한일 경우

만들어진 PHP 확장 mbstring.so 모듈을 아파치가 로딩하도록

php.ini 파일을 다음과 같이 수정합니다.

예)
-- php.ini ----------------
...
extension_dir = /usr/local/php/modules
...
extension = dba.so
extension = dio.so
extension = oci8.so
extension = mbstring.so ; <-- 추가
...
----------------------------

이렇게 수정했으면 mbstring.so 모듈을

/usr/local/php/modules/mbstring.so

으로 복사해야 합니다.

그리고 아파치를 재가동하고 phpinfo() 등으로
확인해 보세요.


3-2. account 권한일 경우

만약,
자신이 root 권한이 없는 계정 입장이라면,
만들어지 mbstring.so 모듈을 웹서버에 복사하고
php 파일에 직접 로딩하는 방법도 있습니다.

우선 php.ini 설정이 어떻게 되어 있는지 다음과 같이
확인해 봅니다.

PHP 4.2.0 이상이면 ini_get_all() 로도 가능

echo 'enable_dl : ' . ini_get('enable_dl') .'
';
echo 'extension_dir : ' . ini_get('extension_dir');
?>

만약 'enblae_dl : 1(or On)'이 아니면 dl() 함수를 사용하여
사용자가 직접 확장 모듈을 로딩하지 못하므로 1(or On)으로
설정되어 있어야 합니다.

또한 extension_dir 설정은 사용자가 직접 설정하지
못하는 상수 4의 값을 값습니다.
즉 이 설정은 php.ini 또는 httpd.conf 파일에서만
설정가능합니다.

따라서
관리자가 설정한 extension_dir 값을 보고 상대경로로
mbstring.so 모듈을 지정하여 해야 합니다.

만약 extension_dir : ./ 로 출력된다면 dl() 함수를
직접 호출 또는 이 함수를 포함하는 PHP 파일이 그 기준입니다.
(상당히 골치아픈 설정 T.T)

즉 모든 웹서버의 extension_dir 설정값이 모두 다르므로
반드시 확인해서 상대경로로 지정해야 합니다.

따라서 여러 시스템에서 호환성을 고려한다면
extension_dir 의 값을 / 로 거슬러 올라가 / 를 기준으로
mbstring.so 파일이 있는 경로를 지정해주는 것이 좋습니다.

*예)
function get_extdir()
{
$dir[e] = ini_get('extension_dir');
$dir[u] = dirname($_SERVER[PATH_TRANSLATED]).'/'; // script file directory
$dir[ut] = preg_replace(';[^/]+;','..',$dir[u]);

if(preg_match(';^/;',$dir[e])) {
$dir[e] = preg_replace(';[^/]+;','..',$dir[e]);
}
else $dir[e] = '';

return $dir; // array
}

function ext_load($dir, $mod)
{
if(preg_match(';^/;',$mod)) {
if(!$dir[e]) $file = $dir[ut] . $mod;
else $file = $dir[e] . $mod;
} else {
if(!$dir[e]) $file = $mod;
else $file = $dir[e] . $dir[u] . $mod;
}

if(is_file($file)) {
$ext = str_replace('.so','',basename($file));
if(!extension_loaded($ext)) @dl($file);
}

if(!extension_loaded($ext)) {
echo $file.' is not loaded';
}
}

// example
//
$extdir = get_extdir();
ext_load($extdir, '/any/path/to/mbstring.so');
phpinfo();

?>


좀더 자세한 디버깅과 여러 모듈을 한꺼번에 로딩하기를 원한다면
아래의 필자의 허접한 php class 를 사용해 보기 바랍니다.

http://ftp.linuxchannel.net/devel/php_dl/


EOF
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 삐꾸강아쥐

2006/04/25 12:52 2006/04/25 12:52
Response
0 Trackbacks , 0 Comments
RSS :
http://blog.blog.n-nuri.com/rss/response/154

Trackback URL : http://blog.blog.n-nuri.com/trackback/154

Leave a comment
[로그인][오픈아이디란?]

PHP에서 MSSQL 사용하기

PHP에서 MSSQL을 사용하기 위해선

http://www.freetds.org/software.html

해당 사이트의

프로그램이 필요하다

방법은 해당 프로그램 다운받고 설치후

PHP를 재 컴파일 한다

--with-mssql=freetds경로

freetds 설정 파일

[global]
tds version = 4.2

[myserver]
host = ntbox.mydomain.com
port = 1433

[myserver2]
host = unixbox.mydomain.com
port = 4000
tds version = 5.0

이런 형식이며 해당 주소를 첨부 한다

http://www.freetds.org/userguide/freetdsconf.htm
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 삐꾸강아쥐

2005/12/13 13:23 2005/12/13 13:23
Response
0 Trackbacks , 0 Comments
RSS :
http://blog.blog.n-nuri.com/rss/response/107

Trackback URL : http://blog.blog.n-nuri.com/trackback/107

Leave a comment
[로그인][오픈아이디란?]

블로그 이미지

http://blog.n-nuri.com 이 접속이 안 될경우 http://x2x.dnip.net 으로 접속해 주세요 공유하지 않는 지식은 썩은 물과 같다~~~!!!

- 삐꾸강아쥐

Archives

Recent Trackbacks

Calendar

«   2009/01   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Site Stats

Total hits:
227710
Today:
61
Yesterday:
279
free counters