Почему вы запускаете / останавливаете его вручную? Казалось бы, использование сценария инициализации было бы полезно. Вы можете указать имя пользователя, под которым должен выполняться процесс httpd, в файле httpd.conf, а также указать параметры среды. Для RedHat / CentOs это будет выглядеть так:
Добавьте параметры среды в файл / etc / sysconfig / httpd (альтернативно, вы можете настроить команду для чтения этих переменных среды из другого файла, а также, при необходимости, настроить те же команды в вашем .bashrc - так есть только один файл, который содержит необходимые настройки среды).
Измените файл /etc/httpd/conf/httpd.conf, чтобы пользователь, запускающий процесс httpd, был пользователем без полномочий root (по умолчанию это должен быть apache в RedHat / CentOs).
Как только это будет сделано, используйте /etc/init.d/httpd для запуска и остановки процесса, и вы должны быть в хорошей форме.
Обновлено в ответ на комментарий автора:
Вы не хотите читать из вашего bashrc ... и использовать /usr/init.d/httpd restart (это так же просто, как apache2ctl) ... Что касается того, как это сделать, поместите переменные среды в новый файл. в приведенном ниже примере я предполагаю, что вы используете файл "/ etc / httpd / envconfig". Затем добавьте эти строки в ваш bashrc и / etc / sysconfig / httpd:
if [-f / etc / httpd / envconfig]; затем
, / И т.д. / HTTPD / envconfig
фи
Теперь и ваш bash, и ваш httpd-скрипт должны работать с обновленными переменными среды.
Еще одно замечание: переменные среды CGI обрабатываются по-разному в Apache, вы можете проверить этот URL:
http://httpd.apache.org/docs/2.2/env.html
В частности, «... переменные могут также передаваться из среды оболочки, которая запустила сервер с использованием директивы PassEnv ...»
Полагаю, вам нужно поместить соответствующие директивы PassEnv в файл httpd.conf, указав имена переменных среды, которые вы хотите передать в сценарии CGI. Хорошей новостью является то, что вам не нужно указывать значение, поэтому, если вы не изменяете имена самих переменных, вам не нужно управлять двумя конфигурациями.