|
|
|
| Добрый день, меня зовут Света. Я уже не первый год занимаюсь программированием на php, но с данной проблемой столкнулась совсем недавно..
Суть такова:
Имеется 2 компьютера на первом стоит операционка Windows, на втором Linux. Необходимо передать текстовый файл с компьютера (Windows) на компьютер (Linux). Далее, после того как файл окажется на компьютере под управлением Linux, нужно запустить скрипт на php, который обработает этот текстовый файл. Сложность заключается в том, что файлы передаются через указанный промежуток времени (например каждые 60 минут), скрипт же должен этот файл обработать и занести данные в БД, после чего удалить файл. То есть сам скрипт также должен работать через указанный промежуток времени.
Я пробовала написать bat-файл, в котором указала следующее:
"C:\www\usr\php.exe" php "C:\www\localhost\www\parser.php"
Запись в базу не происходит, следовательно скрипт не работает.. Однако при запуске этого же скрипта в браузере все отлично выполняется (то есть ошибки в скрипте нет).
Таким образом существуют следующие проблемы:
1. Как запустить скрипт через командную строку (желательно на Linux, но можно и под Windows), если мы знаем путь к php.exe и к самому скрипту (пути не совпадают).
2. Как это сделать в бесконечном цикле с интервалом выполнения N-минут
3. Существует ли возможность передачи файла с одного компьютера на другой через сокеты.
Пожалуйста, ребята, если кому-то близка эта тема, не оставьте вопрос без внимания, я не знаю как поступить в данной ситуации..
Всем заранее спасибо!!!!!!!!!!! | |
|
|
|
|
|
|
|
для: Svetlanka_87
(19.10.2009 в 21:21)
| | регулярное исполнение заданий решается с помощью планировщика операционной системы
(планировщик windows либо cron [или его альтернативы] в случае linux)
Какие могут встретиться неочевидные моменты.
При выполнении php.exe может быть выбрана совершенно другая исполнительная среда (текущий каталог, файл конфигурации php.ini, пользователь, от имени которого выполняется процесс)
Запуск php.exe (в случае windows) или php (в случае linux) с параметром --help и переназначением потока в файл
php.exe --help >C:\phphelp
| позволит уточнить параметры, которыми можно указать размещение файла конфигурации , да и вообще полезно научиться выполнять php , имея возможность анализировать результирующий поток хотя бы в целях отладки.
При запуске может оказаться, что из-за изменения конфигурации отключились те или иные модули (в частности - модуль связи с mysql) : методика поиска проблемы - как при установке sql-клиента в общем случае.
Текущий каталог будет продиктован bat-файлом, который запускает процесс.
С linux всё примерно то же самое - конфигурация, текущий каталог, права пользователя на доступ к каталогам и файлам, и в частности к файлу самого php | |
|
|
|
|
|
|
|
для: Trianon
(19.10.2009 в 22:09)
| | Большое спасибо!!!
Именно отчет о том что не подключены модули и выдает командная строка после запуска запроса.
Как это можно исправить?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Svetlanka_87
(19.10.2009 в 22:25)
| | http://softtime.ru/forum/read.php?id_forum=3&id_theme=40855 | |
|
|
|
|
|
|
|
для: Trianon
(19.10.2009 в 22:59)
| | Это все замечательно, но у меня стоит Denwer, и все библиотеки подключены автоматически. Более того, при запуске через браузер все работает отлично, следовательно в php.ini исправлять ничего не нужно.
Ошибка об их отсутствии выдается лишь когдя я пытаюсь запустить скрипт через командную строку.
я пишу следующее:
php z:\home\localhost\www\parse.php
и после нажатия на Enter выдается 5 строк ошибок в которйх указано что не найдены библиотеки mysql, и прочие.
Как решить эту проблему? Почему он их не обнаруживает когда они есть?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Svetlanka_87
(19.10.2009 в 23:09)
| | Значит нужно сделать, чтобы php.ini, который применяется в контексте Денвера, использовался бы и при запуске из командного файла (и в дальнейшем - из-под планировщика)
Да... насчет денвера и автоматического подключения...
Это "автоматическое" подключение обеспечено теми же самыми конфигурационными файлами, что и любая ручная настройка. Никаких сверхъестественных приемов в денвере нет. | |
|
|
|
|
|
|
|
для: Trianon
(19.10.2009 в 23:14)
| | Спасибо!!!! Все работает!))
я сменила в php.ini путь к папке с расширениями на относительный и всё!))
Спасибо!!!!! | |
|
|
|
|
|
|
|
для: Svetlanka_87
(19.10.2009 в 21:21)
| | Запускать скрипт через определённый промежуток времени? CRON вам в помощь (существуют версии как для linux так и для windows) | |
|
|
|