Настройка парсера на локальной машине |
На хостинге все более-менее работает, а вот при попытке поднять парсер на локальной машине столкнулся по неопытности с трудностями в настройке апача. Включил модуль userdir, модуль actions, разрешил использование cgi-bin в пользовательских папках, при попытке обратиться к
localhost/~username (файл index.html есть и является индексным файлом для папок) получаю сообщение:
The requested URL /cgi-bin/parser3.cgi/~username/index.html was not found on this server. как-то странно обращение перенаправляется, чего в конфигурации ему может не хватать? Поискал в интернете, нашел упоминание опции ScriptAliasMatch - не смог ничего добиться с ее помощью. Если что, вот фрагмент конфига:
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
<Directory /home/*/public_html/cgi-bin/>
Options ExecCGI
SetHandler cgi-script
</Directory>
</IfModule>
Дайте толчок, на какую тему дальше искать? |
вы не забыли изменить права доступа для parser3.cgi, сделав его исполняемым [chmod 755 parser3.cgi]? |
Я сам команду на изменение прав не давал,но права на файл выставлены в
rwxr-xr-x
То есть все как надо. |
.htaccess |
Вы почему-то не привели содержимое .htaccess. Мне кажется, что у вас там написано
Action parsed-html /cgi-bin/parser3.cgi
Хотя судя по настрокам apache, парсер у вас скорее всего лежит по такому пути:
Action parsed-html /~username/cgi-bin/parser3.cgi |
Так и есть, исправил, помогло. Спасибо. Придется для нормального понимания работы еще конфигурирование сервера освоить. |
Новая ошибка |
С путем к cgi-bin разобрался, однако теперь наткнулся на другую ошибку:
/~username/: '/home/username/public_html/index.html' parser is in safe mode: reading files of foreign group and user disabled [recompile parser with --disable-safe-mode configure option], actual filename '/home/username/public_html/index.html', fuid(1000)!=euid(33) or fgid(1000)!=egid(33) [parser.runtime]
Кажется мне, что сообщение об ошибке не отражает действительной проблемы, потому что пользователь и группа у .cgi и .html-файла совпадают. Кто виноват на этот раз?
Добавлено: включил модуль suexec - безрезультатно. |
suexec |
suexec мало включить, его надо настроить. В сообщении об ошибке четко написано, что файл принадлежит пользовтелю с uid 1000, а парсер запущен от пользователя с uid 33 (grep 33 /etc/passdw, вероятно пользователь httpd). Какому при этом пользователю принадлежит parser3.cgi - значения не имеет.
fuid(1000)!=euid(33) or fgid(1000)!=egid(33)
Можно сказать SuexecUserGroup в конфиге apache, или просто поменять пользователя, от которого работает apache директивами User и Group, но это решение для одного пользователя. Как настраивается suexec для ~userdir - понятия не имею. |
для локального сервера по моему проще взять парсер с отключенным safe mode :) |
Вариант для одного пользователя можно и без suexec - просто указать нужные User и Group в конфиге. Но это кривое решение, которое использовать не хочется. Пока читаю документацию о suexec, но просветление еще не наступило, поэтому и спросил - может кто уже сталкивался, именно в ситуации с userdir |
Может до этого и дойдет, но неспортивно как-то :) Все-таки разобраться хочется, но пока в статьях в интернете ничего нового, как будто сейчас все должно работать. |
заработало |
Разобрался, заработало. Надо было явно доустановить apache2-suexec, я думал он по зависимостям к модулю устанавливается и не проверил. |