Эта тема на forum.dklab.ru


Kolka: командная строка
Использую Денвер сборки: Base_2005-01-05_a1.3.31_p4.3.9_m3.23.53_pma2.6.0.exe
Есть необходимость запуска скрипта в коммандной строке. Но при запуске вылетают ошибки подключения *.dll
Скажите пожалуйста, как правильно писать в коммандной строке, чтобы небыло ошибок и те расширения которые подключаются при нормальном старте(Run.exe) тоже подключалиcь. Спасибо.
Maus:
Kolka
Ничего не ясно. Изложите подробнее
расширения которые подключаются при нормальном старте(Run.exe)
а что, есть еще и ненормальный?
Kolka:
Например в адресной строке пишу E:\Web\usr\local\php\php -q E:\Web\home\localhost\www\1.php
На экране выскакивает то что изображено ниже. И так появляются окна для всех подключаемыех *.dll. Подскажите, как правильно набрать адресную строку чтоб *.dll работали и небыло ошибок.
СПАСИБО.
Евгений Галашин:
PHP надо пускать с виртуального диска (Z:\usr\local\php\php.exe).
Kolka:
A может лучше создать копию файла php.ini в котором явно указать пути к библиотекам, и подключать его при запуске php.exe из командной строки?
Дмитрий Котеров:
Не используйте Z:\usr\local\php\php.exe (для PHP4) - он не предназначен для запуска из других директорий (в PHP5 - это поправили).
Используйте Z:\usr\bin\php.exe - это специальный враппер, чтобы запускать скрипты из командной строки.
Дмитрий Котеров:
Перенесено из форума: Форум для начинающих :: Денвер.
Перенесено в форум: Полезные советы :: Денвер.
Константин Жинько [tIT]:
Используйте Z:\usr\bin\php.exe
и пропишите путь к нему в переменную %PATH%
Anonymous:
"]Используйте Z:\usr\bin\php.exe
и пропишите путь к нему в переменную %PATH%
Где ее прописать?
У меня щас таже ошибка, вожу в консоли z:\usr\bin\php5.exe Z:\home\testsite\www\check_cron_all.php и валятся ошибки что не загружены dll. Через броузер все нормально работает.
Константин Жинько [tIT]:
Где ее прописать?
Читать умеете?
Maus:
Гость
с пятым php, кажется, wrapper использовать не следует (во всяком случае php как CGI через него работает некорректно)
Испытатель:
Что нибудь продвинулось в этом направлении? Имею в виду в запуске php5 из командной строки?
Испытатель:
Что нибудь продвинулось в этом направлении? Имею в виду в запуске php5 из командной строки?
Заработало! Php запускается из консоли
Написал следующий батник:

set PHPINI_PATH=z:\usr\bin\
set PHP_COMMAND=z:\usr\bin\php5.exe
%PHP_COMMAND% -d html_errors=off -c PHPINI_PATH %1 %2 %3 %4 %5 %6 %7 %8 %9

Предварительно скопировал php.ini в z:\usr\bin\ и написал там абсолютный такой путь к расширениям:
extension_dir = "z:\usr\local\php5\ext"

Теперь работает без ошибок.
Anonymous:
подскажите пожалуйста!

у меня при таких настройках скрипт не хочет исполняться, если в нём есть работа с БАЗОЙ ДАННЫХ, при этом никаких сообщений об ошибках не выводится вообще!

может нужно ещё какую строку добавить в php.ini ????
Maus:
Гость
http://phpfaq.ru/debug
Anonymous:
Fatal error: Call to undefined function mysql_connect() in W:\home\non-existent-
host\test\!connect_database.php on line 10

попытался изменить путь на основной рнр.ini файл и внести изменения в него - результат тот же
всё-таки какой ещё путь в %PATH% дописать надо ????
Maus:
Call to undefined function mysql_connect()
переведите на русский, загляните в мануал и всё должно встать на свои места
Anonymous:
английский я хоть и плохо, но технический знаю
нечего здесь прикалываться
если нет вызова на _стандартную_ функцию - длл-ка не подключилась.
и длл-ка, и батник, и ини-конфигурация настроены нормально, если нет - лучше бы сказали как проверить подключение всех длл-ок к екзешнику, а не постили тупые нравоучения
Maus:
Гость
а никто и не прикалывается.
В PHP5 расширение mysql убрали из состава встроенных модулей (заменив на mysqli).
Вы можете сколько угодно считать, что Всё настроено нормально - но с машиной не поспоришь. Рекомендую свериться по phpinfo, что же на самом деле подключено.

P.S. а еще бывает такая глупая ошибка, как "c" в русской раскладке. Впрочем, нормальные редакторы подсвечивают это как ошибку.
Anonymous:
расскажите, пожалуйста, подробно - что делают директивы в строке
%PHP_COMMAND% -d html_errors=off -c PHPINI_PATH %1 %2 %3 %4 %5 %6 %7 %8 %9

