Вы хотите перенаправить или переписать URL? Если Вы перенаправите адрес панели URL браузера, то изменится. Можно сделать это с:
Redirect /index.html http://www.example.edu/~username/cgi-bin/index.php
Если Вы хотите переписать его, таким образом, пользователь не видит URL PHP, что-то как:
RewriteEngine On
RewriteRule ^/index.html$ /cgi-bin/index.php [L]
Строка запроса (например, ?foo=bar
) будет передан до Сценария PHP. [L]
означает 'в последний раз' - не обрабатывают никакого после правил.
Править:
Можно ли определенно использовать mod_rewrite
? Попытайтесь удалить Ваш <IfModule
> строки и видят, получаете ли Вы ошибку (Вы видели бы 500, если модуль не загрузится или не загружается).
И попытка:
RewriteRule ^/index.html$ /cgi-bin/index.php [L,R=302]
Это вызовет 302 перенаправления, изменяя Ваш URL браузера. Это должно показать Вам значение mod_rewrite
для замены.
ps aux | egrep '(apache|httpd)'
обычно будет показывать то, что апач выполняет как.
Обычно Вы не должны изменять пользователя по умолчанию, "никто" или "апач" не обычно прекрасные пользователи. Пока не "корень" ;)
править: более точная команда для ловли апачских двоичных файлов также
Я знаю, что это - старое сообщение, но оно все еще перечислено как оставшееся без ответа, таким образом, я сделаю предложение. Если Вы не можете найти, какой Apache пользователя или группы работает как, возможно, попытайтесь открыть httpd.conf файл. Должна быть запись там для "Пользователя" и "Группы". Мало того, что можно видеть, какой пользовательский Apache, как предполагается, работает как, но можно изменить его, если Вы чувствуете потребность сделать так.
ps aux | grep apache
во время его работы. ПРИМЕЧАНИЕ. Это тот же ответ, который я дал на Stackoverflow .
This code will - more or less - alphabetically list all the non-root users running processes containing apache
(or whose name contains apache
)
ps aux | grep -v root | grep apache | cut -d\ -f1 | sort | uniq
Согласно ubuntuforums.org , в Ubuntu пользователем по умолчанию для apache2 является www-data
.
Верно и верно в Ubuntu 13.10 Saucy.
Из Lars Noodén на вышеупомянутом форуме.
Чтобы убедиться, что [пользователь] действительно настроен, проверьте фактические файлы конфигурации . В зонтичном файле
apache2.conf
будет что-то вроде следующего:Пользователь $ {APACHE_RUN_USER} Группа $ {APACHE_RUN_GROUP}
Это ссылка на переменные среды, установленные в
/ etc / apache2 / envvars
.mod_suexec
также позволяет запускать сценарии от имени другого пользователя и группы.Чтобы найти виртуальные хосты, которые могут использовать альтернативных пользователей, группы или и то, и другое, проверьте конфигурации.
$ egrep "^ User | ^ Group | ^ SuexecUserGroup" /etc/apache2/apache2.conf / etc / apache2 / сайты-доступные / *. conf
Для дистрибутивов на основе Red Hat это будет (обычно его пользователь, запускающий httpd - apache
):
$ egrep "^User|^Group|^SuexecUserGroup" /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf
Я нашел эту команду в документах CakePHP .
HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1`
Теперь HTTPDUSER
содержит имя пользователя, который запускает сервер, echo $ HTTPDUSER
в моем случае выводит www-data
–с использованием rlerdorf / php7dev .
Альтернативный подход, по крайней мере, для дистрибутивов, основанных на Debian/Ubuntu, состоит в том, чтобы использовать тот же метод, что и Apache для установки пользователя и группы: источник /etc/apache2/envvars
!
$ echo "$(source /etc/apache2/envvars && echo "$APACHE_RUN_GROUP")"
www-data
Если вы хотите получить фантазию, вы можете подавить ошибки, если файл не найден, и указать значение по умолчанию:
$ apacheuser=$( source /fail/etc/apache2/envvars 2>/dev/null && echo "$APACHE_RUN_GROUP" || echo nobody ) $ echo "$apacheuser" nobody
Обычно вы генерируете сертификаты из вашего CA, и эти сертификаты будут связаны с учетными записями пользователей в AD. Убедитесь, что вы добавили роль проверки подлинности сопоставления сертификатов клиента. Есть несколько способов сопоставить сертификаты учетным записям. Вам нужно будет выбрать, какой метод лучше всего подходит для вашей среды. Например, вы можете сопоставить несколько сертификатов с учетной записью, один сертификат сопоставить с одной учетной записью, или вы можете использовать сопоставление Active Directory.
User: name="_www" id=70
Group: name="_www" id=70
Я обнаружил, что большинство предлагаемых здесь решений являются системными или конфигурационными (в частности, большинство решений вообще не работает на MacOS), и некоторые полагаются на то, что пользователь знает, где находятся конфигурационные файлы Apache в первую очередь. ...
Так что я немного жульничаю и позволяю самому Apache рассказать мне, что это такое.
Простая команда apachectl -S
скажет вам, что нужно знать о запущенном экземпляре Apache, и результаты её работы могут быть достаточно легко разобраны. Вот моё решение, которое я использую в начале нескольких скриптов bash
для определения множества вещей, которые могут мне понадобиться в любой момент времени...
# Store the results so we don't have to keep calling apachetl...
astatus=`apachectl -S`
# Now grab whatever you want from the result...
HTTPD_ROOT_DIR=$(expr "`echo "$astatus" | grep ServerRoot`" : ".*\"\(.*\)\".*")
HTTPD_DOC_DIR=$(expr "`echo "$astatus" | grep \"Main DocumentRoot\" `" : ".*\"\(.*\)\".*")
HTTPD_USER=$(expr "`echo "$astatus" | grep \"User:.*name=\" `" : ".*\"\(.*\)\".*")
HTTPD_GROUP=$(expr "`echo "$astatus" | grep \"Group:.*name=\" `" : ".*\"\(.*\)\".*")
Эти значения можно использовать как:
echo $HTTPD_ROOT_DIR // /etc/httpd
echo $HTTPD_DOC_DIR // /var/www
echo $HTTPD_USER // www-data
echo $HTTPD_GROUP // www-data
Используйте lsof и передайте порт, который прослушивается apache, в качестве аргумента. См. Столбец USER для пользовательского приложения, запущенного как.
# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 21058 root 4u IPv6 74730 0t0 TCP *:http (LISTEN)
httpd 21111 www-data 4u IPv6 74730 0t0 TCP *:http (LISTEN)
httpd 24915 www-data 4u IPv6 74730 0t0 TCP *:http (LISTEN)