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

Обсуждение общих вопросов связанных с программой
Аватара пользователя
hudson
Сообщения: 50
Зарегистрирован:
30 май 2012, 19:25

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

hudson » 06 июн 2012, 12:16

Ребята, подскажите, есть ли более цивилизованный способ выполнять php-скрипты из консоли? Сейчас приходится так делать:
..\..\..\server\php\PHP-5.3.13\php app\console
Чую что надо копать в сторону PATH, но не понимаю сути настроек.
Аватара пользователя
Asmodey
Сообщения: 339
Зарегистрирован:
18 апр 2012, 10:33
Контактная информация:

Asmodey » 06 июн 2012, 20:33

Кошерней создать где надо файл php.cmd

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

Если будет раздражать повторение строки запуска, то добавить @ в начале строки.
Аватара пользователя
DelphinPRO
Сообщения: 803
Зарегистрирован:
01 фев 2012, 17:27
Откуда: Самара
Контактная информация:

DelphinPRO » 07 июн 2012, 08:10

добавить в переменную окружения PATH путь до php.exe
тогда достаточно будет писать
php app\console
Аватара пользователя
Asmodey
Сообщения: 339
Зарегистрирован:
18 апр 2012, 10:33
Контактная информация:

Asmodey » 07 июн 2012, 09:40

Тогда всё (кто не пишет полный путь) будет сидеть на одной версии
Аватара пользователя
Максим
Сообщения: 5415
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 07 июн 2012, 10:52

Дождитесь новой версии. Так можно будет так:

Создаете закладку на консоль. Запускаете через закладку консоль и пишете в консоли
php.exe C:\app\лалалала\ваш.php
Аватара пользователя
hudson
Сообщения: 50
Зарегистрирован:
30 май 2012, 19:25

hudson » 07 июн 2012, 19:46

Максим писал(а):Дождитесь новой версии. Так можно будет так:

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

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

Если будет раздражать повторение строки запуска, то добавить @ в начале строки.
Батник тоже вариант, голова моя дурная )
Аватара пользователя
DelphinPRO
Сообщения: 803
Зарегистрирован:
01 фев 2012, 17:27
Откуда: Самара
Контактная информация:

DelphinPRO » 07 июн 2012, 21:33

Максим писал(а):Создаете закладку на консоль. Запускаете через закладку консоль
и какой 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
Аватара пользователя
hudson
Сообщения: 50
Зарегистрирован:
30 май 2012, 19:25

hudson » 08 июн 2012, 07:54

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 от денвера остался )
Аватара пользователя
hudson
Сообщения: 50
Зарегистрирован:
30 май 2012, 19:25

hudson » 20 июн 2012, 11:11

Похоже с приходом 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
Аватара пользователя
Максим
Сообщения: 5415
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 20 июн 2012, 12:12

1) запускайте все консоли из openserver через закладки
2) скопируйте php.ini в папку с php на время установки модуля pear а потом удалите
Ответить