я изменил файл на

set PHPINI_PATH=C:/Webservers/usr/bin/
set PHP_COMMAND=C:/Webservers/usr/bin/php5.exe
%PHP_COMMAND% -d html_errors=off -c %PHPINI_PATH% %1 %2 %3 %4 %5 %6 %7 %8 %9


при этом сам php работает с выгруженным апачем и с диска С, но НЕ РАБОТАЕТ связь с базой данных
при запуске выскакивают ошибки

C:\>php_.bat C:\Webservers\home\non-existent-host\!connect_database.php

C:\>set PHPINI_PATH=C:/Webservers/usr/bin/

C:\>set PHP_COMMAND=C:/Webservers/usr/bin/php5.exe

C:\>C:/Webservers/usr/bin/php5.exe -d html_errors=off -c C:/Webservers/usr/bin/
C:\Webservers\home\non-existent-host\!connect_database.php
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/Webserves/usr/loca
l/php5/ext/php_gd2.dll' - ═х эрщфхэ єърчрээ√щ ьюфєы№.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/Webserves/usr/loca
l/php5/ext/libmysql.dll' - ═х эрщфхэ єърчрээ√щ ьюфєы№.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/Webserves/usr/loca
l/php5/ext/php_mysql.dll' - ═х эрщфхэ єърчрээ√щ ьюфєы№.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/Webserves/usr/loca
l/php5/ext/php_xsl.dll' - ═х эрщфхэ єърчрээ√щ ьюфєы№.
in Unknown on line 0
X-Powered-By: PHP/5.1.6
Content-type: text/html


Fatal error: Call to undefined function mysql_connect() in C:\Webservers\home\no
n-existent-host\!connect_database.php on line 10

Anonymous:
Не используйте Z:\usr\local\php\php.exe (для PHP4) - он не предназначен для запуска из других директорий (в PHP5 - это поправили).
Используйте Z:\usr\bin\php.exe - это специальный враппер, чтобы запускать скрипты из командной строки.

файла \usr\bin\php.exe не существует. если у меня поблема в этом, пожалуйста - выложите для скачивания!
Anonymous:
всё получилось )))
если разрешите, я подведу общий итог своим изыскам, просто потому что мне пришлось перелопачивать тему и искать ошибки и неточности в чужих постах, работать методом "научного тыка" довольно большой отрезок времени, в то время как очень хотел найти простой и чёткий мануал по подобной установке

1. необходимо создать батник для запуска РНР

set PHPINI_PATH=C:/Webservers/usr/bin/
set PHP_COMMAND=C:/Webservers/usr/bin/php5.exe
%PHP_COMMAND% -d html_errors=off -c %PHPINI_PATH% %1 %2 %3 %4 %5 %6 %7 %8 %9


2. в директорию C:\WebServers\usr\bin скопировать файл php.ini в который строку
extension_dir = "/usr/local/php5/ext"
заменить на
;extension_dir = "/usr/local/php5/ext"
и добавить возле неё
extension_dir = "C:/Webservers/usr/local/php5/ext/"

всё! теперь можно запускать рнр файлы командами
C:\>php_.bat C:\Webservers\home\non-existent-host\!connect_database.php

при этом запускать апач не обязательно (не забывайте, что база MySQL запускается вместе с АПАЧЕМ!)
з.ы. и если вы измените конфигурацию апача, чтобы он запускался без MySQL, а MySQL будете запускать отдельно, то это никак не повлияет на скрипты, запущенные из командной строки - они могут работать с базами данных - при запуске файл mysql.pl не анализируется
Jitsu:
Возникла проблема по сабжу.
Z:\usr\bin>php z:\home\ji\utils\create_news.php
File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
Character set '#51' is not a compiled character set and is not specified in the
'c:\mysql\share\charsets\Index' file
X-Powered-By: PHP/4.4.4
Content-type: text/html

Выдает вот такую штуку. Прямое указание на php.ini ни к чему ни приводит.
Попытка скопировать mysql в папку, которую он просит, ни к чему не привела.
Апач запущен, так все работает. Надо запустить скрипт из командной строки. в скрипте есть работа с mysql-базой.
Ну и естественно сам mysql лежит на Z:, как и определено денвером по стандарту. Настройки денвера не менялись.
Использую Base_2006-10-04_a1.3.33_p4.4.3_m4.1.16_pma2.6.1
Заранее спасибо за помощь.
С.Смертин:
итак... как я сделал... может и мой способ не такой наворочен, как у всех, но...
1) я перепрошил РНР до версии 5.2.5 (и регулярно обновляю...)... и доставил дебаггер...
2) в php.ini я сделал следуйщие настройки:


include_path=".;e:\webserver-x2\usr\local\php5\pear;e:\webserver-x2\usr\local\php5\;/usr/local/php5/PEAR"
doc_root =
user_dir =
extension_dir = "e:/webserver-x2/usr/local/php5/ext"
upload_tmp_dir = "e:/webserver-x2/tmp/!uploads"

