Programming/php2014. 11. 11. 08:18
암용으로 크로스컴파일 하려는데
이래저래 부딛히는 dog show!!

php 컴파일시 configure 파일에서 dlopen 으로  검색후
found=yes로 하여 강제로 dlopen(extension 사용 가능하도록) 수정해야 한다.

php 컴파일
$ rm config.cache
$ ./configure --host=arm-none-linux-gnueabi --disable-all --with-config-file-path=/etc --enable-simplexml --enable-cgi --enable-fpm 

if-else 그리고 fi를 주석처리 
$ vi configure
65281 line
flock_type=unknown
if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else

65323 line
if test "$cross_compiling" = yes; then :
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else


xcache 컴파일
$ CC=arm-none-linux-gnueabi-gcc ./configure  --host=arm-none-linux-gnueabi --enable-xcache --enable-xcache-optimizer
xcache의 환경설정

$ vi /etc/php.ini

# 주석처리 되어있으니 주석만 삭제하면 될 듯
cgi.fix_pathinfo=1

# 이상한(?) 경로이니 옮겨서 사용하려면 주석삭제 및 수정 필요
extension_dir = "/usr/lib"

# 가장 아래 추가하면 됨
extension=xcache.so
[xcache.admin]
xcache.admin.enable_auth = Off

[xcache]
xcache.shm_scheme =        "mmap"
xcache.size  =               1M
xcache.count =                 1
xcache.slots =                8K
xcache.ttl   =                 0
xcache.gc_interval =           0

xcache.var_size  =            1M
xcache.var_count =             1
xcache.var_slots =            8K
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300

xcache.test =                Off
xcache.readonly_protection = Off
xcache.mmap_path =    "/dev/zero"
xcache.coredump_directory =   ""

xcache.cacher =               On
xcache.stat   =              Off
xcache.optimizer =           Off

[xcache.coverager]
xcache.coverager =          Off
xcache.coveragedump_directory = "" 

$ vi /etc/lighttpd/lighttpd.conf 
cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
                               ".html" => "/usr/bin/php",
#                              ".php" => "/bin/php-cgi",
                               ".cgi" => "" )

fastcgi.server = ( ".php" => ((
                        "bin-path" => "/bin/php-cgi",
                        "socket" => "/tmp/php.sock",
                        "max-procs" => 1,
                        "bin-environment" => (
                                "PHP_FCGI_CHILDREN" => "1",
                                "PHP_FCGI_MAX_REQUESTS" => "100"),
                        "bin-copy-environment" => (
                                "PAHT", "SHELL", "USER" ),
                        "broken-scriptfilename" => "enable"
                ))
)

lighttpd 에서 cgi.assign 부분에 php를 주석처리 하지 않으면
php-cgi 가 fpm을 통해 데몬으로 구동되어도 cgi가 먼저 처리 하면서 캐싱이 되지 않는다. 
(cgi가 fastcgi보다 위에 있어서 그럴지도?) 



ab 로 벤치마크 결과 50% 정도 향상.. 이려나?
+xcache enable
Time taken for tests:   570.448 seconds
Requests per second:    1.75 [#/sec] (mean)
Time per request:       570.448 [ms] (mean)
Time per request:       570.448 [ms] (mean, across all concurrent requests)
Transfer rate:          38.86 [Kbytes/sec] received

+xcache disable
Time taken for tests:   916.042 seconds
Requests per second:    1.09 [#/sec] (mean)
Time per request:       916.042 [ms] (mean)
Time per request:       916.042 [ms] (mean, across all concurrent requests)
Transfer rate:          24.20 [Kbytes/sec] received 




-----
--enable-fpm을 추가하지 않아도 되긴 되는 듯?

'Programming > php' 카테고리의 다른 글

php simpleXML saveXML 정렬하기 (well-formed XML)  (0) 2014.12.23
php simpleXML  (0) 2014.12.22
lighttpd + php 퍼미션 문제  (0) 2014.10.21
php.ini extension_dir  (0) 2014.10.20
php 5.3.22 / xcache 1.3.2  (0) 2014.10.15
Posted by 구차니