2016-08-01 3 views
1

Ce sujet a été demandé plusieurs fois, mais chaque solution ne fonctionne pas dans ma machine.php_oci8_11g.dll n'est pas une application Win32 valide

J'essaie de connecter Windows 7 avec un 10ab oracle dabatase, mais l'extension oci n'est pas chargée. Voici quelques faits:

C:\php>php -m

PHP Warning: PHP Startup: Impossible de charger 'C: \ php \ ext \ php_oci8_11g.dll' bibliothèque dynamique -% 1 n'est pas une application Win32 valide.

C:\php>php -v

PHP 5.6.19 (cli) (built: Mar 2 2016 20:09:42) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies 
  • 64x Architecture
  • TS VC11

C:\>tnsping localdb

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 02-AUG-2 
016 22:37:50 

Dépannage

  • J'utilise oci8 2.0.11. Les a déposés dans ext/ plié. Le reste des extesions sont chargés plutôt bien.
  • variable PATH contient le ORACLE_HOME et le chemin php
  • a juste regardé pour les fichiers dll oracle requis et ils sont là:

    C:\>where oci*

    C:\oracle\product\10.2.0\db_2\BIN\oci.dll 
    C:\oracle\product\10.2.0\db_2\BIN\ocijdbc10.dll 
    C:\oracle\product\10.2.0\db_2\BIN\ociw32.dll 
    
  • Oracle Client n'est pas nécessaire dans mon côté parce que la base de données est installée dans la même machine, et il installe toutes les bibliothèques requises

Quelle autre chose suis-je disparu? Merci d'avance

+0

Vous dites que PHP est x64, mais quelle est votre installation Oracle? Le «bitness» doit correspondre. – timclutton

Répondre

3

Après des mois, j'ai trouvé la solution. Tenez compte des infrastructures suivantes:

  • Windows Server 2012 R2 Standard Edition x64
  • Apache/2.4.18 (Win64) VC11
  • PHP 5.6.19 x86 VC11 TS

Prenez attention quand télécharger Oracle Instant Client:

  • Peu importe si votre serveur est une architecture x64 ou x86, vous devez le télécharger pour 32 bits
  • Comme vous le notez, PHP est compilé dans VC11, donc vous devez télécharger OIC avec des sources VC11, cela peut être confirmé en décompressant le fichier téléchargé et vérifier si un dossier vc11 est là.

Les deux détails sont très importants.Une fois que je réponds aux deux exigences l'erreur est partie Je peux maintenant me connecter à Oracle via PHP avec succès

+0

Vous avez un problème similaire, mais même après avoir suivi votre solution, vous avez toujours le même message d'erreur. Je suis sur Windows 10, cependant. – cytsunny