Страница 1 из 2

Выполнение php в командной строке

Добавлено: 06 июн 2012, 12:16
hudson
Ребята, подскажите, есть ли более цивилизованный способ выполнять php-скрипты из консоли? Сейчас приходится так делать:
..\..\..\server\php\PHP-5.3.13\php app\console
Чую что надо копать в сторону PATH, но не понимаю сути настроек.

Добавлено: 06 июн 2012, 20:33
Asmodey
Кошерней создать где надо файл php.cmd

..\..\..\server\php\PHP-5.3.13\php %1 %2 %3 %4

Если будет раздражать повторение строки запуска, то добавить @ в начале строки.

Добавлено: 07 июн 2012, 08:10
DelphinPRO
добавить в переменную окружения PATH путь до php.exe
тогда достаточно будет писать
php app\console

Добавлено: 07 июн 2012, 09:40
Asmodey
Тогда всё (кто не пишет полный путь) будет сидеть на одной версии

Добавлено: 07 июн 2012, 10:52
Максим
Дождитесь новой версии. Так можно будет так:

Создаете закладку на консоль. Запускаете через закладку консоль и пишете в консоли
php.exe C:\app\лалалала\ваш.php

Добавлено: 07 июн 2012, 19:46
hudson
Максим писал(а):Дождитесь новой версии. Так можно будет так:

Создаете закладку на консоль. Запускаете через закладку консоль и пишете в консоли
php.exe C:\app\лалалала\ваш.php
О, стоит потерпеть ) Спасибо
Asmodey писал(а):Кошерней создать где надо файл php.cmd

..\..\..\server\php\PHP-5.3.13\php %1 %2 %3 %4

Если будет раздражать повторение строки запуска, то добавить @ в начале строки.
Батник тоже вариант, голова моя дурная )

Добавлено: 07 июн 2012, 21:33
DelphinPRO
Максим писал(а):Создаете закладку на консоль. Запускаете через закладку консоль
и какой currentdir будет в этой консоли?

мне удобнее открывать консоль из папки со скриптами, и currentdir становится равным этой папке.
плюсы
- не надо выполнять линюю команду типа
cd w:\domains\site\papka\
- или же не надо писать полные пути к скриптам типа
php w:\domains\site\papka\file.php
пишем просто
php file.php
но я работаю с одной версией и путь к php.exe прописан в PATH

Если принципиально нужно несколько версий - создайте батники в системной папке
php52.cmd
@path\to\php5.2\php.exe %1 %2 %3 %4
и php53.cmd
@path\to\php5.3\php.exe %1 %2 %3 %4
потом открываете консоль из папки со скриптом и пишете
php53 file.php

Добавлено: 08 июн 2012, 07:54
hudson
DelphinPRO писал(а):
Максим писал(а): но я работаю с одной версией и путь к php.exe прописан в PATH

Если принципиально нужно несколько версий - создайте батники в системной папке
php52.cmd
@path\to\php5.2\php.exe %1 %2 %3 %4
и php53.cmd
@path\to\php5.3\php.exe %1 %2 %3 %4
потом открываете консоль из папки со скриптом и пишете
php53 file.php
Ну как сказать, принципиально. Основные проекты пока запускаю на 5.3.13, есть пара экспериментальных на 5.4 для обучения. Не принципиально, но нужно. У меня в PATH вообще php 5.4.2 от денвера остался )

Добавлено: 20 июн 2012, 11:11
hudson
Похоже с приходом 4.5.6 началась свистопляска с Pear.

При установке подсовываем правильный ini, всё пока нормально:
d:\openserver\modules\php\PHP-5.3.13>php -c ..\..\..\userdata\temp\config\php.ini go-pear.phar

Are you installing a system-wide PEAR or a local copy?
(system|local) [system] : local
Please confirm local copy by typing 'yes' : yes

Below is a suggested file layout for your new PEAR installation. To
change individual locations, type the number in front of the
directory. Type 'all' to change all of them or simply press Enter to
accept these locations.

1. Installation base ($prefix) : D:\openserver\modules\php\PHP-5.3.13
2. Temporary directory for processing : D:\openserver\modules\php\PHP-5.3.13\tmp
3. Temporary directory for downloads : D:\openserver\modules\php\PHP-5.3.13\tmp
4. Binaries directory : D:\openserver\modules\php\PHP-5.3.13
5. PHP code directory ($php_dir) : D:\openserver\modules\php\PHP-5.3.13\pear
6. Documentation directory : D:\openserver\modules\php\PHP-5.3.13\docs
7. Data directory : D:\openserver\modules\php\PHP-5.3.13\data
8. User-modifiable configuration files directory : D:\openserver\modules\php\PHP-5.3.13\cfg
9. Public Web Files directory : D:\openserver\modules\php\PHP-5.3.13\www
10. Tests directory : D:\openserver\modules\php\PHP-5.3.13\tests
11. Name of configuration file : D:\openserver\modules\php\PHP-5.3.13\pear.ini
12. Path to CLI php.exe : D:\openserver\modules\php\PHP-5.3.13

1-12, 'all' or Enter to continue:
А вот после начала установки похоже параметр -c не пробрасывается - вылетают ошибки о невозможности подгрузить расширения:
Failed loading D:/openserver/server/php/PHP-5.3.13/ext/php_ioncube.dll
Failed loading D:/openserver/server/php/PHP-5.3.13/ext/php_xdebug.dll
PHP Warning: PHP Startup: Unable to load dynamic library 'D:/openserver/server/php/PHP-5.3.13/ext/php_apc.dll' - ═х эрщфхэ єърчрээ√щ ьюфєы№.
in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'D:/openserver/server/php/PHP-5.3.13/ext/php_apc.dll' - ═х эрщфхэ єърчрээ√щ ьюфєы№.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'D:/openserver/server/php/PHP-5.3.13/ext/php_mbstring.dll' - ═х эрщфхэ єърчрээ√щ ьюфєы№.
in Unknown on line 0
Pear при этом вполне себе ставится.

Но это пол беды, pear.bat (и прочие батники типа phpcs, phpunit) также будут без -c стартовать.

Пока решил таким костылём: в pear.bat
:RUN
"%PHP_PEAR_PHP_BIN%" -c "%PHP_PEAR_INSTALL_DIR%\..\..\..\..\userdata\temp\config\php.ini" -C -d date.timezone=UTC -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d auto_prepend_file="" -d auto_append_file="" -d variables_order=EGPCS -d register_argc_argv="On" -d "include_path='%PHP_PEAR_INSTALL_DIR%'" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
:END
Сейчас буду тестировать phpcs и phpunit

Добавлено: 20 июн 2012, 12:12
Максим
1) запускайте все консоли из openserver через закладки
2) скопируйте php.ini в папку с php на время установки модуля pear а потом удалите