PHP5 + GD support Solaris10-re

Sziasztok!

Egy Solaris 10 11/06 x86 -ra szeretnék PHP5-öt GD supporttal telepíteni a http://www.blastwave.org -ról.

> pkg-get -i php5_gd
No existing install of CSWphp5gd found. Installing...
Pre-existing local file php5_gd-5.2.4,REV=2007.10.29-SunOS5.8-i386-CSW.pkg.gz matches checksum
Keeping existing file
Analysing special files...
Trying to install dependancy t1lib
No existing install of CSWt1lib found. Installing...
Pre-existing local file t1lib-5.0.2-SunOS5.8-i386-CSW.pkg.gz matches checksum
Keeping existing file
Analysing special files...
ERROR: no info for SUNWxwice. Cannot install dependancy.
ERROR: could not install required dependancies for CSWt1lib
ERROR: install of CSWt1lib failed
ERROR: could not install required dependancies for CSWphp5gd

> pkg-get -i CSWt1lib
ERROR: CSWt1lib unrecognized
Perhaps you need to run pkg-get -U

> pkg-get -U

és újra :

> pkg-get -i CSWt1lib
ERROR: CSWt1lib unrecognized
Perhaps you need to run pkg-get -U

Mindezt a "global" zónában követem el.

Van valakinek valami ötlete, hogy honnan pótolhatom a hiányzó csomagot? Mi a tapasztalat, érdemes fordítani?

Hozzászólások

Felraktam a CSWt1lib -et kézzel onnan ahonnan te írtad, köszönöm.
A SUNWxwice minek kell?

> pkginfo -d /cdrom/sol_10_1106_x86/Solaris_10/Product SUNWxwice
system SUNWxwice X Window System Inter-Client Exchange (ICE) Components

Viszont egyenlőre nincs GD a PHP-ban. A következő csomagok vannak fent:

> pkginfo | grep gd
system CSWgd gd - libgd, Graphics creation library and utilities
system CSWgdbm gdbm - GNU dbm
application CSWphp5gd php5_gd - PHP 5 - GD Extension

Szerintem itt már valami PHP config hibája lehet...

Megnézné valaki aki használ php-t hogy mely ide vonatkozó modulok vannak installálva?

Igen ez alap kérdés, és be is van állítva:

extension_dir = "/opt/csw/php5/lib/php/extensions/no-debug-non-zts-20060613"

és hát minden más modul betöltődik csak ez nem. Szóval szívok vele...

Kínomban már felraktam egy debiant egy másik gépre és arra egy Apache + PHP azonos verziót, és azt associálom a Solarishoz. A Linuxon megy itt nem.

apache error log: PHP Warning: PHP Startup: Unable to load dynamic library '/opt/csw/php5/lib/php/extensions/no-debug-non-zts-20060613/gd.so' - ld.so.1: httpd: fatal: libX11.so.4: open failed: No such file or directory in Unknown on line 0

Azt azért nem hiszem hogy benéztem a sparc csomagot. De megnézem a bash_history-t:

wget http://blastwave.informatik.uni-erlangen.de/csw/unstable/i386/5.10/t1li…
pkgadd -d t1lib-5.0.2-SunOS5.8-i386-CSW.pkg
pkgadd -d /cdrom/sol_10_1106_x86/Solaris_10/Product SUNWxwice
svcadm restart cswapache2

Úgy látom hogy csak x86-okat raktam fel.

Nos ismét a Solaris + PHP + GD-t gyúrom. Összefoglalva:

- x86 csomagokat tettem fel
- /usr/openwin/lib/libX11.so.4 van
- /usr/openwin/lib/amd64/libX11.so.4 van
- /opt/csw/php5/lib/php/extensions/no-debug-non-zts-20060613/gd.so van
- php.ini --> extension_dir = "/opt/csw/php5/lib/php/extensions/no-debug-non-zts-20060613"
- PHP Warning: PHP Startup: Unable to load dynamic library '/opt/csw/php5/lib/php/extensions/no-debug-non-zts-20060613/gd.so' - ld.so.1: httpd: fatal: libX11.so.4: open failed: No such file or directory in Unknown on line 0
- A $PATH-ban minden bentvan ami kell.
- A CSWgd fentvan

Szerintem a php5_gd csomag sux !?

Egy másik kérdésem is van. Installáltam egy másik Tyan szerverre egy Solaris 5.10 11/06-ot szintén. Alaplap Tyan S3970G2NR 2214 AMD Opteron processzorral. Első Blikkre a a hosszadalmas Solaris install után a bootolásnál egy kernel üzenetet kapok vissza hogy nem tud betölteni a BIOS-ból valami kódot ezért 32 bites módban indul el? Gondolom ez valami BIOS beállítás kérdése lehet, esetleg BIOS frissítést kéne csinálnom. Ezzel kapcsolatban van valakinek gyakorlati tapasztalata? Ez a gép egy intranetes gép lesz, és jó követelmény a cégnél az egységes Solaris platformot megtartani, ezért segítségeteket kérem ebben is.

