php.ini

binaer

Well-Known Member
Hallo community

So, mein erster Post hier...

Eine Frage ist aufgetaucht während dem bauen von PHP.
Ich habe bereits die Suchfunktion verwendet und ebenso die anderen Googel-Kollegen gefragt... no chance.

Wie kann ich den php.ini-Pfad setzen? Bzw. wo defniere ich diesen?
Im moment ists wie folgt:
Configuration File (php.ini) Path /usr/lib

Bau-Befehle:
'./configure' '--with-apxs' '--prefix=/usr' '--with-xml' '--enable-bcmath' '--enable-calendar' '--with-curl' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr' '--with-xpm-dir=/usr/X11R6' '--with-gettext' '--with-imap' '--with-imap-ssl' '--with-mcrypt' '--enable-magic-quotes' '--with-mysql=/usr/local' '--enable-discard-path' '--with-pdflib=/root/pdflib/pdflib/bind/c' '--with-pear' '--enable-sockets' '--enable-track-vars' '--with-ttf' '--with-freetype-dir=/usr/local' '--enable-gd-native-ttf' '--enable-versioning' '--with-zip' '--with-zlib'

Könnt Ihr mir helfen?

Grüsse
binaer
 
Hoi pelz

Danke für die rasche Antwort. Ich bin gerade daran, PHP nochmals zu bauen und melde mich, wie das Resultat ist.

Noch ein Wort zum "warum": einerseits ist die php.ini ja eine zentrale Datei welche sicherlich der eine oder andere bereits zum konfigurieren verwendet hat. Ich benötige diese, um PDFLib zum rennen zu bringen... deswegen ist es mir auch wichtig, dass das funktioniert...
 
Danke, hat funktioniert! Jetzt: Configuration File (php.ini) Path /usr/local/lib/php.ini
'./configure' '--with-apxs' '--prefix=/usr' '--with-xml' '--enable-bcmath' '--enable-calendar' '--with-curl' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr' '--with-xpm-dir=/usr/X11R6' '--with-gettext' '--with-imap' '--with-imap-ssl' '--with-mcrypt' '--enable-magic-quotes' '--with-mysql=/usr/local' '--enable-discard-path' '--with-pdflib=/root/pdflib/pdflib/bind/c' '--with-pear' '--enable-sockets' '--enable-track-vars' '--with-ttf' '--with-freetype-dir=/usr/local' '--enable-gd-native-ttf' '--enable-versioning' '--with-zip' '--with-zlib' '--with-config-file-path=/usr/local/lib/php.ini'

Allerdings habe ich noch immer folgendes Problem:
Fatal error: Class 'PDFlib' not found in /usr/local/www/data-dist/pdflib.php on line 4
obwohl "libpdf_pdf.so" in "/usr/local/lib/" liegt.
Die php.ini sagt: ; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/local/lib"

und...
extension=libpdf_php.so

