2016-09-23 77 views
1

我已經安裝了Apache 2.4 x64和PHP7 x64和下載PHP OCI 64位的庫,但問題是,每當我從CLI運行PHP腳本,它說PHP OCI8擴展不會與PHP 7個64位

PHP啓動:無法加載動態庫 'E:\ SOFTWARE \服務器\ PHP-7.0.11-Win32的VCl 4-64 \分機\ php_oci8_11g.dll' - %1不是有效的Win32應用程序

而且當我從URL調用Web應用程序時,它說

調用未定義功能oci_pconnect()

OCI擴展我下載的也是64位。這裏是鏈接:

http://windows.php.net/downloads/pecl/releases/oci8/2.1.2/php_oci8-2.1.2-7.0-ts-vc14-x64.zip

可以在這個問題有人指導。

+0

我不使用Oracle,但我運行相同的WAMP版本,所以我測試了v2.1.2,就像你和v2.1.1一樣,兩者都不會加載。看起來像DLL是不好的。 – Eric

+0

php5和php7不兼容,所以請確保您的php_oci.dll是爲php7製作的。注意:你可以先用獨立的PHP(PHP.EXE)開始測試,不用Apache。 –

回答

2

您可能混合了TS(線程安全)和NTS(非線程安全)版本。這些不會一起工作。瞭解更多關於PHP線程安全here的信息。

PHP 7.0.11 NTS x64,OCI8 2.1.2 NTS x64,並且InstantClient 11.2.0.4.0 x64很好地工作在一起(我剛剛下載了這三個文件以及在新鮮Win2K8環境中測試它們)。

請記住安裝最新的VC14運行時(Visual Studio 2015)並修改您的系統環境變量以包含PHP和InstantClient的目錄,例如, C:\php;C:\instantclient_11_2

+0

我使用了線程安全包。發現問題與即時客戶端文件..它通過複製c:\ windows和c:\ windows \ system32目錄中instantclient的所有文件解決。你在環境變量中指定它的路徑的評論更有意義..我會試一試。謝謝 –

+0

我有同樣的問題,但我的問題不是通過只複製c:\ windows和c:\ windows \ system32目錄中的文件來解決。請檢查我的問題https://stackoverflow.com/questions/46640455/php-oci8-ext-not-loading-unable-to-load-dynamic-library?noredirect=1#comment80230275_46640455 –