Nekem azzal nem volt bajom, hogy nem felhasználóbarát. Elbohóckodtam olyan dolgokkal, hogy statikus gcc-t feltettem, azzal fordítottam egy rendes gcc-t, gnu utils-t, meg flex-et ilyesmit (mert csomag az nem volt). Aztán amikor az alap toolchain megvolt, akkor mysql-t, php-t, apache-ot. Ment is. A probléma akkor volt, amikor egy hónapban 4 php, meg 2 apache biztonsági frissítés jött ki, aztán lehetett mindent újrapörgetni, meg figyelgetni a paramétereket... :) Végülis ez sem volt akkora baj, az egészre az tette fel a koronát, amikor a Sun bejelentette, hogy a x86-on megszűnik a Solaris. Na, akkor végleg búcsút mondtam. Persze azóta kitalálták, hogy mégis lesz, lett Solaris 9, meg Solaris 10, de ha az ember kedvét egyszer elveszik, akkor nagyon nehéz visszacsábítani. Nem is igen sikerül.

--
trey @ gépház

Akkor "hadszójjon" a megoldás: (Hátha másnak is előjön valamikor!)

Az ld.so a /var/ld/ld.config fájlból nyeri ki az elérési útvonalakat. Ezt a fájlt nem lehet szövegszerkesztővel szerkeszteni a linux analógiára a /etc/ld.so.conf és Deabian Etch 64 esetében az /etc/ld.so.conf.d/x86_64-linux-gnu.conf szerkesztésével megoldható.

Helyette a crle program használható az ld.so konfigolására.

Amennyiben a /usr/openwin/lib -ben lévő modulokat is el kell érnie az ld-nek, akkor a következő a parancsot kell használni:

# crle
Default configuration file (/var/ld/ld.config) not found
Default Library Path (ELF): /lib:/usr/lib (system default)
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (system default)

Látszik hogy a deafult system könyvtárakon kívűl az ld nem tud elérni más könyvtárt, mert az ld.config nem létezik. Ezért az crle -l 'path' használatával elérhetővé kell tenni a /usr/openwin/lib -et, ami így fog kinézni:

# crle -l /lib:/usr/lib:/usr/openwin/lib
# crle
Configuration file [version 4]: /var/ld/ld.config
Default Library Path (ELF): /lib:/usr/lib:/usr/openwin/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (system default)

Command line:
crle -c /var/ld/ld.config -l /lib:/usr/lib:/usr/openwin/lib

Csodálatos dolog hogy a Solarison a legtöbb adminisztrációs feleadatot a parancssorból lehet/kell elvégezni SMF, crle, stb. :(o)

Nincs vele gond semmi, pont hogy értékelem a szövegszerkesztős bucherálás helyett.

SZVSZ a Solaris fejlesztők nagyon jó munkát végeznek a 5.8 óta (pont azóta mióta trey lecserélte), a Zónák, SMF, a ZFS fájlrendszer nagyon használható dolgok. Jellemzően a gép amire most egy PHP-t kelett installálni, gyakorlatilag az Ip filter belövése óta hibátlanul és újraindítás nélkül megy.

Egyedül az IPFilter aktiválását nem tartom túl "elegánsnak", mert vagy rebootolni kell az egész gépet, vagy autopush -f /etc/ipf/pfil.ap és /etc/init.d/ipfboot start metódussal helyben tudom aktiválni. Távolról csak a nem túl elegáns rebbot használható, aminél a Linux netfiltere elegánsabb megoldásokat kínál. Ha meg nem működik valami elírás miatt az IPFilter, és kizáratm magam pl. ssh-n, akkor rohanhatok telephelyre ki mint a "mérgezett egér". Persze Linuxon is el lehet konfigolni tűzfalat rendesen.

Egyedül az IPFilter aktiválását nem tartom túl "elegánsnak".

ennek talán az lehet az oka, hogy az IP filtert Darren Reeds csinálta, és nem volt része nagyon sokáig a Solarisnak. Darrent ha jól tudom 1-2 éve alkalmazza csak a Sun, és az ipfilter talán a Solaris 10-ben jelent meg egyáltalán először.
A linux filtere erőteljes kernel támogatással működik, az IP-filter meg nem (a fenti okok miatt).

Valószínűleg igazad van.

Minden esetre megfigyelhető a mostanában egyre divatosabb shell adminisztráció a Sun-nál és az MS-nél is pl. a power shell erőteljes támogatásával. Ma már hozzáértőnek könnyebb pl. powershellben (régi nevén: Monad) Win rendszereket adminisztrálni mint GUI-n.

ezzel csak az a gond hogy akkor is a kérdéses GD package volt rossz. Ha a program függ a rendszerbeli X akármi library-tól, akkor úgy kellett volna linkelni (-L és -R LD_FLAGS). A crle egy jó utility (bár hallottam már akit megszívatott hogy a -l az nem addol hanem utána a teljeset be kell írnod :), de semmi szükség nem lenne rá (az LD_LIBRARY_PATH bohóckodásról nem is beszélve). Mi van például akkor, ha nekem 8 különböző helyen van 8 különféle openssl librarym és különböző programoknak különböző kell? (a példa nem légből kapott)

(bár hallottam már akit megszívatott hogy a -l az nem addol hanem utána a teljeset be kell írnod :),

Valóban ezért néztem először meg a crle kimenetét, és vissza copy-ztam neki az -l paraméter után azzal összes elérési utat. BigAdmin-on amúgy le van írva, én sem a légből kaptam azt hogy az összes libet újra fel kell sorolni neki. Az LD_LIBRARY_PATH nem járható út a 5.10-ben, azt olvastam hogy a ld.so nem használja. Csak a /var/ld/ld.config -ot olvassa fel, ami meg bináris állomány.