제로보드4를 MySQL 5.5 버전 이상환경에 설치시 '관리자 테이블 생성 실패' 메시지가 나오면 이는 제로보드4의 핵심파일인

schema.sql 파일 내의 SQL 문법의 오류 때문이다.

schema.sql 파일 139라인에 보면 no int(11) default '0' not null auto_increment primary key, 가 있는데 이를 아래처럼

no int(11) not null auto_increment primary key, 로 변경한다.

또한 '받은 쪽지 또는 보낸 쪽지 테이블 생성 실패'가 뜨면 받은 쪽지의 경우 318라인의

no int(20) default '0' not null auto_increment primary key , 를 no int(20) not null auto_increment primary key ,

보낸쪽지의 경우 332라인의 no int(20) default '0' not null auto_increment primary key , 를

no int(20) not null auto_increment primary key , 로 변경하면 설치는 큰문제 없이 진행될 것이다.

하지만 설치 이후 게시판 생성시 '게시판의 메인 테이블 생성' 가 발생할수 있기 때문에 schema.sql 파일의 create table 쿼리문 중 auto_increment

와 default '0' 가 함께 정의된 라인을 모두 찾아 default '0' 를 제거해주면 게시판이 정상 생성되는 것을 확인할 수 있다.

요약하자면 에러 메시지 없이 한번에 설치를 진행하기 위해서는 schema.sql 파일의 default '0' 를 모두 제거해주면 되는 것이다.

아래는 위의 방법으로 수정한 제로보드 4 schema.sql 파일이니 혹시 문제 발생시 첨부된 schema.sql 파일로 덮어쓰기 하면 된다.

schema.sql



[쉘 프로그래밍을 위한 sed 활용 예제 정리]

1. 특정 패턴 아래 라인 삭제 또는 추가

sed -i '/apple.*/{n;d}' abc.txt  // apple패턴아래 1줄 삭제

[결과] cat abc.txt
apple
banana

sed -i 's,\(apple.*\),\1\ngrape,g' abc.txt  // apple패턴아래 grape 추가

[결과] cat abc.txt
apple
grape
ornage
banana

[원본]abc.txt 의 내용

apple
orange
banana


2. 개행문자 (newline) 이 2개 연속으로 있을 때를 이를 1개로 변경하는 명령

sed -i '/^$/N;/^\n$/D' filename

filename 의 내용중 newline 이 2개 연속으로 있을때 이를 1개로 치환하며  -i 옵션은 변경된 내용을 출력하지 않고 filename 에 저장


3. sed 명령어에 변수사용

