Как установить инструмент аннотации brat на машине с Linux с включенным SELinux

Это вопрос с самостоятельным ответом, в котором описано, как решить проблемы, возникающие при установке инструмента аннотаций brat, который используется для создания аннотированных корпусов для использования в NLP, на обычной машине Linux, на которой включен SELinux. Это основано на версии 1.3 инструмента.

Процедура установки, описанная в документации, включает следующие шаги:

  1. Распакуйте файл.tar.gz в каталог веб-сервера (Apache), обычно /var/www/html или же $HOME/public_html
  2. Возможно переименовать распакованный каталог из brat-v1.3_Crunchy_Frog к чему-то простому, такому как brat
  3. Войдите в каталог и запустите sudo ./install.sh
  4. Запустить веб-сервер (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.

Корни проблемы:

  1. Brat хранит исполняемые скрипты (CGI-скрипты), статические файлы, а также аннотированные данные в одном каталоге. html каталог
  2. По умолчанию SELinux настроен на предотвращение выполнения сценариев CGI из не-CGI-каталогов. Простое изменение конфигурации Apache здесь не помогает
  3. 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

Другие вопросы по тегам