Mysqldump и GD+freetype в apache chroot jail в Openbsd

Кратко howto за включване на поддръжка на mysqldump и GD+freetype в chroot-нато апаче в Openbsd 4.9
Примера е с Openbsd 4.9 , но би трябвало да работи и при други ОС с chroot apache, просто пътищата ще са различни.

Започваме с mysql и mysqldump

Първо да разберем какви библиотеки използват тези програми:

$ ldd /usr/local/bin/mysql
/usr/local/bin/mysql:
Start End Type Open Ref GrpRef Name
1c000000 3c00e000 exe 1 0 0 /usr/local/bin/mysql
0f08e000 2f097000 rlib 0 1 0 /usr/lib/libreadline.so.3.0
0cc64000 2cc74000 rlib 0 1 0 /usr/lib/libncursesw.so.12.0
03382000 2338b000 rlib 0 1 0 /usr/lib/libpthread.so.13.1
0bc20000 2bc56000 rlib 0 1 0 /usr/local/lib/mysql/libmysqlclient.so.20.0
06db6000 26dbe000 rlib 0 2 0 /usr/lib/libm.so.5.2
0d087000 2d093000 rlib 0 2 0 /usr/lib/libssl.so.16.0
0ee80000 2eebd000 rlib 0 2 0 /usr/lib/libcrypto.so.19.0
0f148000 2f14f000 rlib 0 2 0 /usr/lib/libz.so.4.1
0df80000 2dfb4000 rlib 0 1 0 /usr/lib/libc.so.58.0
07f9e000 07f9e000 rtld 0 1 0 /usr/libexec/ld.so

 

$ ldd /usr/local/bin/mysqldump
/usr/local/bin/mysqldump:
Start End Type Open Ref GrpRef Name
1c000000 3c00b000 exe 1 0 0 /usr/local/bin/mysqldump
083da000 283e3000 rlib 0 1 0 /usr/lib/libpthread.so.13.1
01d96000 21dcc000 rlib 0 1 0 /usr/local/lib/mysql/libmysqlclient.so.20.0
013ce000 213d6000 rlib 0 2 0 /usr/lib/libm.so.5.2
0e852000 2e85e000 rlib 0 2 0 /usr/lib/libssl.so.16.0
044bc000 244f9000 rlib 0 2 0 /usr/lib/libcrypto.so.19.0
0aec2000 2aec9000 rlib 0 2 0 /usr/lib/libz.so.4.1
0c5d0000 2c604000 rlib 0 1 0 /usr/lib/libc.so.58.0
039ec000 039ec000 rtld 0 1 0 /usr/libexec/ld.so

При Openbsd apache сървъра е chroot-нат в /var/www

Правим същата структура на директориите, само че в /var/www
mkdir -p /var/www/usr/local/bin
mkdir -p /var/www/usr/lib
mkdir -p /var/www/usr/local/lib

копираме всички файлове, които излязоха отгоре, като спазваме пътищата.
cp /usr/local/bin/mysql /var/www/usr/local/bin/
cp /usr/local/bin/mysqldump /var/www/usr/local/bin/
cp /usr/local/lib/mysql/libmysqlclient.so.20.0 /var/www/usr/local/lib/mysql/

По същия начин продължаваме за библиотеките в /usr/lib -> /var/www/usr/lib/
Мисля, че трябва да копирате и sh
cp /bin/sh /var/www/bin/

GD библиотека с freetype поддръжка е необходима за генериране на capcha картинки.
Трябват ни библиотеки от xbase4.9.tgz пакета, така че ако не сте ги инталирали го направете. Ако ви се занимава може да извадите само тези библиотеки, които ви трябват, а те са: libxpm и libfreetype

cp -p /usr/X11R6/lib/libXpm.so.* /usr/X11R6/lib/libfreetype.so.* /var/www/usr/lib

След това инсталирайте gd и php5-gd

pkg_add -i gd
pkg_add -i php5-gd

Не избирайте php5-gd_NO_X11

Comment are closed.