LINUX.ORG.RU
ФорумAdmin

Need help :OpenBSD + php-gd + chroot

 , ,


0

1

Короче нужно просто пнуть в нужном направлении куда копать. php загнан в chroot , запускается через lighttpd + fastcgi . не работает gd либа в chroot'e.
все необходимые зависимости extension'a загнал в соответствующие пути, то есть из chroot'a php они видны:

$ ldd gd.so
	Start    End      Type Open Ref GrpRef Name
	00f31000 20f59000 dlib 1    0   0      /usr/local/lib/gd.so
	04138000 24157000 rlib 0    1   0      /usr/local/lib/libt1.so.6.0
	0ab45000 2ab5d000 rlib 0    1   0      /usr/X11R6/lib/libfreetype.so.18.1
	0d9db000 2da58000 rlib 0    2   0      /usr/X11R6/lib/libX11.so.15.0
	0014d000 20151000 rlib 0    1   0      /usr/X11R6/lib/libXpm.so.8.0
	02dfb000 22e02000 rlib 0    1   0      /usr/local/lib/libpng.so.13.0
	049b3000 249ba000 rlib 0    1   0      /usr/lib/libz.so.4.1
	0f84e000 2f854000 rlib 0    1   0      /usr/local/lib/libjpeg.so.64.0
	0d0fd000 2d106000 rlib 0    1   0      /usr/lib/libm.so.7.0
	0e58c000 2e591000 rlib 0    2   0      /usr/X11R6/lib/libxcb.so.2.2
	02e20000 22e24000 rlib 0    1   0      /usr/X11R6/lib/libpthread-stubs.so.1.0
	0b456000 2b45a000 rlib 0    1   0      /usr/X11R6/lib/libXau.so.9.0
	0a562000 2a567000 rlib 0    1   0      /usr/X11R6/lib/libXdmcp.so.10.0

перед этим заносил extention для pg все отлично работает, а gd не подхватывается.Физическое наличие файлов проверил и имена файлов тоже - все совпадает. Есть идеи ?

P.S> конфиги lighttpd и php.ini

lighttpd.conf:

server.modules              = (
                                "mod_access",
                                "mod_fastcgi",
                                "mod_accesslog" )

## A static document-root. For virtual hosting take a look at the
## mod_simple_vhost module.
server.document-root        = "htdocs/"
server.upload-dirs        = ("/tmp")

#### accesslog module
accesslog.filename          = "logs/access.log"

## where to send error-messages to
server.errorlog             = "logs/error.log"

# files to check for if .../ is requested
index-file.names            = ( "index.php" ,"index.html", "index.htm", 
"default.htm" )

server.event-handler = "kqueue"
server.network-backend = "writev"

server.bind = "0.0.0.0"
server.port = "81"

$SERVER["socket"] == "[::]:81" { }


url.access-deny             = ( "~", ".inc" )

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

server.pid-file            = "/var/run/lighttpd.pid"

server.chroot              = "/var/www/"

server.username            = "_lighttpd"
server.groupname           = "_lighttpd"

fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/tmp/php-fastcgi.socket",
                                   "bin-path" => "/usr/local/bin/php -c /etc/php.ini",
                                   "bin-environment" => (
                                      "PHP_FCGI_CHILDREN" => "4",
                                      "PHP_FCGI_MAX_REQUESTS" => "1000"
                                   ),
                                   "min-procs" => 1,
                                   "max-procs" => 1,
                                   "idle-timeout" => 20,
                                   "broken-scriptfilename" => "enable"
                                 )
                               )
                            )


php.ini (только основная часть относящееся к делу)

  ...
    doc_root = "/htdocs"
    extension_dir = "/usr/local/lib/" 
    cgi.fix_pathinfo=1
    extension=pgsql.so         // напоминаю этот extension работает отлично
    extension=gd.so
  ...

Ответ на: комментарий от val-amart

chroot (/var/www/)

