PHP Blank Page oci_connect

5 Cevap php

UPDATE (5/21/2010) SUCCESS!

Yani KADAR $ head-> masa () 'ing sonra, ben bunu çözdüm.

Unutmayın çocuklar, sanallaştırma ayarlarına bağlıdır kullandığınız anında istemci sürümü dikkatli olun!

Ben (bizim ESX sunucuları AMD işlemciler, Intel değil oturmak farkında değil) genel Instant Client yükleme olmuştu ve (CentOS yüklemek bizim iç ESXi sunucuları 64-bit olmadığı için 32-bit idi) içten iyi çalıştı. Peki lo-ve-Hani, bir 32-bit bir AMD64 oturuyor sanallaştırılmış bir sunucu üzerinde çalışan yüklemeniz olsa bile, yine de yüklemek ne anında istemci önemli.

Ben kontrol etmek için ama göründüğü gibi, her şey şimdi gayet iyi çalışıyor düşündüm son şeydi.

Bana bu anlamaya her türlü testi ile çalıştırmak yardımcı oldu ama sonunda, sanallaştırması farklılıkları anlayarak değil benim hatam oldu herkese teşekkür etmek istiyorum.


UPDATE (5/21/2010) I thought this bug had escaped me when I installed it on a new VM internally but I have now found a narrowing link.

Ben bu yayınlanmıştır zaman bizim üretim sunucuda bu yüklemeye çalışıyordum. Hiçbir ilerleme ve geri gelişimine almak için ihtiyacı olan bir hafta sonra, ben anlık istemci ve oci8 yepyeni Crap yüklemek ... CentOS ve taze yükler ile iç sunucu üzerinde bir VM donatılmış.

Mükemmel çalıştı.

Ancak biz sadece bizim üretim sunucularına VM bir kopyasını tarih ve sihirli artık çalışır. Her şeyi, hiçbir boşuna yeniden çalıştı.

Yani bunu daraltmak verebilecek tek şey ya da belki bir ESX (bizim üretim sunucuları) sunucu sorunu (127.0.0.1 çalışırken ben aynı sorunu olsun rağmen), dahili sunucuları ESXi çalışan bir güvenlik duvarı konudur.

Herhangi bir düşünce?

UPDATE (3/8/2010) Xdebug yüklü ve benim izleme kodu var. Bu ben alıyorum çıktı:

TRACE START [2010-03-08 17:53:05]
    0.2090     327864   -> {main}() /data/aims3/http/octest.php:0
    0.2091     327988     -> ini_set(string(14), string(1)) /data/aims3/http/octest.php:3
    0.2093     327920     -> error_reporting(long) /data/aims3/http/octest.php:4
    0.2094     328048     -> oci_connect(string(8), string(8), string(25)) /data/aims3/http/octest.php:6

Iz bu noktada durur.

Ben her şeyi bir yerel sunucu üzerinde aynı şekilde yüklü ve gayet iyi çalışıyor. Ben tam bir kayıp am söylemek hafifçe koyarak olacaktır.


* NOTE: Ben testi yapmak koştum ve her test FAIL döndü. Ben aynı hataları bildirir olmadığını görmek benim çalışma makinede bu koştu asla. Testi yapmak Herhangi bir fikir neden FAIL rapor ancak herhangi bir hata bildirmez yapmak istiyorsunuz?

Ben OCI8 PECL paketi ile ve zararına boyunca hiçbir bildirilen hataları ile Oracle Instantclient yükledim. Ben oci_connect ile bir bağlantı açmaya çalıştığınızda zaman, benim tüm PHP script durur.

ÖRNEK:

<?php
ini_set ("display_errors", "1");
error_reporting(E_ALL);
echo "before";
$conn = oci_connect("username", "password", "host");
echo "after";
?>

Tam bir boş sayfa döndürür. Modül yüklendiğinde (phpinfo görülen) ve her şeyi hatasız yüklenir.

Ben tam bir kayıp am.

CentOS: 5.4

Apache: 2.2.3

PHP: 5.3.1

InstantClient: 11.2

oci8: 1.4.1

Herhangi bir düşünce?

NOTES

Apache Hata Günlüğü şey raporları

Attempted Debugging:

1:

<?php
ini_set ("display_errors", "1");
error_reporting(E_ALL);
echo "before";
if(!function_exists('oci_connect')) die('Oracle Not Installed');
echo "after";
?>

İade:

beforeafter

2:

/ / Konak için değişen konak

İade:

Aynı hata

5 Cevap

Bu sabit olmuştur. Ayrıntılar için üst bakın ama burada uçurum notlar: virtualiztion ortamları olsun.

Apache error_log şey var mı? Bu mod_php veya FastCGI veya normal CGI PHP mi? Eğer komut satırı üzerinden komut dosyasını çalıştırın ne olur?

Ayrıca PHP's error log ayar ve oraya bakarak deneyebilirsiniz.


EDIT1: deneyin:

echo "before";
if(!function_exists('oci_connect')) die('Oracle Not Installed');

Ve sonuçlar sonrası ...


EDIT2: Ben gerçekten emin değilim. Benim en iyi bahis bu info the PHP manual:

The most common problem with installing OCI8 is not having the Oracle environment correctly set. This typically appears as a problem using oci_connect() or oci_pconnect(). The error may be a PHP error such as Call to undefined function oci_connect(), an Oracle error such as ORA-12705, or even an Apache crash. Check the Apache log files for startup errors and see the sections above to resolve this problem.

Başkasının Bryan yardım için herhangi bir fikirleri var mı?

Bryan

Ben dürüst olmak için gidiyorum: Ben iki yıl önce bu çalıştı ve sefil başarısız oldu. :) Ben OCI fonksiyonları kendim derleyerek şey için işe alamadım.

Ama bu yapılan almanın ilgi ben bir alternatif çözüm aradık ve Oracle için Zend Core buldum. Ben yaptım tüm yükleyiciyi çalıştırın, indirme, ve o yapıldı. Apache / PHP, MySQL (isteğe bağlı), ve sizin için InstantClient yükler.

Şimdi Zend Server gibi, temelde aynı ürün. Bu sizin için umut çözüm olmayabilir biliyoruz, ama eğer o inşaat ...

Zend Server

uzak ya da yerel db bağlanıyorsunuz? i localhost için "false" ile "ana" yerine gerekir düşünüyorum. Bu size yardımcı olacak, umarım ...

edit:. i. ... benim son öneri bir parametre eksik, düşünüyorum: 1 (varsayılan 1521) bağlantı noktasını ayarlamak gerekir VE / VEYA 2 Sen db adını girmelisiniz VE / VEYA (örnek adını ayarlamanız gerekir ORACLE_SID parametresi)

Sen oci_connect () dönüş değerini kontrol edin veya () oci_error diyoruz ama bir PHP kazasında muzdarip görünüyor çünkü bu sorun ile alakalı görünmüyor hiç. Seni de etkileyebilecek RHEL için açık bir hata var:

http://pecl.php.net/bugs/bug.php?id=16626

Eğer oci8 paketini kendiniz kurmak mı? Bir üçüncü taraf ikili kullanıyor musunuz?