php.de

Zurück   php.de > Webentwicklung > Server, Hosting und Workstations

Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.07.2011, 14:25  
Erfahrener Benutzer
 
Benutzerbild von Sniper_Kotaro
 
Registriert seit: 04.03.2009
Beiträge: 303
PHP-Kenntnisse:
Anfänger
Sniper_Kotaro ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Erledigt] Function "ociplogon"/"oci_pconnect" wird nicht gefunden

Hallo!

Für ein Projekt habe ich meinen PHP-Code 5.3-Konform gemacht.
Da ich selber noch eine 5.2x Version habe, habe ich mir die aktuellste 5.3-Version runtergeladen (5.3.6) und auch meinen Apache aktualisiert. (auch Apache 2.2)

Nachdem ich die php-ini entsprechend angepasst habe, stehe ich nun vor einem Problem.
Ich binde in der php.ini die dll php_oci8.php ein.
Führe ich php über die Kommandozeile aus und gebe
Code:
php.exe -m
ein, so erscheint auch oci8 in der Liste als geladenes Modul.
Führe ich jetzt
PHP-Code:
phpinfo() 
aus, so steht oci8 NICHT als Modul dabei.
Dies hier liefert mir ebenfalls ein entsprechendes:
PHP-Code:
if(!function_exists('OCIPLogon')){
echo 
"OCI8-Extension scheint zu fehlen!";

Genau, das Ergebnis ist "OCI8-Extension scheint zu fehlen!".

Switche ich nun wieder um zu "meiner" PHP- und Apache-Version (PHP 5.2x & Apache 2.0), läuft weiterhin alles ganz normal.

In meiner php.ini habe ich die Extension für oci8 aber eingebunden:
Code:
extension_dir = "ext"
extension=php_oci8.dll
Hat irgendwer eine Idee?
Ich habe meine if-Abfrage auch schon mit anderen oci8-Funktionen benutzt, jedes Mal mit dem gleichen Ergebnis wie bei ociplogon auch.
__________________
Sniper_Kotaro ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.07.2011, 15:14  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

http://de.php.net/manual/de/oci8.requirements.php

Zitat:
On Windows, the php_oci8 DLL needs client libraries from version 10gR2 or greater. In PHP 5.3 up to and including PHP 5.3.5, the php_oci8_11g DLL requires Oracle 11gR1 or greater client libraries. From PHP 5.3.6 the php_oci8_11g DLL requires Oracle 11gR2 or greater client libraries. With some versions of Instant Client you may additionally need mfc71.dll and msvcr71.dll libraries.
Hast du das beachtet? Welche Oracle Version hast du denn installiert?
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 22.07.2011, 15:21  
Erfahrener Benutzer
 
Benutzerbild von Sniper_Kotaro
 
Registriert seit: 04.03.2009
Beiträge: 303
PHP-Kenntnisse:
Anfänger
Sniper_Kotaro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, das habe ich schon gelesen.

Bei mir läuft die Version Oracle Database 10g Release 10.2.0.5.0
Wichtig ist, dass ich NICHT die php_oci8_11g.dll benutze, sondern weiterhin die php_oci8.dll
__________________
Sniper_Kotaro ist offline   Mit Zitat antworten
Alt 22.07.2011, 19:22  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Kurzes Resumee:
Du hast 2 PHP Installationen, 5.2.x (A) und 5.3.6 (B), beide unter Apache (dem gleichen oder eine anderen?). Grundsätzlich laufen beide PHP Installationen.

Unter A hast du Oracle Zugang.. "alles läuft wunderbar" sozusagen
Unter B kein Oracle Zugang. Die Extension wird nicht geladen laut phpinfo()

Soweit korrekt?

Ok, da sich beides auf dem gleichen Rechner befindet, müssten die Oracle Client Tools 10g R2 auch auf dem Rechner installiert sein, die werden ja in jedem Fall benötigt. Umgebung A hat ja anscheinend auch Zugriff darauf.

Ich würde jetzt vermuten, Umgebung B lädt die Extension nicht, weil dort Abhängigkeiten nicht aufgelöst sind. Wenn du die php_oci8.dll aktivierst und den Webserver startest, bekommst du dann eine Fehlermeldung? Falls nicht direkt sichtbar, eventuell über Logs oder auch in der Ereignisanzeige von Windows. Vergleich mal die Versionen der Client-Libs von PHP, eventuell installier nochmal die Oracle Client Tools. 32/64 Bitsystem oder Mixup?
Falsch machen kann man viel, du müsstest erstmal herausfinden, was überhaupt der Grund ist, weswegen die Extension nicht geladen wird...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 25.07.2011, 09:17  
Erfahrener Benutzer
 
Benutzerbild von Sniper_Kotaro
 
Registriert seit: 04.03.2009
Beiträge: 303
PHP-Kenntnisse:
Anfänger
Sniper_Kotaro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Richtig, ich habe 2 PHP Installationen, allerdings auch 2 Apache-Installationen.
Keine Sorge, ich habe sichergestellt, dass die "alte" Apache-Version (2.0) nur läuft, wenn auch das "alte" PHP (5.1.6, habe mich vertan, ist nichtmal 5.2.x) läuft.
Momentan läuft also bei mir Apache 2.2 und PHP 5.3.6 und das ist das, was bei mir momentan nicht läuft.
Also dein Resumee ist soweit korrekt.

Richtig, Umgebung A (die "alte") hat Zugriff auf den Oracle Client, da gibt es keinerlei Fehler oder Fehlermeldungen, auch die Oberfläche meiner Webapplikation ist sichtbar, so wie es eben sein sollte.
Genau das ist in Umgebung B nicht der Fall.
Dort existiert die if-Abfrage, die ich weiter oben schon gepostet habe.
Und genau dort steigt er aus.
Leider bekomme ich sonst keine weiteren Fehlermeldungen oder Log-Einträge, die weiterhelfen könnten.
Weder im PHP-Ordner, noch im Apache 2.2-Ordner, noch in der Ereignisanzeige.
Ich habe auch schon nachgeschaut, ob die Funktion, die ich in der if-Abfrage abfrage ebenfalls deprecated ist, ist sie aber nicht.
Leider habe ich halt Probleme rauszufinden WARUM die Extension scheinbar nicht geladen wird.
Oder nicht nur "scheinbar", sondern sie WIRD nicht geladen, da sie ja sonst in der phpinfo() auftauchen sollte.
__________________

Geändert von Sniper_Kotaro (25.07.2011 um 09:46 Uhr).
Sniper_Kotaro ist offline   Mit Zitat antworten
Alt 25.07.2011, 11:21  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Richtige php.ini bearbeitet ...?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 25.07.2011, 11:24  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Ich würde zunächst versuchen, die Oracle-Client Libs der Versionen zu vergleichen. Möglicherweise tauschst du auch mal ein paar Dateien untereinander aus (Backup nicht vergessen!), um zumindest eine Reaktion zu provozieren. Internetrecherche ist ebenfalls angesagt. Laut Handbuch sollte die 5.3.6 auch mit 10g funktionieren.

Ohne Fehlermeldung oder ähnliches wird es aber sehr schwierig.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 25.07.2011, 11:35  
Erfahrener Benutzer
 
Benutzerbild von Sniper_Kotaro
 
Registriert seit: 04.03.2009
Beiträge: 303
PHP-Kenntnisse:
Anfänger
Sniper_Kotaro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe sichergestellt, dass die richtige ini-Datei geladen wird.
Habe über die Kommandozeile
Code:
php --ini
eingegeben und der Pfad dort stimmt.
Jetzt ist mir diesbezüglich noch eine Merkwürdigkeit aufgefallen...
Gebe ich
Code:
php --re oci8
ein, so bekomme ich eine Liste aller Klassen und Funktionen von oci8...
Die dürfte er doch eigentlich garnicht anzeigen, wenn er die Extension nicht reinladen konnte?!

Dateien habe ich auch schon ausgetauscht.
Ich habe mal die "neue" (5.3.6) ini mit der "alten" (5.1.6) getauscht, ebenso die dlls...
Noch immer keine Besserung in Sicht!

Aber wie gesagt, wirklich stutzig macht mich, dass er auf Kommandoebene die OCI8-Funktionen findet, auf Oberflächenebene aber scheinbar nicht.
__________________
Sniper_Kotaro ist offline   Mit Zitat antworten
Alt 25.07.2011, 11:45  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Aber wie gesagt, wirklich stutzig macht mich, dass er auf Kommandoebene die OCI8-Funktionen findet, auf Oberflächenebene aber scheinbar nicht.
Webserver und direkter EXE Aufruf laden u.U. unterschiedliche ini-Dateien! Der Pfad zur php-ini lässt sich im Webserver konfigurieren, wovon das Kommandozeilentools aber nicht betroffen ist.

Check das bitte mal, langsam glaub ich nämlich auch, das bei dir unterschiedliche inis geladen werden.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 25.07.2011, 11:59  
Erfahrener Benutzer
 
Benutzerbild von Sniper_Kotaro
 
Registriert seit: 04.03.2009
Beiträge: 303
PHP-Kenntnisse:
Anfänger
Sniper_Kotaro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Der Pfad zur ini kommt dann also aus der httpd.conf, richtig?
Ich habe nicht gewusst, dass es unterschiedliche Einstellungen gibt, also dass die im Webserver ausschlaggebend ist.
Den dortigen Pfad habe ich untersucht.
Er war tatsächlich falsch, ABER ich habe den Pfad geändert und es gibt, natürlich nach neustarten des Apaches, leider noch immer keine Veränderung
Muss sonst noch irgendwo der Pfad konfiguriert werden?
__________________
Sniper_Kotaro ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
DI-Container xm22 Software-Design 44 07.08.2011 18:03
[Erledigt] Zend_Acl etwas spezieller Enigma228 PHP-Fortgeschrittene 0 22.05.2011 11:16
[Erledigt] Observer-Pattern Kardey Software-Design 20 15.03.2010 17:16
[Erledigt] Werte aus private function werden in public function nciht übernommen litterauspirna PHP Tipps 2010 3 03.02.2010 11:31
JS-Kalender funktioniert nicht im IE8 ToxicToast JavaScript, Ajax und mehr 4 18.11.2009 16:26
variable mit onclick an php drombusch PHP Tipps 2009 8 30.08.2009 14:45
Decorator-Pattern grizu PHP Tipps 2009 15 12.08.2009 14:41
Fehler beim kompilieren von php 5.2.9 malio Server, Hosting und Workstations 11 05.06.2009 18:40
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
[Erledigt] Verliere Zuordung in einer JS Klasse tomtaz JavaScript, Ajax und mehr 2 08.12.2008 21:55
[Erledigt] Vererbung - Zugriff auf Elternmethoden nicht möglich unimow PHP Tipps 2008 5 03.11.2008 18:53
Fehlermeldung : Call to a member function foo() on a non-object Mark Taylor PHP Tipps 2008 4 14.09.2008 20:38
GD-Spezialisten gesucht....wer kann helfen? rezix PHP Tipps 2008 12 26.02.2008 17:55
Call to a member function on a non-object Riks PHP Tipps 2007 20 10.02.2007 22:59
function in einer function - help! PHP Tipps 2005-2 4 25.10.2005 00:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
oci8 benötigt msvcr71.dll, php 5.3 oci8.dll wird nicht geladen, @ociplogon error code, php 5.3.6 oracle datenbank zugriff, php oci nicht gefunden

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum