2010-07-30 122 views
8

我試圖讓我的服務器上每30分鐘運行一次PHP腳本(Win XP SP3,xampp 1.7.3)。 爲此我使用作爲腳本運行時缺少DLL

SET PATH="C:\xampp\PHP" 
start php.exe \htdocs\update_dashboard.php

我使用我的web服務器的OCI8 PHP擴展的MS任務調度運行以下腳本(update.cmd的),但是當我運行該腳本它給我的錯誤, php.exe找不到oci8擴展所需的dll。我收到以下錯誤:

This application has failed to start because OCI.dll was not found. Re-installing the application may fix this problem.

PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_oci8.dll' - The specified module count not be found.

我知道該文件是存在的,當PHP是通過Apache運行我不明白那些錯誤,我正在運行的php.exe錯誤的副本?任何想法爲什麼不呢?我的PATH必須設置不同嗎?我的Windows路徑包括:

C:\instantclient_11_2;C:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;C:\Program Files\ActiveState Komodo Edit 5\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Altiris\Software Virtualization Agent\

感謝您的幫助。

回答

2

我已經通過改變腳本的方式解決了這個問題。它現在:

C:\xampp\PHP\php.exe -f C:\xampp\htdocs\php_scripts\utils\update_dashboard.php

感謝您的幫助。

1

通過從命令行運行phpinfo()來檢查php正在使用的php.ini文件,並查看該文件中啓用了哪些擴展。從命令行運行時,php設置爲使用不同的php.ini文件相當普遍; xampp默認使用不同的php.ini文件。你也可以告訴它什麼php.ini文件使用-c開關

+2

感謝您的答覆。目前我甚至不能用'phpinfo.php'運行一個簡單的php文件,因爲我無法啓動php ... – 2010-07-30 21:57:55

0

我糾正C:\instantclient_11_2C:\oracle\ora92\bin包含OCI.DLL?由於路徑的順序,您可能會加載錯誤的dll。當我讀取Which OCI8 DLL to use in PHP 5.3時,您需要php.ini中的不同行,具體取決於oracle客戶端的版本。我目前沒有使用oracle的電腦,所以我無法驗證這一點。

1

我運行了php -m命令。原來,我的系統的OCI.dll損壞或丟失。我通過在運行框中運行sfc/scannow恢復了它,重新啓動,系統重新安裝了它,並且它已經啓動並運行,現在我的擴展正在運行。

3

我發現這個問題,當我從PHP 5.3非線程安全的切換到PHP 5.3線程安全的Windows 7,我打勾安裝所有

我註釋掉擴展固定問題= php_oci8.dll,延長= php_oci8_11g.dll,延長=在php.ini php_pdo_oci.dll

我還與Sybase擴展想要一個libcs​​.dll,我解決的問題通過刪除「延長= php_sybase_ct.dll」

; at bottom of php.ini -->> 
[PHP_BZ2] 
extension=php_bz2.dll 
[PHP_CURL] 
extension=php_curl.dll 
[PHP_ENCHANT] 
extension=php_enchant.dll 
[PHP_FILEINFO] 
extension=php_fileinfo.dll 
[PHP_GD2] 
extension=php_gd2.dll 
[PHP_GETTEXT] 
extension=php_gettext.dll 
[PHP_GMP] 
extension=php_gmp.dll 
[PHP_IMAP] 
extension=php_imap.dll 
[PHP_INTL] 
extension=php_intl.dll 
[PHP_LDAP] 
extension=php_ldap.dll 
[PHP_MBSTRING] 
extension=php_mbstring.dll 
[PHP_MYSQL] 
extension=php_mysql.dll 
[PHP_MYSQLI] 
extension=php_mysqli.dll 
;[PHP_OCI8] 
;extension=php_oci8.dll 
;[PHP_OCI8_11G] 
;extension=php_oci8_11g.dll 
[PHP_OPENSSL] 
extension=php_openssl.dll 
[PHP_PDO_MYSQL] 
extension=php_pdo_mysql.dll 
;[PHP_PDO_OCI] 
;extension=php_pdo_oci.dll 
[PHP_PDO_ODBC] 
extension=php_pdo_odbc.dll 
[PHP_PDO_PGSQL] 
extension=php_pdo_pgsql.dll 
[PHP_PDO_SQLITE] 
extension=php_pdo_sqlite.dll 
[PHP_PGSQL] 
extension=php_pgsql.dll 
[PHP_SHMOP] 
extension=php_shmop.dll 
[PHP_SNMP] 
extension=php_snmp.dll 
[PHP_SOAP] 
extension=php_soap.dll 
[PHP_SOCKETS] 
extension=php_sockets.dll 
[PHP_SQLITE] 
extension=php_sqlite.dll 
[PHP_SQLITE3] 
extension=php_sqlite3.dll 
;[PHP_SYBASE_CT] 
;extension=php_sybase_ct.dll 
[PHP_TIDY] 
extension=php_tidy.dll 
[PHP_XMLRPC] 
extension=php_xmlrpc.dll 
[PHP_XSL] 
extension=php_xsl.dll 
[PHP_EXIF] 
extension=php_exif.dll 

猜測您是否需要sybase和oracle數據庫連接,標準客戶端將oci.dll和libcs​​.dll安裝在適當的位置,對於不需要使用這些dbs的其他人只需禁用php擴展,就可以運行罰款:)

螞蟻