ls -lR /var/www/
drwxr-xr-x   2 _lighttpd  _lighttpd   512 Aug 21 00:16 bin
drwxr-xr-x   3 _lighttpd  _lighttpd   512 Aug 21 00:18 etc
drwxr-xr-x  11 _lighttpd  _lighttpd  1024 Sep  6 16:24 htdocs
drwxr-xr-x   2 _lighttpd  _lighttpd   512 Aug 20 20:20 logs
drwxrwxrwt   2 _lighttpd  _lighttpd   512 Sep  6 15:02 tmp
drwxr-xr-x   7 _lighttpd  _lighttpd   512 Sep  6 02:24 usr


/var/www/etc:
drwxr-xr-x  2 _lighttpd  _lighttpd    512 Aug 21 00:29 php-5.3
-rw-r--r--  1 _lighttpd  _lighttpd  89677 Sep  6 15:02 php.ini


/var/www/htdocs:

-rw-r--r--   1 _lighttpd  _lighttpd     21 Sep  6 02:36 test.php


/var/www/logs:
-rw-r--r--  1 _lighttpd  _lighttpd  1604079 Sep  6 16:25 access.log
-rw-r--r--  1 _lighttpd  _lighttpd    24406 Sep  6 15:03 error.log

/var/www/tmp:
srwxrwxrwx  1 _lighttpd  _lighttpd    0 Aug 21 19:12 .s.PGSQL.5432
srwxr-xr-x  1 _lighttpd  _lighttpd    0 Sep  6 15:02 php-fastcgi.socket-0
-rw-------  1 _lighttpd  _lighttpd   88 Aug 21 12:27 sess_31o4h9vhhoa94245ludmg9a8o4

/var/www/usr:
drwxr-xr-x  3 _lighttpd  _lighttpd  512 Sep  6 02:24 X11R6
drwxr-xr-x  2 _lighttpd  _lighttpd  512 Sep  6 13:41 lib
drwxr-xr-x  2 _lighttpd  _lighttpd  512 Aug 20 21:16 libexec
drwxr-xr-x  4 _lighttpd  _lighttpd  512 Aug 20 23:54 local
drwxr-xr-x  2 _lighttpd  _lighttpd  512 Aug 21 00:16 sbin

/var/www/usr/X11R6:
drwxr-xr-x  2 _lighttpd  _lighttpd  1024 Sep  6 13:44 lib

/var/www/usr/X11R6/lib:
-rwxr-xr-x  1 _lighttpd  _lighttpd     6458 Feb 12  2012 libX11-xcb.so.1.0
-rwxr-xr-x  1 _lighttpd  _lighttpd  1258232 Feb 12  2012 libX11.so.15.0
-rwxr-xr-x  1 _lighttpd  _lighttpd    12139 Feb 12  2012 libXau.so.9.0
-rwxr-xr-x  1 _lighttpd  _lighttpd    21182 Feb 12  2012 libXdmcp.so.10.0
-rwxr-xr-x  1 _lighttpd  _lighttpd    76335 Feb 12  2012 libXpm.so.8.0
-rwxr-xr-x  1 _lighttpd  _lighttpd   215861 Sep  6 03:19 libfontconfig.so.7.0
-rwxr-xr-x  1 _lighttpd  _lighttpd   544277 Sep  6 02:25 libfreetype.so.18.1
-rwxr-xr-x  1 _lighttpd  _lighttpd   498754 Feb 12  2012 libpixman-1.so.22.2
-rwxr-xr-x  1 _lighttpd  _lighttpd     7180 Feb 12  2012 libpthread-stubs.a
-rwxr-xr-x  1 _lighttpd  _lighttpd    10675 Feb 12  2012 libpthread-stubs.so.1.0
-rwxr-xr-x  1 _lighttpd  _lighttpd     7722 Feb 12  2012 libpthread-stubs_pic.a
-rwxr-xr-x  1 _lighttpd  _lighttpd   341539 Feb 12  2012 libxcb.so.2.2

