8

这是一个自我回答的问题,描述了如何解决在启用 SELinux 的普通 Linux 机器上安装brat 注释工具时出现的问题,该工具用于创建用于 NLP 的注释语料库。这是基于该工具的 1.3 版。

记录的安装过程包括以下步骤:

  1. 将 .tar.gz 文件解压缩到 (Apache) Web 服务器目录中,通常是/var/www/html$HOME/public_html
  2. 可能将解压缩的目录从重命名为brat-v1.3_Crunchy_Frog简单的名称,例如brat
  3. 进入目录并运行sudo ./install.sh
  4. 如果Web 服务器 ( 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

如何解决这个问题呢?

4

2 回答 2

4

这是由 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 脚本执行.cgi(这是必要的)。work第三个命令启用对and目录的写访问data(也是必要的);每当您将文件或子目录添加到work或 `data.

于 2013-01-25T09:33:55.100 回答
0

我有同样的问题。可以通过如下更改/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>

参考: 小问题

于 2018-10-22T10:53:34.520 回答