2010-07-30 5 views
8

Я пытаюсь запустить PHP-скрипт каждые 30 минут на моем сервере (Win XP SP3, xampp 1.7.3). Для этого я бегу следующий сценарий (Update.cmd) с использованием планировщика задач MSОтсутствует DLL при запуске как сценарий

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

Я использую расширение PHP oci8 на моем веб-сервере, но когда я запускаю этот скрипт дает мне ошибки, php.exe не может найти необходимую dll для расширения oci8. Я получаю следующие ошибки:

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 по-другому? My Windows PATH включает в себя:

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

Проверьте файл php.ini, который использует php, запустив phpinfo() из командной строки и посмотрите, какие расширения включены в этом файле. Для php достаточно настроить для использования другого файла php.ini при запуске из командной строки; и xampp по умолчанию использует другой файл php.ini. Вы также можете сказать, какой файл php.ini использовать с ключом -c

+2

Благодарим за отзыв.На данный момент я не могу даже запустить простой php-файл с «phpinfo.php», потому что я не могу запустить php ... –

0

Я исправлю, что оба C:\instantclient_11_2 и C:\oracle\ora92\bin содержат OCI.DLL? Из-за порядка пути вы можете загрузить неправильную DLL. Когда я читаю Which OCI8 DLL to use in PHP 5.3, вам нужна другая строка в php.ini в зависимости от версии клиента 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_pdo_oci.dll в php.ini

Я также имел проблемы с расширением 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, и он должен запускаться штраф

Ant

Смежные вопросы