Kennt Ihr allenfalls hier einen Lösungsansatz?
Übrigens: im PHPInfo wird ebenfalls nichts von PDFLib angezeigt... dabei habe ich es ja mit PHP eingebaut UND binde es zusätzlich (zur Sicherheit so quasi) :p noch in der php.ini ein...
Auch wenn ich "extension=libpdf_php.so" aus der php.ini rausnehme, gehts nicht :(

Any help available?

Grüsse
binaer
 
dabei habe ich es ja mit PHP eingebaut UND binde es zusätzlich (zur Sicherheit so quasi) noch in der php.ini ein...
Du kannst nur eines machen:
Entweder du komilierst die PDFLib mit ein, oder du lädst sie als Shared Extension. Allerdings baust du ja auch keine Shared Extensions nach deinem Configure.

'--with-pdflib=/root/pdflib/pdflib/bind/c'
Ich hab keine Ahnung was das für ein Pfad sein soll. Da:
obwohl "libpdf_pdf.so" in "/usr/local/lib/" liegt.
In dem Fall müsste das dieses sein:
Code:
--with-pdflib=/usr/local
Wieso ist das bei dir eine "libpdf_pdf.so"? Bei mir heist die nur "libpdf.so"==>"libpdf.so.5"
 
Guten morgen allerseits

Nun, ich bin nun nochmals daran, PHP zu compilieren.

Betreffend Flex6: PDFLib ist zwar als Port vorhanden und kann auch kompiliert werden:
linux1# cd /usr/ports/print/pdflib
linux1# make; make install
=> PDFlib-Lite-6.0.2.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://pdflib.com/products/pdflib/download/602src/.
Receiving PDFlib-Lite-6.0.2.tar.gz (3682148 bytes): 51%^C
1882112 bytes transferred in 6.2 seconds (297.94 kBps)
aaaber, das ist wie Du siehst die "Lite"-Version welche für den kommerziellen Einsatz nicht verwendet werden darf und ich eben einige Funktionen aus der Vollversion brauche.

@Wiedmann:
Nun habe ich mit '--with-shared-pdflib' kompiliert und warte einmal auf das Ergebnis... warum müsste der Pfad auf "/usr/local" liegen?

In der PDFLib-Anleitung steht zu diesem Problem folgendes:
# configure and build PHP with PDFlib support:
$ ./configure --with-pdflib=<pdflib-source-directory>/bind/c <other-php-options>

Ich melde mich, sobald ich das Ergebnis des letzten Kompilierungslauf habe.
 
das funktioniert auch mit x-verschiedenen Arten für's Kompilieren nicht... werde später nochmals etwas versuchen und zwar einfach per "extension=" einbinden...
 
warum müsste der Pfad auf "/usr/local" liegen?
Als du die PDFLib kompiliert und installiert hattest, wurden die LIBS (so und a) nach "/usr/local/lib" und die Header nach "/usr/local/include" installiert (hast du ja selbst schon bemerkt). Beim Parameter "--with-pdflib" kann man zusätzlich ein (Basis-) Verzeichnis angeben: "--with-pdflib=/usr/local". Ausgehend von diesem Verzeichnis sucht das Configure dann im Unterverzeichnis "lib" und "include" nach den benötigten Dateien. IMHO sollte das bei "/usr/local" aber nicht mal nötig sein (hast du ja bei den anderen Extensions auch so gemacht).

das funktioniert auch mit x-verschiedenen Arten für's Kompilieren nicht
Welches PHP hast du eigentlich? AFAIK ist diese Extension nur bei PHP4 direkt dabei. Bei PHP5 musst du diese von PECL bauen (geht bei PHP4 aber auch):
Code:
pear install pdflib
oder manuell (phpize usw.)
 
Guten morgen Wiedmann

Danke für die Antwort.

Ich bin zur Zeit mit PHP 5.0.5 am testen. Das ganze mit pear install pdflib und so weiter habe ich bereits im Handbuch gesehen und getestet. Aber auch das haut nicht ganz hin... (bzw. gar nicht) da meint er, GDLib sei nicht installiert (was auch stimmt).
Ich installiere das ganze nun und melde mich danach wieder, wie der Erfolg ist...
 
gcc -I. -I/tmp/tmprqyDWz/pdflib-2.0.4 -DPHP_ATOM_INC -I/var/tmp/pear-build-sroot/pdflib-2.0.4/include -I/var/tmp/pear-build-sroot/pdflib-2.0.4/main -I/tmp/tmprqyDWz/pdflib-2.0.4 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/root/pdflib/pdflib/bind/c/include -DHAVE_CONFIG_H -g -O2 -c /tmp/tmprqyDWz/pdflib-2.0.4/pdf.c -fPIC -DPIC -o pdf.lo
/tmp/tmprqyDWz/pdflib-2.0.4/pdf.c:91:28: ext/gd/php_gd.h: No such file or directory
/tmp/tmprqyDWz/pdflib-2.0.4/pdf.c:93:31: ext/gd/libgd/gd.h: No such file or directory
/tmp/tmprqyDWz/pdflib-2.0.4/pdf.c: In function `zif_pdf_open_memory_image':
/tmp/tmprqyDWz/pdflib-2.0.4/pdf.c:7208: syntax error before "im"
/tmp/tmprqyDWz/pdflib-2.0.4/pdf.c:7226: `im' undeclared (first use in this function)
/tmp/tmprqyDWz/pdflib-2.0.4/pdf.c:7226: (Each undeclared identifier is reported only once
/tmp/tmprqyDWz/pdflib-2.0.4/pdf.c:7226: for each function it appears in.)
/tmp/tmprqyDWz/pdflib-2.0.4/pdf.c:7226: `gdImagePtr' undeclared (first use in this function)
/tmp/tmprqyDWz/pdflib-2.0.4/pdf.c:7226: syntax error before "zend_fetch_resource"
*** Error code 1

Stop in /var/tmp/pear-build-sroot/pdflib-2.0.4.
`make' failed

Juhee ;-) ich suche mal noch weiter...
 
Nachtrag:
Du hast ja gar nicht die Lite-Version, sondern wohl das Binärpaket von der PDFlib? Bei diesem hast du recht, da sich dort das "lib" und "include" Verzeichnis in "bind/c" befindet. also bleibt es bei:
Code:
--with-pdflib=/root/pdflib/pdflib/bind/c
Das Verzeichnis stimmt auch so und darin gibt es die Unterverzeinisse "lib" und "include"? Was erzählt eigentlich das "configure.log" beim Test zur PDFLib?
 
Jup, die Verzeichnisse /lib und /include befinden sich unter /root/pdflib/pdflib/bind/c
Ja, ich habe das Binärpaket...

Habe nun dort drin einmal:
linux1# make; make install

