<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Запуск httpd из шелл под root&apos;ом и из автозагрузки дают разные права..</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77077.html</link>
    <description>Проблема в том, что у меня в /etc/profile прописано много локалей, необходимых для работы переводчика. Так вот. При логине в шелле под root или www (для обоих пользователей у меня прописаны все права и шелл bash), все прописанные локали поддершиваются. Если я из под шелл запускаю apache: apachectl stop; apachectl start, то локали поддерживаются и для функции exec или system (PHP). Если я перезагружаю apache (apachectl restart) или apache загружается из автозагрузки, то локали перестают работать из под exec или system. Для всех скриптов (автозагрузка, apachectl) прописал вместо #!/bin/sh - #!/usr/local/bin/bash&lt;br&gt;Всеравно не помогает... Подскажите, плз - как заставить чтобы шелл запущенный через web - также поддерживал необходимые env переменные?&lt;br&gt;</description>

<item>
    <title>Запуск httpd из шелл под root&apos;ом и из автозагрузки дают разн... (angra)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77077.html#13</link>
    <pubDate>Thu, 01 Nov 2007 04:58:17 GMT</pubDate>
    <description>&amp;gt;Точнее пробовал прописывать как вы сказали: exec(&apos;export LC_ALL=ru_RU.CP1251; mytranslator ...&apos;) - не помогает. &lt;br&gt;&lt;br&gt;надеюсь вы не буквально так написали, а адаптировали под ваши нужды. export LC_ALL= повзоляет выставить локаль для всех команд запущенных в том же экземпляре шелла, а ; является разделителем комманд в шелле. То есть перводчик должен был получить правильную установку локали.&lt;br&gt;&lt;br&gt;Давно не работал с php и не помню уже как работает в нем system/exec и как у него вообще с поддержкой unicode. Как вариант можно попробовать &lt;br&gt;1. перенаправлять вывод переводчика в файл, а потом его читать средствами php&lt;br&gt;2. перенаправлять вывод переводчика в iconv и указывать из какой кодировки в какую сконвертить&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Запуск httpd из шелл под root&apos;ом и из автозагрузки дают разн... (Petja)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77077.html#12</link>
    <pubDate>Wed, 31 Oct 2007 14:16:08 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;так что в самом PHP не получится из вопросов что-либо получить. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;(при конвертации юникод-однобайтные могут быть проблемы, но если у вас &lt;br&gt;&amp;gt;&amp;gt;юникод, то нафига все остальные кодировки) &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Юникод, я его поэтому и взял - но даже юникод не поддерживается &lt;br&gt;&amp;gt;шеллом. &lt;br&gt;&amp;gt;Пробовал локали прописывать перед коммандой. Это соувсем не то, проблема в самом &lt;br&gt;&amp;gt;экземпляре шелла - который вызывается екзеком и ничего не понимает... &lt;br&gt;&lt;br&gt;Точнее пробовал прописывать как вы сказали: exec(&apos;export LC_ALL=ru_RU.CP1251; mytranslator ...&apos;) - не помогает.&lt;br&gt;</description>
</item>

<item>
    <title>Запуск httpd из шелл под root&apos;ом и из автозагрузки дают разн... (Petja)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77077.html#11</link>
    <pubDate>Wed, 31 Oct 2007 14:14:37 GMT</pubDate>
    <description>&amp;gt;в какой кодировке идет возврат мы можете просто перекодировать вывод в &lt;br&gt;&amp;gt;самом php&lt;br&gt;&lt;br&gt;Вывод идет из шелла, который не понимает локаль и выводит вопросы - так что в самом PHP не получится из вопросов что-либо получить.&lt;br&gt;&lt;br&gt;&amp;gt;(при конвертации юникод-однобайтные могут быть проблемы, но если у вас &lt;br&gt;&amp;gt;юникод, то нафига все остальные кодировки) &lt;br&gt;&lt;br&gt;Юникод, я его поэтому и взял - но даже юникод не поддерживается шеллом.&lt;br&gt;Пробовал локали прописывать перед коммандой. Это соувсем не то, проблема в самом экземпляре шелла - который вызывается екзеком и ничего не понимает... &lt;br&gt;</description>
</item>

