Как установить инструмент аннотации brat на машине с Linux с включенным SELinux
Это вопрос с самостоятельным ответом, в котором описано, как решить проблемы, возникающие при установке инструмента аннотаций brat, который используется для создания аннотированных корпусов для использования в NLP, на обычной машине Linux, на которой включен SELinux. Это основано на версии 1.3 инструмента.
Процедура установки, описанная в документации, включает следующие шаги:
- Распакуйте файл.tar.gz в каталог веб-сервера (Apache), обычно
/var/www/html
или же$HOME/public_html
- Возможно переименовать распакованный каталог из
brat-v1.3_Crunchy_Frog
к чему-то простому, такому какbrat
- Войдите в каталог и запустите
sudo ./install.sh
- Запустить веб-сервер (
sudo service httpd start
) если он еще не запущен
Проблема: при выполнении этой процедуры, любая попытка использовать Brat в браузере (направив его на http://localhost/brat/index.xhtml
происходит сбой со следующими сообщениями об ошибках, отображаемыми на экране:
Error: ActiongetCollectionInformation failed on error Internal Server Error
Error: Actionwhoami failed on error Internal Server Error
Error: ActionloadConf failed on error Internal Server Error
Журнал ошибок Apache (обычно находится в /var/log/httpd/error_log
) также показывает ошибки:
(13)Permission denied: exec of '/var/www/html/new/ajax.cgi' failed, referer: http://localhost/new/index.xhtml
Premature end of script headers: ajax.cgi, referer: http://localhost/new/index.xhtml
Как решить эту проблему?
2 ответа
Это вызвано SELinux. Один из способов решить эту проблему - отключить SELinux, но несколько менее радикальный метод - установить права доступа в соответствии с требованиями brat.
Корни проблемы:
- Brat хранит исполняемые скрипты (CGI-скрипты), статические файлы, а также аннотированные данные в одном каталоге.
html
каталог - По умолчанию SELinux настроен на предотвращение выполнения сценариев CGI из не-CGI-каталогов. Простое изменение конфигурации Apache здесь не помогает
- SELinux также настроен на предотвращение записи данных на диск скриптами CGI.
Чтобы изменить конфигурацию SELinux, вам нужно предоставить права доступа к определенным файлам и каталогам следующим образом (сделайте это из установочного каталога brat):
$> chcon -t httpd_sys_content_t .
$> chcon -t httpd_sys_script_exec_t *.cgi
$> sudo chcon -R -t httpd_sys_script_rw_t work data
($>
представляет командную строку.)
Первая команда разрешает доступ на чтение к текущему каталогу (иногда это может не понадобиться). Вторая команда включает выполнение сценария CGI всех файлов, заканчивающихся на .cgi
(это необходимо). Третья команда обеспечивает доступ на запись к work
а также data
каталог (также необходим); его нужно применять снова всякий раз, когда вы добавляете файлы или подкаталоги в work
или `данные.
У меня была такая же проблема. Возможность решить это, изменив /etc/apache2/apache2.conf
файл следующим образом.
<Directory /var/www>
Options Indexes FollowSymLinks
#AllowOverride Options Indexes FileInfo
Require all granted
AddType application/xhtml+xml .xhtml
AddType font/ttf .ttf
# For CGI support
AddHandler cgi-script .cgi
# Comment out the line above and uncomment the line below for FastCGI
#AddHandler fastcgi-script fcgi
</Directory>
<Directory /var/www/html>
Options Indexes FollowSymLinks
#AllowOverride Options Indexes FileInfo
Require all granted
AddType application/xhtml+xml .xhtml
AddType font/ttf .ttf
# For CGI support
AddHandler cgi-script .cgi
# Comment out the line above and uncomment the line below for FastCGI
#AddHandler fastcgi-script fcgi
</Directory>
<Directory /var/www/html/brat>
Options Indexes FollowSymLinks
AllowOverride Options Indexes FileInfo
Require all granted
AddType application/xhtml+xml .xhtml
AddType font/ttf .ttf
# For CGI support
#AddHandler cgi-script .cgi
# Comment out the line above and uncomment the line below for FastCGI
AddHandler fastcgi-script fcgi
# For FastCGI, Single user installs should be fine with anything over 8
#FastCgiConfig -maxProcesses 8
</Directory>
Refrence: выпуск Brat