Denn ich weiss nicht, was ich tue ;-) ich kompiliere dann PHP nochmals und melde mich wieder... irgendwann muss das ja irgendwie gehen. Übrigens funktionierts mit "extension=libpdf_php.so" auch nicht...
Bis später
 
linux1# cd lib
linux1# ls -l
total 2656
-rw-r--r-- 1 501 501 2691588 Jun 10 10:04 libpdf.a
linux1# cd ../include
linux1# ls -l
total 50
-rw-r--r-- 1 501 501 50064 Jun 10 10:04 pdflib.h
Nirgends 'ne .so. Muss ich diese welche schon vorhanden ist (unter pdflib/php5/php-503) kopieren?
linux1# cd php-503
linux1# ls
libpdf_php.so
Wenn ja, dann muss diese ja in /root/pdflib/pdflib/bind/c/lib, richtig?
 
*argh*
auch weiterhin: no chance...
Habe PHP neu kompiliert:
'./configure' '--with-apxs' '--prefix=/usr' '--with-xml' '--enable-bcmath' '--enable-calendar' '--with-curl' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr' '--with-xpm-dir=/usr/X11R6' '--with-gettext' '--with-imap' '--with-imap-ssl' '--with-mcrypt' '--enable-magic-quotes' '--with-mysql=/usr/local' '--enable-discard-path' '--with-pear' '--enable-sockets' '--enable-track-vars' '--with-ttf' '--with-freetype-dir=/usr/local' '--enable-gd-native-ttf' '--enable-versioning' '--with-zip' '--with-zlib' '--with-pdflib=/root/pdflib/pdflib/bind/c' '--with-config-file-path=/usr/local/lib/php.ini'