<item>
    <title>Запуск httpd из шелл под root&apos;ом и из автозагрузки дают разн... (angra)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77077.html#10</link>
    <pubDate>Wed, 31 Oct 2007 12:49:39 GMT</pubDate>
    <description>отдавайте команду предварив ее export LC_ALL=&quot;ваша локаль&quot;. Например&lt;br&gt;exec(&apos;export LC_ALL=ru_RU.CP1251; mytranslator ...&apos;)&lt;br&gt;Также вы можете попробовать менять хеш среды. &#037;ENV в перле, в php не помню, посмотрите доку на тему super globals. И наконец зная в какой кодировке идет возврат мы можете просто перекодировать вывод в самом php(при конвертации юникод-однобайтные могут быть проблемы, но если у вас юникод, то нафига все остальные кодировки)&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Запуск httpd из шелл под root&apos;ом и из автозагрузки дают разн... (Petja)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77077.html#9</link>
    <pubDate>Wed, 31 Oct 2007 10:45:09 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;Зачем такой изврат? Установкой Env из под апача конечно можно добится того &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;что вам надо, но зачем? Сдается мне вы двигаетесь в очень &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;неправильном направлении, может еще не поздно остановится и сделать все по &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;уму? &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;Вот я собственно и спрашиваю - как по уму сделать? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;В php/perl скриптах можно устанавлмвать локаль. В perl - setlocale. В php &lt;br&gt;&amp;gt;- не помню.. &lt;br&gt;&lt;br&gt;Дело в том, что у меня много локалей - и эти локали нужны не для php, а для того чтобы шелл понимал язык.&lt;br&gt;</description>
</item>

<item>
    <title>Запуск httpd из шелл под root&apos;ом и из автозагрузки дают разн... (Petja)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77077.html#8</link>
    <pubDate>Wed, 31 Oct 2007 10:44:11 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Вот я собственно и спрашиваю - как по уму сделать? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Тогда сформулируйте изначальную задачу. То есть для какой цели вы хотите менять &lt;br&gt;&amp;gt;локаль, что вы берете из локали, почему без смены локали скрипты &lt;br&gt;&amp;gt;не работают. &lt;br&gt;&lt;br&gt;У меня установлен шелл переаодчик&lt;br&gt;Он берет из скрипта php (из формы) текст (иероглифы, русские буквы, испанские).&lt;br&gt;Далее через exec - передает текст в коммандную строку - если шелл локаль не видит - то получаются знаки вопросов, т.е. в переводчик передается все правильно - он понимает utf-8, а при выходе (уже переведенный текст) в знаках вопросов - т.е. он тоже из шелл забирается - а шелл не понимает какая локаль.&lt;br&gt;Так вот понимает локаль - в первом случае - если я из под рута запускаю апач и не понимает, если апач сам запускается - из автозагрузки.&lt;br&gt;С юзерами я в первом посте все подробно описал...&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Запуск httpd из шелл под root&apos;ом и из автозагрузки дают разн... (angra)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77077.html#7</link>
    <pubDate>Tue, 30 Oct 2007 23:36:05 GMT</pubDate>
    <description>&amp;gt;Вот я собственно и спрашиваю - как по уму сделать? &lt;br&gt;&lt;br&gt;Тогда сформулируйте изначальную задачу. То есть для какой цели вы хотите менять локаль, что вы берете из локали, почему без смены локали скрипты не работают. &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Запуск httpd из шелл под root&apos;ом и из автозагрузки дают разн... (konst)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77077.html#6</link>
    <pubDate>Tue, 30 Oct 2007 19:51:47 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Зачем такой изврат? Установкой Env из под апача конечно можно добится того &lt;br&gt;&amp;gt;&amp;gt;что вам надо, но зачем? Сдается мне вы двигаетесь в очень &lt;br&gt;&amp;gt;&amp;gt;неправильном направлении, может еще не поздно остановится и сделать все по &lt;br&gt;&amp;gt;&amp;gt;уму? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Вот я собственно и спрашиваю - как по уму сделать? &lt;br&gt;&lt;br&gt;В php/perl скриптах можно устанавлмвать локаль. В perl - setlocale. В php - не помню..&lt;br&gt;</description>
</item>

<item>
    <title>Запуск httpd из шелл под root&apos;ом и из автозагрузки дают разн... (Petja)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID1/77077.html#5</link>
    <pubDate>Tue, 30 Oct 2007 19:14:05 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;функции exec или system (PHP). Если я перезагружаю apache (apachectl restart) &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;или apache загружается из автозагрузки, то локали перестают работать из под &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;exec или system. Для всех скриптов (автозагрузка, apachectl) прописал вместо #!/bin/sh &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;- #!/usr/local/bin/bash &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;Всеравно не помогает... Подскажите, плз - как заставить чтобы шелл запущенный через &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;web - также поддерживал необходимые env переменные? &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;Вы в httpd.conf прописывать переменные окружения не пробовали? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Спасибо! Наконец-то заработало, я щщаслив, спасибо! :-) &lt;br&gt;&lt;br&gt;Неа, показалось, всеравно не работает!&lt;br&gt;Завтра такуюже новую тему открою :-(&lt;br&gt;</description>
</item>

</channel>
</rss>
