Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi php4Delphi benutzen (https://www.delphipraxis.net/77755-php4delphi-benutzen.html)

omata 24. Sep 2006 14:04


php4Delphi benutzen
 
Hallo,

ich habe versucht eigene Extensions mit php4Delphi zu erstellen. Leider klappt das nicht so. Deshalb meine Frage: Hat irgendwer dieses php4Delphi mal zum Laufen gebracht?

Installieren ist ja nicht so das Problem. Aber wenn man es dann mal in Verbindung mit PHP benutzen möchte, dann geht das leider nicht. Wieso, was mach ich falsch? Ich habe auch schon verschiedene PHP Versionen ausprobiert (5.0.1, 5.0.3, 5.1.2, 5.1.6) und die verschiedenen Compilerschalter entsprechend gesetzt.

Beim Starten/Einbinden in PHP bekomme ich dann entweder keine Rückmeldung (dann ist auch nichts eingebunden worden) oder ich bekomme eine AV (dann wird natürlich auch nichts eingebunden).

Also nochmal: was mach ich falsch?

Vielleicht läuft das ja bei irgendwem.

Gruss
Thorsten

mkinzler 24. Sep 2006 14:06

Re: php4Delphi benutzen
 
Was hast du eigentlich vo? Php4Delphi dient doch zum Einbinden von Php in eine Delphi-Programm, oder?

omata 24. Sep 2006 14:07

Re: php4Delphi benutzen
 
Ich möchte eigene Extensions schreiben, die die Funktionalität von PHP erweitern.

Ja, man kann damit PHP in Delphi einbinden, es können aber eben auch Extensions damit erstellt werden.

Gruss
Thorsten

mkinzler 24. Sep 2006 14:16

Re: php4Delphi benutzen
 
Wie sieht die der Eintrag der php.ini aus?

http://www.phpforum.de/forum/phpforu...159103609.html

http://members.chello.be/ws36637/php4delphi.html

omata 24. Sep 2006 14:22

Re: php4Delphi benutzen
 
Hallo mkinzler,

in der php.ini möchte ich nur die Extension laden. Also keine zusätzlichen Parameter einstellen. Deshalb habe ich einfach nur extension=php_mydll.dll dort mit aufgeführt.

Edit: ich kenne die php4Delphi-Seite. Wie gesagt ich kann die Dll auch wunderbar erstellen/compilieren. Nur das Einbinden beim Starten von PHP will einfach nicht klappen. Wenn ich phpinfo(); aufrufe wird mir die neue Extension nicht angezeigt.

Gruss
Thorsten

mkinzler 24. Sep 2006 14:27

Re: php4Delphi benutzen
 
Sagt der errorlog von php etwas dazu? U.U. Loglevel hochsetzen.

Elvis 24. Sep 2006 14:29

Re: php4Delphi benutzen
 
Kannst du die PHP runtime nicht durch den Delphi debugger starten und so schauen, ob der Einsprungspunkt bzw. eine speziell benannte Funktion ausgeführt wird?
Ich habe (glücklicherweise?) keinen Plan von PHP, aber so würde ich es versuchen.

omata 24. Sep 2006 14:36

Re: php4Delphi benutzen
 
Ich weiss nicht wo ich diesen ErrorLog finde. Wenn ich den Apachedienst neustarte, bekomme ich entweder keinen Fehler aber auch keine Extension oder ich bekomme eine AV und der Apacheserver kann nicht gestartet werden (je nachdem wie ich compiliere, siehe unten).

Wenn ich in Delphi als Host-Anwendung die php.exe angebe und dann die Dll aus Delphi herausstarte, bekomme ich in einem Textbildschirm eine Warnung ausgegeben. Und zwar dann, wenn die API- oder der DEBUG-Wert nicht übereinstimmen. Dann bekomme ich auch keine AV und alles läuft (nur eben ohne die Extension) Wenn ich dann die PHP.INC ändere und den DEBUG-Wert in get_module anpasse, bekomme ich anstelle der Warnung eine AV und nichts geht.

Ich scheine also genau dann eine AV zu bekommen, wenn aus Sicht von PHP alles ok ist und die Extension geladen wird.

@Elvis: das war auch mein Gedanke, deshalb der Versuch mit der Host-Anwendung. Allerdings wird bei keinem Breakpoint angehalten.

Gruss
Thorsten

mkinzler 24. Sep 2006 14:45

Re: php4Delphi benutzen
 
Schau mal was in der php-ini im Bereich logging steht:

log_error = on

error_log = /pfad/zur/Logdatei

omata 24. Sep 2006 14:59

Re: php4Delphi benutzen
 
Ok, das stand auf Off.
Habe es jetzt aktiviert. Problem ist nur, dass ohne Extension keine Fehler auftreten und mit Extension PHP scheinbar so hart abstürtzt, dass es keine Fehlerausgabe mehr realisieren kann.

Ich habe mal versucht, den API- bzw. DEBUG-Wert zu verändern, damit PHP nicht abstürtzt aber eben einen Fehler naja, eine Warnung auswirft. Habe auch in der PHP.INI diese Zeile eingebaut error_log = C:/Programme/PHP/error.txt. Allerdings erhalte ich keine Errordatei.

Edit: Sorry, habe die Extension in der PHP.INI nicht wieder aktiviert. So, ich erhalte jetzt folgende Fehlerzeilen in meiner ErrorLog-Datei:
[24-Sep-2006 16:00:25] PHP Warning: PHP Startup: ÜÇ : Unable to initialize module
Module compiled with module API=20050922, debug=18, thread-safety=1
PHP compiled with module API=20050922, debug=0, thread-safety=1
These options need to match
in Unknown on line 0
[24-Sep-2006 16:00:26] PHP Warning: PHP Startup: ÜÇ•: Unable to initialize module
Module compiled with module API=20050922, debug=10, thread-safety=1
PHP compiled with module API=20050922, debug=0, thread-safety=1
These options need to match
in Unknown on line 0

das sind genau die Zeilen, die ich auch in dem Delphi-Textbildschirm erhalte, wenn ich die php.exe als Host-Anwendung angebe.


Gruss
Thorsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz