DotNet in PHP

Ne daran lag es leider nicht. Hatte nämlich zuvor PHP 5.3.2 VC6 unter Apache und da hatte es mit der Instanziierung der DotNet Klasse die gleichen Probleme. Ich habe PHP nur auf 5.3.3 VC9 upgegradet, weil ich für andere Zwecke den php sql anywhere Treiber benötigte und dieser nun mal mit VC9 kompiliert wurde. Das ist halt einfach ein BUG von PHP, den sie bis jetzt (PHP 5.3.3) anscheinend immer noch nicht behoben haben. Der einzige Workaround um das Problem zu umgehen ist, den Apache Modul zu deaktivieren (siehe oben) und auf Fast CGI umzuschalten.
 
Zuletzt bearbeitet:
Hast du irgendwas an der php.ini ändern müssen (hinzufügen oder so)?

Kann aber eigentlich auch nicht sein. Ich habe mir den Source-Code des Moduls angesehen. Da ist eine Pre-Compiler-Definition (#ifdef) drin. Die schaltet .Net komplett ab. Siehe

http://www.koders.com/c/fid1A7EE386458A41A057FC77C8E996259B27336674.aspx?s=SEARCH_STRING#L220
und
http://www.koders.com/c/fid1A7EE386458A41A057FC77C8E996259B27336674.aspx?s=SEARCH_STRING#L346

Im aktuellen SVN findet man die Direktiven immer noch nur an anderen Zeilen:

http://svn.php.net/viewvc/php/php-src/trunk/ext/com_dotnet/com_extension.c?view=markup

Zeile 375 und 501


Möglicherweiße hängt es aber auch daran, das ich kein VS.NET installiert habe. Was davon hast du genau installiert?
 
Nein ich habe nichts an der php.ini verändert. Ich denke auch das es daran liegt, weil du keine .Net Runtime installiert hast.

Note: You need to install the .Net runtime on your web server to take advantage of this feature.

Das steht zumindest hier bei der DOTNET Klassenreferenz.
 
Ich habe Windows 7, da geht gar nicht ohne .Net-Framework ;-)

Kannst du mal bitte deine php.ini anhängen? Ich würde gern mal vergleichen.

Ein Abzug der phpinfo(); wäre auch gut.
 
Ok, dann kann es eigentlich nur an deiner Konfiguration in der php.ini oder an der httpd.conf von apache oder der httpd-xampp.conf liegen.
Achso bzgl. DCOM support, das habe ich doch deaktiviert.
Im Anhang befinden sich die Dateien php.ini, httpd.conf und httpd-xampp.conf. Die Pfade musst du dann noch anpassen.
 

Anhänge

Habe jetzt IIS 7 als Webserver genommen und hatte da genau dasselbe Problem wie zu Anfangs beim Apache Webserver. Beim instanziieren der PHP DotNet Klasse kam es bei jeder zweiten Instanziierung zu einem Absturz des PHP-CGI Prozesses. Nach längerem rumprobieren habe ich endlich die Lösung des Problems gefunden:

Die DotNet Klasse von PHP hat wahrscheinlich ein Problem mit dem FastCGI Modul. Daher habe ich im IIS unter Handlerzuordnungen das FastCGI Modul für PHP auf CGI Modul umgestellt. Danach konnte ich jedesmal die DotNet Klasse erfolgreich instanziieren und verwenden. Diese Vorgehensweise funktionierte bei mir auf einem 32-Bit System mit PHP 5.3.3 oder PHP 5.2.14. Bei anderen PHP Versionen sollte dieser Workaround jedoch auch funktionieren.
 
Zuletzt bearbeitet:
Zurück