folgendes Ergebnis nach dem kompilieren:
Installing PHP SAPI module: apache
[activating module `php5' in /usr/local/etc/apache/httpsd.conf]
cp libs/libphp5.so /usr/local/libexec/apache/libphp5.so
chmod 755 /usr/local/libexec/apache/libphp5.so
cp /usr/local/etc/apache/httpsd.conf.new /usr/local/etc/apache/httpsd.conf
rm /usr/local/etc/apache/httpsd.conf.new
Installing PHP CLI binary: /usr/bin/
Installing PHP CLI man page: /usr/man/man1/
Installing PEAR environment: /usr/lib/php/
[PEAR] Archive_Tar - already installed: 1.1
[PEAR] Console_Getopt - already installed: 1.2
[PEAR] PEAR - already installed: 1.3.6
Wrote PEAR system config file at: /usr/etc/pear.conf
You may want to add: /usr/lib/php to your php.ini include_path
[PEAR] HTML_Template_IT- already installed: 1.1
[PEAR] Net_UserAgent_Detect- already installed: 2.0.1
[PEAR] XML_RPC - already installed: 1.4.0
Installing build environment: /usr/lib/php/build/
Installing header files: /usr/include/php/
Installing helper programs: /usr/bin/
program: phpize
program: php-config
Installing man pages: /usr/man/man1/
page: phpize.1
page: php-config.1

soweit so gut... wenn ich aber die PDFLib-PHP Datei aufrufen möchte:
Fatal error: Class 'PDFlib' not found in /pfad/pdflib.php on line 4

und in der PHP-Info Datei ist auch keine "PDF"-Sektion. Was mache ich falsch? Unfähig? ;-)

Edit: eine "configure.log" gibt's nicht im Kompilierungsverzeichnis... bzw. auf der ganzen HD ist keine solche Datei vorhanden: FreeBSD5.1-Release
 
Kopiere doch mal die "bind/php5/php-503/libpdf_pdf.so" nach "bind/c/lib" ins lib als "libpdf.so" rein. (Die scheint aber nur für PHP5.0.3 zu sein, dem Verzeichnisnamen nach?). Das configure von PHP sucht jedenfalls nach einer libpdf. Bei der Lite zumindest geb ich auch noch die libm an.

/tmp/tmprqyDWz/pdflib-2.0.4/pdf.c:91:28: ext/gd/php_gd.h: No such file or directory
Die GD sollte er doch nur einbinden wenn irgendwo HAVE_LIBGD13 definiert wurde?
 
so, ich habe das ganze jetzt kopiert:
linux1# cp libpdf_php.so /root/pdflib/pdflib/bind/c/lib/libpdf.so
linux1#

Ja, sieht danach aus als ob das für PHP 5.0.3 wäre. Jetzt sehe ich im PHP-Info folgendes (nebst dem bereits geposteten):
PWD /root/pdflib/pdflib/bind/php5/php-503
und
_ENV["PWD"] /root/pdflib/pdflib/bind/php5/php-503

PDFLib selber wird jedoch noch immer nicht ausgeführt.

Betreffend PEAR: ich habe nichts mit "HAVE" oder so angegeben... allenfalls in 'nem Config-File?
 
Betreffend PEAR: ich habe nichts mit "HAVE" oder so angegeben... allenfalls in 'nem Config-File?
Das darf IMHO nur definiert sein, wenn PHP mit der GD1.3 gebaut wurde. Aber wenn GD, dann solltest ja mittlerweile die GD2 haben?

Edit: eine "configure.log" gibt's nicht im Kompilierungsverzeichnis...
Hm. Ich hab die nach dem configure von der PECL-Extension...

Zumindest mit der PDFLIB Lite tut das bei mir ohne Probleme (es hat sich jedenfalls noch keiner beschwert das sein PHP nicht tut *g*). Ich mach es aber auch ohne PEAR:
- runterladen/entpacken der PECL-Extension
- phpize im Extension-src-dir ausführen
- ./configure --parameter && make install
- fertig

Probiers doch mal mit PHP 5.0.3
 
gut, nochmals von vorne...
PDFLib mit C läuft übrigens wunderbar ;-) nur mit PHP klappts noch nicht.

1. wget php-5.0.3 vom mirror
2. tar blub usw.
3. './configure' '--with-apxs' '--prefix=/usr' '--with-xml' '--enable-bcmath' '--enable-calendar' '--with-curl' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr' '--with-xpm-dir=/usr/X11R6' '--with-gettext' '--with-imap' '--with-imap-ssl' '--with-mcrypt' '--enable-magic-quotes' '--with-mysql=/usr/local' '--enable-discard-path' '--with-pear' '--enable-sockets' '--enable-track-vars' '--with-ttf' '--with-freetype-dir=/usr/local' '--enable-gd-native-ttf' '--enable-versioning' '--with-zip' '--with-zlib' '--with-pdflib=/root/pdflib/pdflib/bind/c' '--with-config-file-path=/usr/local/lib/php.ini'
4. make clean; make; make install

das sollte alles sein, richtig? Melde mich, wenn's ichs gemacht habe, ob das dann funzt.
 
das sollte alles sein, richtig?
Fast. Bei PHP5 kannst du dir wie gesagt "--with-pdflib" sparen, da dort die PDF-Extension nicht dabei ist:
- Als erst ganz normal PHP bauen (ohne "--with-pdflib"). Und wenn das installiert ist,
- holst du dir PHP-Extension von PECL und baust/installierst diese als shared extension
- da sollte dann eine "pdf.so" rausfallen und im PHP_EXTENSIONDIR liegen, welche du dann in der "php.ini" lädst.
 
hmm, ich glaub, ich schmeiss die Kiste jetzt dann gleich auf den Müll (aus dem Fenster geht nicht, da diese im Keller ohne Fenster steht)

linux1# pear install pdflib
downloading pdflib-2.0.4.tgz ...
Starting to download pdflib-2.0.4.tgz (36,082 bytes)
..........done: 36,082 bytes
7 source files, building
running: phpize
Configuring for:
PHP Api Version: 20031224
Zend Module Api No: 20041030
Zend Extension Api No: 220040412
aclocal: not found
`phpize' failed
linux1# phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module

1. PHP ohne PDFLib kompiliert
2. pear install pdflib -> fehler siehe oben... *grml*

'./configure' '--with-apxs' '--prefix=/usr' '--with-xml' '--enable-bcmath' '--enable-calendar' '--with-curl' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr' '--with-xpm-dir=/usr/X11R6' '--with-gettext' '--with-imap' '--with-imap-ssl' '--with-mcrypt' '--enable-magic-quotes' '--with-mysql=/usr/local' '--enable-discard-path' '--with-pear' '--enable-sockets' '--enable-track-vars' '--with-ttf' '--with-freetype-dir=/usr/local' '--enable-gd-native-ttf' '--enable-versioning' '--with-zip' '--with-zlib' '--with-config-file-path=/usr/local/lib/php.ini'

Edit: ich installiere autoconf259 neu... melde mich, wenn ich mehr weiss
 
Zuletzt bearbeitet:
verdammt... warum findet er nun aclocal nimma? autoconf ist drauf... mit PHP5.0.5 hat's ja wunderbar funktioniert :(

Übrigens sollte PDFLib 6.0.2 mit PHP5.0.5 funktionieren (laut Support). Das kann also nicht das Problem gewesen sein.

Sonstige Tipps vorhanden? Muss wohl resignieren :(
 
verdammt... warum findet er nun aclocal nimma? autoconf ist drauf... mit PHP5.0.5 hat's ja wunderbar funktionier
Ah stimmt, du hast jetzt ja PHP 5.0.3 genommen. Schau mal in die phpize rein. IMHO sind bei 5.0.3 dort die Pfade noch hardkodiert. Stimmen die mit dem Pfad/Dateinamen bei dir überein?
 
Zurück
Oben