'php'에 해당되는 글 4건
2009/08/03 11:29
[서버관련]
리눅스에서 php설치시
/usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32 against `a local symbol' can not be used when mak ing a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1
에러시
zlib 설치를
./configure -s
로 shared library 로 컴파일하고php를 재설치한다.
잘된다.;;
2008/03/04 21:04
[서버관련]
FreeBSD 에서 Apache2 + PHP 5.x 를 설치하는 방법
vi /boot/loader.conf 에
커널옵션에
최신 아파치(현재는 2.2.8) 을 가져와서 소스를 푼다.
PHP를 동적으로 컴파일해야 하기때문에 --enable-so는 반드시 있어야한다.
그외 옵션추가는 ./configure --help 로 참조한다.
설치디렉토리는 --prefix 의 경로로 변경이 가능하다.
위의 과정으로 아파치 컴파일은 완료!
FreeBSD 6.x 의 경우 기본적으로 perl이 설치안되어 있으므로 perl을 설치하는것이 좋겠다.
최신의 PHP 소스롤 가져다가 푼다.
아파치 설치된 경로로 apxs 를 지정한다.
그외 gd를 설치하거나 기타 옵션을 주려면, 마찬가지로 ./configure --help를 참고한다.
인스톨후
아파치 설치 디렉토리에서
vi /usr/local/apache2/conf/httpd.conf
후에 아래를 추가한다.
그외 아파치 설정파일은 아파치 문서를 참고한다.
.php 외의 확장자나 다른확장자로 php 스크립트를 만드려면 뒤에 추가해도 된다.
ex) AddType application/x-httpd-php .php .html .phps
아파치를 구동한다.
kldload accf_http
를 띄운다.vi /boot/loader.conf 에
accf_http_load="YES"
추가하고 리부팅 한번 때려주거나,커널옵션에
options ACCEPT_FILTER_HTTP
를 추가하고 커널컴팔 후 리부팅한다.최신 아파치(현재는 2.2.8) 을 가져와서 소스를 푼다.
./configure --prefix=/usr/local/apache2 --enable-module=most --enable-shared=max --enable-rewrite --enable-headers --enable-rewrite --enable-deflate --enable-so --with-included-apr
PHP를 동적으로 컴파일해야 하기때문에 --enable-so는 반드시 있어야한다.
그외 옵션추가는 ./configure --help 로 참조한다.
설치디렉토리는 --prefix 의 경로로 변경이 가능하다.
make; make install
위의 과정으로 아파치 컴파일은 완료!
FreeBSD 6.x 의 경우 기본적으로 perl이 설치안되어 있으므로 perl을 설치하는것이 좋겠다.
cd /usr/port/lang/perl5.8
make install
make install
최신의 PHP 소스롤 가져다가 푼다.
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/apache2/conf --with-mysql=/usr/local/mysql --with-zlib-dir=/usr/local/zlib --enable-ftp --enable-sockets --enable-mbstring --disable-debug --with-config-file-path=/usr/local/lib --with-iconv
아파치 설치된 경로로 apxs 를 지정한다.
그외 gd를 설치하거나 기타 옵션을 주려면, 마찬가지로 ./configure --help를 참고한다.
make; make install
인스톨후
# php -v
PHP 5.2.5 (cli) (built: Nov 5 2007 16:11:19)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
와 같이 버젼이 제대로 나오는지 확인한다.PHP 5.2.5 (cli) (built: Nov 5 2007 16:11:19)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
아파치 설치 디렉토리에서
vi /usr/local/apache2/conf/httpd.conf
후에 아래를 추가한다.
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php
그외 아파치 설정파일은 아파치 문서를 참고한다.
.php 외의 확장자나 다른확장자로 php 스크립트를 만드려면 뒤에 추가해도 된다.
ex) AddType application/x-httpd-php .php .html .phps
/usr/local/apache2/bin/apachectl start
아파치를 구동한다.
2008/02/13 18:01
[개발자이야기]
보통 쉘프로그램이나 배치프로그램으로 사용자 입력값을 받고 싶을때가 있다.
물론 php로도 훌륭한 스크립트를 만들 수 있는건 당연...
그럴경우 유용하게 사용할 수 있다~~
#!/usr/local/php/bin/php -q
<?php
function getInput($length = 255) {
$fr = fopen("php://stdin", "r");
$input = fgets($fr, $length);
$input = rtrim($input);
fclose($fr);
return $input;
}
echo '글자를 입력하세요 (10자 이내): ';
$text = getInput(10);
echo '입력하신 내용은 '.$text."입니다.\n";
?>
2008/01/28 20:45
[개발자이야기]
php의 strpos와는 좀 틀리지만.,
문제열이 포함되어 있는지의 여부는 아래의 예제로 충분할듯.
#include <stdio.h>
#include <string.h>
main()
{
char string[]="string to search";
char test[]="sear";
/* strstr returns a pointer into 'string'
* if 'test' is found' if not found, NULL
* is returned. */
if (strstr(string, test)) puts("String found");
}


