프로그램/php2014. 11. 7. 11:06

rpm 방식으로 설치되어있는 php가 있다면 확인해보고 삭제를 할지 판단한다.

]# rpm –qa | grep php

또는

]# rpm –qa | grep php*

php-common*

php-cli*

기타

 

 

 

 

 

 

 

]# rpm –e php-common*

]# rpm –e cli*

]# rpm -e 기

 

삭제되었는지 확인한다.

]# rpm –qa | grep php

또는

]# rpm –qa | grep php* 



더보기>

- php 버전 확인하기 - linux php version

- php 설치 - php openssl 연동을 위한 configure 옵션

- linux yum을 이용한 openssl 설치

- yum을 이용한 php 설치

Posted by 은둔고수
프로그램/php2014. 8. 13. 18:17

php 재 컴파일, 모듈 추가, 기타 등등 후 make 실행 중 "ext/모듈/*.lo" 에러 발생

 

 

오류 내용 예>

libtool: link: `ext/date/php_date.lo' is not a valid libtool object

- php 재 컴파일, 모듈 추가, 기타 등등 후 make 실행 중 발생 

 

방법> ext/모듈/*.lo 파일을 삭제 후 다시 실행한다.

]# cd /usr/local/src/apm/php-5.4.2/ext/모듈/

]# rm -rf 오류파일명.lo

 

 

 

삭제 후 다시 실행해도 다른 모듈의 *.lo 파일 오류가 계속 발생한다면 모든 모듈의 *.lo 파일을 삭제 후 다시 실행한다.

 

- 모든 모듈의 *.lo 파일 삭제하는 방법

Posted by 은둔고수
프로그램/php2014. 8. 13. 17:28

php 설치 후에 추가로 설치할 모듈이 있어 configure 옵션을 추가, 변경해서 php를 재 컴파일을 해야 하는 경우

 

 

추가할 모듈이 설치되어있는지 확인한다. (> openssl, mcrypt)

 

 

 

기존에 설치했던 소스 디렉토리로 이동한다.

]# cd /usr/local/src/apm/php-5.4.2/

 

재 컴파일이 하기 전 php.ini와 같은 설정파일이나 중요한 파일들을 백업해둔다.

]# mkdir usr/local/src/apm/php-5.4.2_bk

]# cp / usr/local/src/apm/php-5.4.2/* usr/local/src/apm/php-5.4.2_bk/

 

 

추가할 모듈을 php configure 기존 옵션에 추가한다.

]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --disable-debug --with-iconv --with-gd --with-jpeg-dir --with-png-dir --with-libxml-dir --with-freetype-dir --with-zlib-dir --with-config-file-path=/usr/local/apache/conf --enable-sockets --with-openssl --with-mcrypt

 

 

 

]# make

참고>make 실행 중에 libtool: link: `ext/date/*.lo' is not a valid libtool object ...

등 위와 비슷한 오류가 발생했다면... 자세히>

 

 

 

]# make install

중요>make 완료 후 make install을 실행해야 한다.

 

 

apache를 재시작한다.

]# service httpd restart

 

 

모듈이 추가되었는지 확인을 한다.

- openssl, mcrypt 모듈 설치 확인php openssl 연동 확인

Posted by 은둔고수
프로그램/php2014. 8. 8. 14:29

php 설치 이후 phpopenssl을 연동을 하기 위해서 php 설치 사용한 소스 디렉토리내에 있는 openssl 모듈 디렉토리로(ext/모듈) 이동한다.

참고> 다른 모듈도 이 방식으로 추가할 수 있다.

 

 

]# cd /usr/local/src/apm/php-5.4.2/ext/openssl/

]# ll

 

 

 

 

]# cp config0.m4 config.m4

참고> config.m4가 있다면 생략

]# ll

 

 

 

 

 

phpize를 실행한다. (해당위치에 없다면 find / -name phpize를 실행해서 찾는다.)

]# /usr/local/php/bin/phpize

참고>phpize를 실행하면 configure 파일이 생성된다.

- Cannot find autoconf 오류가 발생했다면... 자세히>

 

 

 

 

 

]# ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config

 

 

 

 

 

 

]# make

 

 

 

php openssl 연동

]# mkdir /usr/local/php/modules

]# cp modules/openssl.so /usr/local/php/modules/

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

extension_dir = “/usr/local/php/modules” <- 변경

extension=openssl.so <- 추가

 

 

apache를 재 시작한다.

]# service httpd restart 



phpinfo()를 이용해서 openssl이 활성화되었는지 확인한다.


Posted by 은둔고수
프로그램/php2014. 8. 8. 13:38

php를 설치하기 전에 openssl설치가 되어있는지 확인한다.

openssl 설치 확인

linux yum을 이용한 openssl 설치

 

 

php 설치 configure 옵션에 –with-openssl을 사용한다.

]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --disable-debug --with-iconv --with-gd --with-jpeg-dir --with-png-dir --with-libxml-dir --with-freetype-dir --with-zlib-dir --with-config-file-path=/usr/local/apache/conf --enable-sockets --with-openssl --with-mcrypt

 

 

 

php 설치를 진행한다.

 

 

php openssl 연동을 확인한다.

Posted by 은둔고수
프로그램/linux2014. 8. 7. 15:59

php 설치 configure 진행 중에 mcrypt.h not found 에러 발생

 

오류 내용>

configure: error: mcrypt.h not found. Please reinstall libmcrypt. 

 

 

 

 

방법> libmcrypt를 설치한다. (yum을 이용한 mcrypt 설치)

Posted by 은둔고수
프로그램/php2014. 7. 9. 15:31

오류>PHP Fatal error:  Directive 'magic_quotes_gpc' is no longer available in PHP in Unknown on line 0

 

 

발생>php (shell)을 실행할 때 발생

>

]# php -i

 

 

   

 

 

>php.ini 파일 내용 중 magic_quotes_qpc = On Off로 변경을 한 후 httpd 데몬을 재 시작을 한다.

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

 

 

 

 

apache를 재 시작한다.

]# service httpd restart

php를 실행해본다.(> php 버전 확인)

]# php -v

 

 

 

더보기>
- bash: /usr/bin/php: 그런 파일이나 디렉토리가 없음

Posted by 은둔고수
프로그램/php2014. 7. 9. 15:20

오류 내용>

-bash: /usr/bin/php: 그런 파일이나 디렉토리가 없음

 

발생>

php (shell)을 실행할 때 발생

>

]# phpi 

 

 

방법>

php 실행 파일이 /usr/bin있는지 확인해보고 없다면 php가 설치되어있는 곳으로 심볼릭 링크를 건다.

php가 설치되어 있는 곳 알아내기

]# whereis php

php: /usr/local/php

 

 

 

php가 설치되어있는 곳의 php 실행(또는 모든) 파일에 대해 심볼릭 링크를 건다.

]# cd /usr/bin

]# ln -s /usr/local/php/bin/php /usr/bin/

또는 모든 파일에 대해 심볼릭 링크 걸기

]# ln -s /usr/local/php/bin/* /usr/bin/

심볼릭 링크가 만들어졌는지 확인한다.

]# ll /usr/bin/ph*

]# whereis php

 

 

 

 

 

더보기> 

- PHP Fatal error:  Directive 'magic_quotes_gpc' is no longer available in PHP in Unknown on line 0

Posted by 은둔고수
프로그램/php2014. 4. 23. 13:00

버블소트(bubble sort)란?

정렬하는 방식이 마치 물에서 거품(버블:Bubble)들이 움직이는 것과 비슷하다고 해서 붙여진 이름

 

[PHP로 구현하기]

$array = array(3, 0, 2, 1, 4, 5, -1);
$size = sizeof($array);

for($x = 0; $x < $size; $x++){
    for($y = 0; $y < $size; $y++){
        if($array[$x] < $array[$y]){
            $tmp = $array[$x];
            $array[$x] = $array[$y];
            $array[$y] = $tmp;
           }
    }
}

print_r($array);

 

[결과]

Array ( [0] => -1 [1] => 0 [2] => 1 [3] => 2 [4] => 3 [5] => 4 [6] => 5 )

 

 

[PHP 내장함수 사용하기] sort()

sort($array);

print_r($array);

 

[결과]

Array ( [0] => -1 [1] => 0 [2] => 1 [3] => 2 [4] => 3 [5] => 4 [6] => 5 )

Posted by 은둔고수
프로그램/php2014. 4. 20. 21:56

값을 구하는 과정에서 전달하는 절차에 문제가 발생한 경우로 각 절차를 분리를 해야 한다.

 

에러 발생 예> 배열의 마지막 키값을 알아내기

<?

$ary_tmp = array(1,2,3,4,5,6);
$last = end(array_keys($ary_tmp));

 

echo "결과 : " . $last;

?>

[결과]

Strict Standards: Only variables should be passed by reference in 문제가 발생한 파일 경로 on line 줄 번호

결과 : 5

 

 

 

값을 구하는 절차를 분리한다.

수정 예>

<?

$ary_tmp = array(1,2,3,4,5,6);
$ary_key = array_keys($ary_tmp);

$last = end($ary_key);

 

echo "결과 : " . $last;

?>

[결과]

결과 : 5

Posted by 은둔고수