sed "s/abc/$dma/g" 와 같이 큰따옴표(") 안에 변수를 사용하면 된다.
sed 's/abc/$dma/g' 명령어는 abc 문자를 $dma 라는 문자로 바꾸라는 뜻이다.

즉, 작은따음표의 경우에는 $dma를 변수 dma로 인식하지 않고 문자열 $dma로 인식한다. 

 

4. 특정패턴 위/아래 에 내용 추가

sed "/찾을패턴/i추가할패턴" 파일명  (상단에 추가)
sed "/찾을패턴/a추가할패턴" 파일명 (하단에 추가)

 

5. 특정 라인 맨 앞/뒤 내용 추가

 

sed "행번호s/^/문자열/" 파일명 (라인 맨 앞 추가)
sed "행번호s/$/문자열/" 파일명 (라인 맨 뒤 추가)

 

6. 변수 값에 슬래쉬 (/) 가 포함된 값을 치환 할 때

[예제]
var="/home/user1/public_html" 변수 값 앞에 주석 (#) 을 붙인다고 하면
sed -i "s~$var~#$var~g" "파일명"


CentOS 6 넘어오면서부터 yum install 에서 libmcrypt libmcrypt-devel 이 지원되지 않는다.

따라서 아래의 방법으로 진행해야하며

1. vi /etc/yum.repos.d/epel.repo

해당 파일에 아래의 내용을 저장한다.


[EPEL]
name=epel
type=rpm-md
baseurl=http://ftp.neowiz.com/fedora-epel/6/x86_64
gpgcheck=1
gpgkey=http://ftp.neowiz.com/fedora-epel/RPM-GPG-KEY-EPEL-6
enabled=1


2. yum clean all

3. yum install libmcrypt libmcrypt-devel

(Cent 5 의 경우 위 과정은 생략)

4. 동일 버전의 php 소스에서


예) php-5.2.17 의 경우


cd php-5.2.17/ext/mcrypt


/usr/local/php/bin/phpize
aclocal

./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

그러면 아래와 같이 mcrypt.so 파일이 해당 경로에 만들어졌다고 나오는데

/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613

php.ini 파일 하위에

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/mcrypt.so

처럼 추가하고 웹서버 재시작하면 된다.

'Works > 확장모듈설치매뉴얼' 카테고리의 다른 글

mod_mime_magic 설치  (0) 2016.08.01
oAuth 확장모듈 설치  (0) 2016.03.29
PHP zip 확장모듈 설치  (0) 2016.02.26
PHP zlib 확장모듈 설치  (0) 2016.02.05
PHP 수호신(Suhosin) 설치  (0) 2016.01.29


PHP zip 확장모듈 설치

* php source 위치 : /usr/local/src/php-5.2.17
* php.ini 위치 : /usr/local/apache/conf/php.ini

1. 설치된 버전의 php 소스 다운로드 또는 원소스 디렉토리로 이동

 - cd /usr/local/src/php-5.2.17/ext/zip

2. 1번의 해당 경로에서 아래의 명령어 실행

 - /usr/local/php/bin/phpize

3. configure

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

4. make

5. make install (make install 시 마지막 zip.so 경로 확인)

6. php.ini 설정

7. apache 재시작

/etc/init.d httpd restart or /usr/local/apache/bin/apachectl restart



출처 : http://wnstjqdl.tistory.com

 

'Works > 확장모듈설치매뉴얼' 카테고리의 다른 글

oAuth 확장모듈 설치  (0) 2016.03.29
CentOS6 에서 mcrypt 확장모듈 설치시의 방법  (0) 2016.02.26
PHP zlib 확장모듈 설치  (0) 2016.02.05
PHP 수호신(Suhosin) 설치  (0) 2016.01.29
soap 모듈 추가 설치  (0) 2016.01.08


config.inc.php 파일을 열어 보면 여러 항목들 중

$cfg['Servers'][$i]['auth_type']     = 'cookie';  항목이 있는데 'cookie' 값을 http 또는 config 로 변경가능하며

아래는 지시자별 세부 내용이다.

http : .htaccess를 이용해서 MySQL 내의 계정(리눅스나 유닉스의 계정이 아닌 MySQL 내의 계정)을
이용해서 접속을 하는 방식

config : config.inc.php 파일 내에 아이디와 비밀번호를 저장하는 방식 (보안상 위험해 권장할 만한 사항이 아님)

만일 config 로 인증할 때 아래 변수에 User name 과 패스워드를 입력해야한다.

$cfg['Servers'][$i]['user']          = '';            // MySQL user
$cfg['Servers'][$i]['password']      = '';          // MySQL password (only needed with 'config' auth_type) 

cookie : session 방식으로 ID&Password 을 입력받아 암호화 해서 기록하는 방식

 


1. 현재폴더에서 하위 폴더 삭제

ll | grep ^d | awk '{print $NF}' | xargs rm -rf

2. 특정폴더에서 하위 폴더 삭제

ll /폴더/경로/ | grep ^d | awk '{print $NF}' | xargs rm -rf

common.php 파일 내부에

include_once("$g4[path]/$dbconfig_file");
$connect_db = sql_connect($mysql_host, $mysql_user, $mysql_password);
$select_db = sql_select_db($mysql_db, $connect_db);
mysql_query("set names euckr");

mysql_query("set names euckr"); 를 최하단에 추가해준다.

제로보드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