внезапно putenv перестал работать

witzawitz

Новичок
Долго работала с MAMPом, всё было пучком. Но внезапно (действительно внезапно) putenv перестало работать. Собственно, оно мне нужно, чтобы прописать PATH для работы с техом. Ситуация такая: запускаю скрипт - всё ок, запускаю ещё раз - не работает. Лезу разбираться, оказывается, что putenv('PATH='....) перестало работать. Показалось, что перестало работать из-за недавно добавленной функции. Откатываюсь назад - не помогает. Установка $_ENV не помогает. Пробовала и с включённым и с выключенным safe_mode.
До этого непонятной пока мне ошибки всё работало прекрасно (я так понимаю, было safe_mode = Off), я вообще php.ini не трогала.
Никаких обновлений и изменений настроек не было.

MacOSX 10.7.1
MAMP 2.0.2
Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8r DAV/2 PHP/5.3.6
 

witzawitz

Новичок
Проблема была решена прописыванием нужного export PATH=.... в файлик envvars мампа, но это скорее костыль. Если кто поможет понять, в чём на самом деле проблема, буду благодарна.
 

witzawitz

Новичок
Мило, конечно, что вы так сразу ко мне на "ты".
А, во-вторых, что вы ме только что посоветовали сделать? Как, по-вашему, я определила, что $PATH не прописывается? Наверно, я всё-таки выводила его на печать, да.
 

antson

Новичок
Партнер клуба
witzawitz
Не обижайтесь .
Здесь (и как во многих других местах интернета, корни сего вообще начинаются с фидо )
принято обращение к собеседнику на "ты". Обращение на "Вы" применяется обычно при желании дистанционироваться при общении с неприятным собеседником или в случае полного несогласия с его позицией.
 

Breeze

goshogun
Команда форума
Партнер клуба
Проблема была решена прописыванием нужного export PATH=.... в файлик envvars мампа, но это скорее костыль. Если кто поможет понять, в чём на самом деле проблема, буду благодарна.
проблем на самом деле две:
1. не работает putenv
2. не известно какие изменения привели к п.1

следствием этого должно быть горячее желание изучить любую популярную систему контроля версий, даже для микропроекта с одним программистом.
реально понять, что у тебя менялось, что добавлялось, кроме тебя никто не может, только предположения на уровне: где-то кто-то что-то пропускает/перезаписывает/стирает.
внятный diff в этом плане весьма хорош.

по поводу костыля -- не такой уж и костыль, лет 10 назад оракловому юзеру так же в конфиг прописывали необходимые переменные окружения. мб это даже правильнее.
 

witzawitz

Новичок
Опа, да вы мне глаза открыли на cvs (ой, а я знаю, как называется =) )! А прямо по ссш файлики правлю и на сервере сразу проверую, так нельзя да? Что же, что мне делать?!
Вот эта фраза вам ни о чём не сказала?
Откатываюсь назад - не помогает.
Наверно, вы подумали, что я просто написанный код удалила, а потом заново написала?
 

akd

dive now, work later
Команда форума
... Ситуация такая: запускаю скрипт - всё ок, запускаю ещё раз - не работает ..

а между этими "запускаю", сколько времени прошло и что происходило?
 

witzawitz

Новичок
... Ситуация такая: запускаю скрипт - всё ок, запускаю ещё раз - не работает ..

а между этими "запускаю", сколько времени прошло и что происходило?
минут 10-20-30, точно не помню, была дописана одна функция для работой со строками, которая никакого отношения к настройкам не имеет
кроме того, как я уже написала, после того, как перестало работать, я отктатилась к последней рабочей версии, но и это не помогло
фф один раз вылетел правда, но если это как-то повлияло на переменные окружения - то это фантастика уже какая-то
я думаю, может, обновления какие-то хитрожопые в фоне поставились, но тоже как-то маловероятно, у меня везде стоят галочки "спрашивать перед обновлением"
 

akd

dive now, work later
Команда форума
ну хорошо, для начала разберемся с putenv.
плиз, в рут апача, touch testenv.php
и вот такое содержимое туда:
<?php

putenv('AAA=111');
echo getenv('AAA');
putenv('AAA=222');
echo getenv('AAA');
putenv('AAA=111');
echo getenv('AAA');

?>

после этого запускай и результат нам в студию
 

witzawitz

Новичок
ахаха, не, ну правда, неужели вы думаете, что я не испробовала всё, что можно и нельзя, прежде чем написать сюда? =)
все остальные переменные окружение записываются и перезаписывают, а также стираются, а ещё и новые можно создавать
на PATH вообще ничего не действует, ни putenv, ни apache_setenv
действует только прямая запись в $_ENV, но по сути это вообще разные вещи, поэтому несмотря на то, что в $_ENV пишется, но getenv в итоге старое значение выдаёт
 

Breeze

goshogun
Команда форума
Партнер клуба
Опа, да вы мне глаза открыли на cvs (ой, а я знаю, как называется =) )! А прямо по ссш файлики правлю и на сервере сразу проверую, так нельзя да? Что же, что мне делать?!
Вот эта фраза вам ни о чём не сказала?
сказала, фраза, сказала.
 

witzawitz

Новичок
собственно, из-за того, чтобы было перепробовано вообще всё, до чего додумался мой мозг, и было написано это сообщение в надежде, что кто-то уже сталкивался с такой проблемой
 

Breeze

goshogun
Команда форума
Партнер клуба
ахаха, не, ну правда, неужели вы думаете, что я не испробовала всё, что можно и нельзя, прежде чем написать сюда? =)
это как раз то, о чем я говорил. никто не знает что там было перепробовано. мониторчик с системником тряпочкой еще протереть можно, с бубном поплясать, раз чудеса творятся неведомые.
 

witzawitz

Новичок
это как раз то, о чем я говорил. никто не знает что там было перепробовано. мониторчик с системником тряпочкой еще протереть можно, с бубном поплясать, раз чудеса творятся неведомые.
да, моя ошибка, что я не перечислила то, что уже было опробовано, но, блин, было полпятого утра и только цена макбука не позволяла мне выкинуть его в окно
 

akd

dive now, work later
Команда форума
/* ладно, подождем пока наобщается :) */
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
о! давно у нас тут синдрома в поле фром не было, да? тема короны на голове рулит :) как там - TOGTFO ?
 

antson

Новичок
Партнер клуба
А какая максимальная длина переменной path может быть под макОС ? в интервале работало - перестало может какую прогу доставили / обновили / изменили ?
В результате чего изменение этой переменной из пхп уже не проходят.
 
Сверху