Приветствую всех. Ситуация следующая. Сбацал виртуальные хосты в апаче. Все работают, а для одного из хостов мне нужно было сделать работу через suexec.
Апач ставил из сырцов:configure --enable-suexec --with-suexec-logfile=/var/log/httpd/suexec_log
--with-suexec-userdir=/home/stc/public_html
Server version: Apache/2.0.55
Server built: Jun 6 2006 18:21:15
Server's Module Magic Number: 20020903:11
Architecture: 32-bit
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT="/usr/local/apache2"
-D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"Добавил в httpd.conf такое:
NameVirtualHost statistic:80
<VirtualHost statistic:80>
ServerAdmin admin@empty
Options Indexes FollowSymlinks MultiViews
DocumentRoot /home/stc/public_html
ServerName statistic
ErrorLog /var/log/httpd/statistic/error_log
CustomLog /var/log/httpd/statistic/access_log common
SuexecUserGroup stc stc
AccessFileName .htaccess
ScriptAlias /stat/cgi/ "/home/stc/public_html/stat/statist/"
ScriptAlias /~stc/stat/cgi/ "/home/stc/public_html/stat/statist/"
<Directory "/home/stc/public_html/stat">
Options Indexes FollowSymlinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "/home/stc/public_html/stat/statist">
AddHandler cgi-script .cgi .pl
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
</VirtualHost>после этого обращение к скриптам по адресу _http://statistic/stat/statist/in.cgi вызывает Internal Server Error (html при этом работают), строки в логах:
suexec_log:
[2006-06-07 16:38:11]: user mismatch (apache instead of www)access_log
192.168.0.2 - - [07/Jun/2006:16:38:10 +0300] "GET /stat/statist/in.cgi HTTP/1.0" 500 590error_log
[Wed Jun 07 16:38:11 2006] [error] [client 192.168.0.2] Premature end of script headers: in.cgiфайлы, права, владельцы: (убрал не относящиеся к делу строки)
/home:
total 24
drwxr-x--- 3 stc apache 4096 Jun 7 16:52 stc/home/stc:
total 4
drwxr-xr-x 3 stc stc 4096 Jun 6 14:41 public_html./public_html:
total 4
drwxr-xr-x 6 stc stc 4096 Dec 8 17:49 stat./public_html/stat:
total 48
drwxr-xr-x 2 stc stc 4096 Mar 2 2005 images
drwxr-xr-x 2 stc stc 4096 Mar 2 2005 messages
drwxr-xr-x 2 stc stc 4096 Jun 7 16:27 statist <----------------------------
drwxr-xr-x 7 stc stc 4096 Dec 8 17:49 themes
-rw-r--r-- 1 stc stc 9688 Mar 2 2005 back1.jpg
-rw-r--r-- 1 stc stc 831 Mar 2 2005 footer.htm
-rw-r--r-- 1 stc stc 3220 Jan 14 10:47 header.htm
-rw-r--r-- 1 stc stc 1426 Dec 8 17:49 index.html
-rw-r--r-- 1 stc stc 607 Dec 8 17:49 info.html
-rw-r--r-- 1 stc stc 1471 Mar 2 2005 style.css./public_html/stat/statist: <------------------------------
total 348
-rwxr-xr-x 1 stc stc 72 Jun 7 16:28 in.cgiапач работает как apache:apache, искомые скрипты от stc:stc. Естественно такие юзеры и группы существуют, обое без возможности входа (nologin). Система - Linux Red Hat 9.
Подскажите ГДЕ грабли??? Кучу литературы изучил, убил 2 дня... Всё без толку. Печёнкой чую - решение простое, но......
Привет,Соберите suexec с
--suexec-caller=UID
The username under which Apache normally runs. This is the only user allowed to execute this program.и укажите там тот user, от которого запускаете ваш Apache.
http://httpd.apache.org/docs/1.3/suexec.html
WWell,
>Привет,
>
>Соберите suexec с
>
>--suexec-caller=UID
> The username under which Apache normally runs. This
>is the only user allowed to execute this program.
>
>и укажите там тот user, от которого запускаете ваш Apache.
>
>http://httpd.apache.org/docs/1.3/suexec.html
>
>WWell,Благодарю, помогло, я просто протупил и не заметил этой опции в configure :-|