2010-07-30 16 views
8

Estoy tratando de obtener una secuencia de comandos PHP para ejecutar cada 30 minutos en mi servidor (Win XP SP3, xampp 1.7.3). para hacerlo estoy ejecutando el siguiente script (update.cmd) utilizando el programador de tareas de MSFalta la DLL cuando se ejecuta como secuencia de comandos

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

Estoy utilizando la extensión PHP oci8 en mi servidor web, pero cuando corro ese guión que me da errores que se php.exe no puede encontrar el dll necesario para la extensión oci8. Consigo los siguientes errores:

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.

Sé que el archivo está ahí y no consigo esos errores cuando el php se ejecuta a través de Apache, estoy corriendo la copia equivocada de php.exe? ¿Alguna idea de por qué no? ¿Mi RUTA debe establecerse de manera diferente? Mi PATH de Windows incluye:

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\

Gracias por su ayuda.

Respuesta

2

He resuelto el problema cambiando el script. Es ahora:

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

Gracias por la ayuda.

1

Compruebe el archivo php.ini que está usando php ejecutando un phpinfo() desde la línea de comandos, y mire para ver qué extensiones están habilitadas en ese archivo. Es bastante común que php esté configurado para usar un archivo php.ini diferente cuando se ejecuta desde la línea de comando; y xampp ciertamente usa un archivo php.ini diferente por defecto. También puede indicarle qué archivo php.ini usar con el modificador -c

+2

Gracias por la respuesta.Por el momento ni siquiera puedo ejecutar un archivo php simple con 'phpinfo.php' porque no puedo iniciar PHP ... –

0

¿Estoy correcto que tanto C:\instantclient_11_2 como C:\oracle\ora92\bin contengan un OCI.DLL? Debido al orden de la ruta, puede cargar el dll incorrecto. Cuando leo Which OCI8 DLL to use in PHP 5.3, necesita una línea diferente en php.ini, según la versión del cliente Oracle. Actualmente no tengo acceso a una PC con Oracle, así que no puedo verificar esto.

1

Ejecuté el comando php -m. Resultó que OCI.dll de mi sistema se ha dañado o falta. Lo recuperé ejecutando sfc/scannow en el cuadro de ejecución, reiniciado, el sistema lo reinstaló, y estaba funcionando con mis extensiones funcionando ahora.

3

me encontré con este problema cuando cambio de PHP 5.3 no seguro para subprocesos de PHP 5.3 hilo de seguridad en Windows 7, y yo cumplía instalar todo

He arreglado el tema comentando extensión = php_oci8.dll, extensión = php_oci8_11g.dll, extension = php_pdo_oci.dll en el php.ini

también tuve problemas con la extensión Sybase que desean un libcs.dll, que he resuelto mediante la eliminación de "extension = php_sybase_ct.dll"

por ejemplo

; 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 

Adivinando si necesita conexiones de bases de datos sybase y oracle los clientes estándar instalan oci.dll y libcs.dll en los lugares apropiados, para todos los demás que no necesitan usar estos db solo deshabilitan las extensiones de php, y deberían ejecutarse bien :)

Ant

Cuestiones relacionadas