/var/www/usr/lib:
-rwxr-xr-x  1 _lighttpd  _lighttpd  2593417 Aug 20 21:16 libc.so.62.0
-rwxr-xr-x  1 _lighttpd  _lighttpd  2307724 Aug 21 00:42 libcom_err.so.18.0
-rwxr-xr-x  1 _lighttpd  _lighttpd  5053530 Aug 20 21:14 libcrypto.so.20.1
-rwxr-xr-x  1 _lighttpd  _lighttpd   323995 Sep  6 03:20 libexpat.so.9.0
-rwxr-xr-x  1 _lighttpd  _lighttpd   441887 Aug 20 21:14 libgssapi.so.5.0
-rwxr-xr-x  1 _lighttpd  _lighttpd  2307724 Aug 20 21:13 libkrb5.so.18.0
-rwxr-xr-x  1 _lighttpd  _lighttpd   455609 Feb 12  2012 libm.so.7.0
-rwxr-xr-x  1 _lighttpd  _lighttpd   760556 Aug 20 21:15 libpthread.so.13.3
-rwxr-xr-x  1 _lighttpd  _lighttpd  1489809 Aug 21 00:42 libssl.so.17.1
-rwxr-xr-x  1 _lighttpd  _lighttpd   163297 Feb 12  2012 libz.so.4.1

/var/www/usr/libexec:
-rwxr-xr-x  1 _lighttpd  _lighttpd  47589 Aug 20 21:16 ld.so

/var/www/usr/local:
drwxr-xr-x  2 _lighttpd  _lighttpd  512 Aug 20 21:11 bin
drwxr-xr-x  2 _lighttpd  _lighttpd  512 Sep  6 13:40 lib

/var/www/usr/local/bin:
-rwxr-xr-x  1 _lighttpd  _lighttpd  8591488 Aug 20 21:11 php

/var/www/usr/local/lib:
-rwxr-xr-x  1 _lighttpd  _lighttpd   338310 Feb  7  2012 gd.so
-rwxr-xr-x  1 _lighttpd  _lighttpd   544277 Feb 12  2012 libfreetype.so.18.1
-rwxr-xr-x  1 _lighttpd  _lighttpd   262137 Feb  7  2012 libgd.so.20.35
-rwxr-xr-x  1 _lighttpd  _lighttpd  1060880 Sep  6 03:19 libiconv.so.6.0
-rwxr-xr-x  1 _lighttpd  _lighttpd    43508 Aug 20 21:12 libintl.so.6.0
-rwxr-xr-x  1 _lighttpd  _lighttpd   238134 Aug 19 21:04 libjpeg.so.64.0
-rwxr-xr-x  1 _lighttpd  _lighttpd  9354931 Feb  7  2012 libphp5.so
-rwxr-xr-x  1 _lighttpd  _lighttpd   185085 Aug 19 21:05 libpng.so.13.0
-rwxr-xr-x  1 _lighttpd  _lighttpd   156046 Aug 21 00:41 libpq.so.5.4
-rwxr-xr-x  1 _lighttpd  _lighttpd   280819 Aug 19 21:10 libt1.so.6.0
-rwxr-xr-x  1 _lighttpd  _lighttpd  1327230 Aug 20 21:15 libxml2.so.12.0
-rwxr-xr-x  1 _lighttpd  _lighttpd   120866 Feb  7  2012 pgsql.so

/var/www/usr/sbin:
-rwxr-xr-x  1 _lighttpd  _lighttpd  236012 Aug 21 00:16 sendmail
nullb0t ()
Ответ на: комментарий от nullb0t

попробуй все либы из usr/local/lib кроме gd.so и pgsql.so переместить в usr/lib. еще я ведь правильно понимаю, что вывод от ldd дан после чрутования и су в пользователя лайти?

val-amart ★★★★★ ()
Ответ на: комментарий от val-amart

нет ldd сделан от обычного пользователя системы su на юзера лайти мне не дадут сделать ибо :
/etc/passwd

 _lighttpd:*:585:585:lighttpd Account:/nonexistent:/sbin/nologin

nullb0t ()
Ответ на: комментарий от nullb0t
LD_DEBUG=1 php -m 2>&1

Из чрута и смотри на чем облом. Скорее всего нужно из чрута сделать:

ldconfig
ldconfig -m /usr/X11R6/lib

kostian ★★★★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.