...

extension=php_gd2.dll
extension=php_mysql.dll

...

session.save_handler = files
session.save_path = "e:/webserver-x2/tmp/!sessions/"


тобто, php работает при виключеном денвере... когда нужна работа из MySQL (ето в моем случае работа из консолью CakePHP и ей подобной...) - я запускаю денвер и все работаєт... PHP я прописал в переменной среди PATH...

есть еще какиє-нибуть вопроси?
Maus:
php5\;
имхо, лишний слеш
С.Смертин:
php5\;
имхо, лишний слеш
хз... у меня работает отлично. все-равно при сливании директорий Денвера (скорее всего перееду потом на 3-тий) из Линуксом, о каком я писал здесь http://forum.dklab.ru/viewtopic.php?p=146810#146810 - все будет зачищатса... потому что XAMP ставить как-то не хочетса... неудобно...
stretyak:
1. Добавил путь к php.exe в переменную окружения PATH

echo %PATH%

set =%PATH%;X:\usr\bin

2. Поменял значение в php.ini

было:

extension_dir = "/usr/local/php5/ext"

стало:

extension_dir = "X:\usr\local\php5\ext"

И все работает как с командной строки так и через www. Сам файл php.ini никуда не копировал. Он у меня лежит здесь: X:\usr\local\php5\php.ini
Alex111:
Ну так кто-нибудь скажет, в каком файле прописывать переменную PATH.
Anonymous:
Подскажите пожалуйста, как передать аргументы?? Я делаю так

set PHP_COMMAND=F:\FLASH\Delphi_PHP\PHP\php.exe
%PHP_COMMAND% -d html_errors=off "scripts\index.php" --arg1 --arg2

как правильно, ниге де могу найти толковое описалово.
Maus:
Гость
с SET не пробовал. Якобы необязательные ключи лучше указывать, вот проверенный пример:
php -d html_errors=off -f test.php a=b boo vzz
Evgen_11: запуск из командной строки
Здравствуйте.
После обновления Денвера до версии 3 (PHP 5.3.1, MySQL 5.1) перестал работать запуск скрипта из командной строки.
Запускаю так:
php5.exe –f C:\WebServers\home\mysite.ru\www\admin\skript.php

PATH содержит путь Z:\usr\bin

Выдает:
Status: 404 Not Found
X-Powered-By: PHP/5.3.1
Content-Type: text/html

No input file specified.


Возможно, это баг 5-ой версии PHP, который обсуждается здесь: http://www.phpclub.ru/talk/showthread.php?postid=902141

Как быть?
Minstel:
Смог справиться ценой меньших усилий... Проблема с неспособностью найти библиотеки возникает из-за того, что не подхватывается новый созданный виртуальный диск (например, Z). Поэтому единственное, что нужно сделать для обхода этой проблемы - в файле Z:\usr\local\php5\php.ini исправить строку
extension_dir = "/usr/local/php5/ext"
на
extension_dir = "C:/Webservers/usr/local/php5/ext/"
и все.
Нет никакой необходимости копировать php.ini в каталог Z:\usr\bin, там его исправлять и оттуда же запускать php.
Теперь из командной строки скрипты можно запускать следующим образом:
C:/Webservers/usr/local/php5 C:\WebServers\home\localhost\www\my_site\my_script.php

Либо, чтобы строка запуска скрипта выглядела более удобочитаемо, можно в переменную path сначала прописать путь к каталогу с php.exe. Тогда все это выглядит так:
При запуске консоли добавляем к текущему значению переменной path наш каталог с php.exe:
path C:/Webservers/usr/local/php5;%path%
И теперь в текущем сеансе работы с консолью можно все скрипты запускать вот так:
php C:\WebServers\home\localhost\www\my_site\my_script.php
Maus:
Minstel
Работая не через виртуальный диск, Вы обретаете массу проблем, т.к. все конфиги в Денвере рассчитаны именно на работу с виртуального диска. Т.е. extension_dir полностью дело не ограничится. Но если кому-то надо - то пожалуйста.
pavshinAN:
Подскажите, как правильно набрать адресную строку чтоб *.dll работали и небыло ошибок.
bæv:
Подскажите, как правильно набрать адресную строку чтоб *.dll работали и небыло ошибок.
— «адресная строка» — в браузере. При чём тут «запуск из командной строки»?


http://forum.dklab.ru/about/todo/PravilaEtogoForuma-ProchitayteObyazatelno.html — особенно про то, как правильно задавать вопросы: «чтоб *.dll работали и небыло ошибок» — это не описание проблемы.
Patel12:
A может лучше создать копию файла php.ini в котором явно указать пути к библиотекам, и подключать его при запуске php.exe из командной строки...??




_______________
Our excellent online spanishprograms - learn spanish training programs lead you to success in the We also offer latest and E-spanyol with 100% success Internet polyglot

Эта тема на forum.dklab.ru