oci_connect () funktioniert nur über die Befehlszeile
OK, also ich habe dieses schreckliche Problem mit Oci, Apache, PHP und Suse. Zunächst Versionen:
PHP 5.3.15 (cli)
Apache/2.2.22 (Linux/SUSE)
OCI8 1.4.9
SUSE 12.2 32 bit
Oracle client 10.2.0.4
ProblemIch habe wirklich einfache PHP-Datei:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
oci_connect('user', 'passwd', 'host/sid');
?>
Wenn ich es von der Kommandozeile aus starte, wird es gut ausgeführt:
machine:~ # php oci.php
machine:~ #
Aber wenn ich es im Browser laufen lasse, gibt es mir:
Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and LD_LIBRARY_PATH are set and point to the right directories
Apache-KonfigurationIch habe seit einiger Zeit mit diesem Problem zu kämpfen und bin mir ziemlich sicher, dass meine Apache-Konfiguration korrekt ist.
Ich exportiere alle benötigten VariablenVor Jeder Apache-Prozess wird gestartet - ich fügte hinzu
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/oracle/home/lib; export LD_LIBRARY_PATH
ORACLE_HOME=/path/to/oracle/home; export ORACLE_HOME
TNS_ADMIN=/path/to/oracle/home/network/admin; export TNS_ADMIN
NLS_LANG=POLISH_POLAND.EE8MSWIN1250; export NLS_LANG
am Anfang von/etc/init.d/apache2
Skript (Ich starte Apache durch/etc/init.d/apache2 start
).
Apache läuft abwwwrun
Benutzer, der in istoinstall
unddba
Gruppen:
machine:~ # cat /etc/apache2/uid.conf
User wwwrun
Group www
machine:~ # id wwwrun
uid=30(wwwrun) gid=8(www) groups=8(www),113(oinstall),114(dba)
machine:~ # l $ORACLE_HOME
total 216
drwxr-xr-x 48 oracle oinstall 4096 Jan 25 17:07 ./
drwxrwxr-x 3 oracle oinstall 4096 Jan 25 17:01 ../
...
machine:~ #
Mögliches ProblemIch habe keine Umgebungsvariablen inEnvironment
Abschnitt inphpinfo();
Ausgabe - könnte dies das Problem sein? Wenn ja, wie kann ich das beheben? Handelt es sich um eine Art Sicherheitsproblem? Ich habe über solche Probleme mit aktiviertem SELinux gelesen, aber ich habe es nicht, meine Firewall ist ausgeschaltet.
Jede Hilfe wäre sehr dankbar!