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

Переменные среды в консоли (php 5.5)

Добавлено: 16 окт 2014, 02:21
Соглядатай
День добрый!

Работаю с zend framework, периодически требуется запускать из консоли разные команды вроде: php bootstrap.php clear-cache итд...
Поначалу (пока не знал о встроенной в OpenServer консоли), я пытался запускать php с указанием полного пути до php.exe - естественно, ничего не работало и выводило кучу ошибок.
Работая в версии OpenServer 4.9 и используя модуль php 5.4 (с apache 2.2), я не ведал горя и проблем - все работало как часы.

Установил OpenServer 5.1.1 и возникла необходимость в использовании php 5.5 (с apache 2.4). И тут консоль мне показала следующее:

C:\OpenServer>php
Thu Oct 16 10:12:03 2014 (5812): Fatal Error Unable to open base address file

Захожу в настройки, переключаю модули на apache 2.2 и php 5.4 - все работает. Google ничего интересного по этой ошибке не рассказал.

Как решить эту проблему?

[upd=1413415898][/upd]
Пока приноровился менять модули на более старые и так работать в консоли... но ведь это не дело.

Добавлено: 16 окт 2014, 10:08
Максим
Судя по информации в интернете возможно вы криво активировали расширение OpCache, либо у вас конфликт с предыдущей установкой PHP (или сборки типа WAMP) на компьютере.

Заодно убедитесь что вы правильно работаете с консолью, т.е. закрываете и открываете её снова из меню при каждом изменении настроек или модулей.

Добавлено: 17 окт 2014, 02:29
Соглядатай
Предыдущий OpenServer снес подчистую, проекты переносил ручками. Других WAMP не использую вообще (привет Денверу с его вечным ожиданием 4-й версии).

Консоль открываю непосредственно после запуска сервера и переоткрываю после измененения модулей, читал об этом в руководстве.

В общем, Вы оказались правы - проблема в некорректной активации модуля opcache.

Как было в настройке php.ini:
[opcache]
zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_opcache.dll"
opcache.enable=1
opcache.enable_cli=1

Как сделал сейчас:
[opcache]
zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_opcache.dll"
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

Конфигурацию взял отсюда.

Теперь все прекрасно работает.
Максим, спасибо за помощь ;)

Добавлено: 27 ноя 2014, 15:09
Соглядатай
Возникла еще одна проблема.
Если выполняется в консоли скрипт, в котором есть команда git, то возникает ошибка - команда не найдена. Хотя в стандартной командной строке cmd команды git работают, т к git установлен.

Как решить эту проблему?

Добавлено: 27 ноя 2014, 15:21
vv3d0x
По поводу переменных, есать проблемы так как не могу разширить свою конфигурацию для Nginx;

Скопировал файл Nginx-1.7_vhost.conf в корень нужного домена.
Нигде в доке нету упоминания о переменной для PHP

есть: %httpport%, %httpsport%, %httpbackport%, %redispost% etc.....
единственное место где используеться это значение, это настройки стрима, ну и тут меня ожидал облом
#---------------------------------------------#
# FastCGI PHP
#---------------------------------------------#

%streams%

Как я могу изменить %streams% и получить значение поля из настроек для ПХП порта %phpport% не работает :)

Добавлено: 27 ноя 2014, 15:57
Максим
Соглядатай писал(а):Возникла еще одна проблема.
Если выполняется в консоли скрипт, в котором есть команда git, то возникает ошибка - команда не найдена. Хотя в стандартной командной строке cmd команды git работают, т к git установлен.

Как решить эту проблему?
Поменяйте в настройках Open Server PATH на "Свой PATH + Win PATH", потому что встроенная консоль знать не знает про ваш git в системе.

Добавлено: 28 ноя 2014, 12:38
AVATOR
Максим, может поставить в сборке по дефолту выбранный пункт "Свой PATH + Win PATH" что б таких вопросов не возникало?

Добавлено: 28 ноя 2014, 12:45
Максим
AVATOR писал(а):Максим, может поставить в сборке по дефолту выбранный пункт "Свой PATH + Win PATH" что б таких вопросов не возникало?
Подобная настройка вызовет моментальный шквал проблем из-за огромного числа конфликтов со стационарно установленным софтом. Так что эта настройка неспроста имеет другое дефолтное значение.

Добавлено: 29 ноя 2014, 03:55
Соглядатай
Максим писал(а):Поменяйте в настройках Open Server PATH на "Свой PATH + Win PATH", потому что встроенная консоль знать не знает про ваш git в системе.
Максим, спасибо! Теперь можно полноценно работать из этой консоли.

Еще один вопрос - а как быть, например, с пакетами, которые требуют выбрать установленный php.exe в системе?
Например, Composer:
https://getcomposer.org/download/

При установке на windows-машине он запрашивает php, который я указываю в папке modules\php\PHP-5.5 OpenServer'а и выдает ошибку:

Some settings on your machine make Composer unable to work properly.
Make sure that you fix the issues listed below and run this script again:

The openssl extension is missing, which means that secure HTTPS transfers are impossible.
If possible you should enable it or recompile php with --with-openssl

Строка с openssl раскомментирована. Некоторую информацию нашел здесь:
http://stackoverflow.com/questions/1806 ... l-composer
Но пока не получается что-либо сделать. Возможно, это связано с portable-установкой всех модулей.

[upd=1417224350][/upd]
Как оказалось, composer уже установлен и надо просто уметь им пользоваться. Нашел необходимую информацию тут:
/viewtopic.php?f=6&t=1146&start=20
http://open-server.ru/docs/#rabota-s-composer

Добавлено: 11 сен 2015, 08:55
Соглядатай
И снова столкнулся с переменными средами... сейчас, например, для Laravel требуется запуск команды homestead, a homestead - это пакет, поставляемый через composer.

Собственно, при запуске команды происходит следующее:
C:\Users\user>homestead
"php" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Через консоль OpenServer все, естественно, работает. Однако каждый раз приходится запускать сначала его, а потом консоль, чтобы вызвать пару команд...

Возможно ли как-то включить использование php, composer и иных модулей для работы в системе? Без запуска OpenServer, например, через батник или exe-шник.

P.s. Никогда не ковырялся во внутренностях модуля php, чтобы понять что ему нужно для работы. Однако могу сказать, что простого указания php.exe для системы явно недостаточно =)