我想安装自由电子(https://github.com/free-electrons/elixir) 在Windows上用Bash搜索Linux内核源代码,我按照github的步骤操作,但是Apache2运行出错(Internal Server Error),找了很多资料,还是解决不了,求助,谢谢!
步骤如下(Windows 上的 Bash,Windows 版本 14393)
cd /usr/local & git clone https://github.com/free-electrons/elixir
配置环境
LXR_REPO_DIR & LXR_DATA_DIR
安装 apache2
# apt-get install apache2
在 elixir 目录中运行命令
./script.sh list-tags
&./update.py
配置 apache2 如下
在/etc/apache2/apache2.conf
<Directory /usr/local/elixir/http/>
Options +ExecCGI
AllowOverride None
Require all granted
SetEnv PYTHONIOENCODING utf-8
SetEnv LXR_PROJ_DIR /srv/elixir-data
</Directory>
AddHandler cgi-script .py
在/etc/apache2/sites-enabled
<VirtualHost *:80>
ServerName localhost
DocumentRoot /usr/local/elixir/http
RewriteEngine on
RewriteRule "^/$" "/linux/latest/source" [R]
RewriteRule "^/.*/(source|ident|search)" "/web.py" [PT]
</VirtualHost>
我使用a2enmod
命令来 insmod 一些 mod,然后启动 apache2
# service apache2 start
我使用 chrome 访问127.0.0.1
,apache2 显示消息
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at [no address given] to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Apache/2.4.7 (Ubuntu) Server at 127.0.0.1 Port 80
在/var/log/apache2/error.log
[Wed Jun 14 09:12:55.380730 2017] [http:error] [pid 161:tid 139685623957248] [client 127.0.0.1:3486] AH02429: Response header name '<!--' contains invalid characters, aborting request
[Wed Jun 14 09:12:55.380730 2017] [cgid:error] [pid 161:tid 139685623957248] (-102)Unknown error -102: [client 127.0.0.1:3486] AH02550: Failed to flush CGI output to client
我的python3版本是3.5.2,apache2版本是2.4.7
我该如何解决这个问题呢,请帮帮我,谢谢!
答案1
你有没有成功过?我遇到了同样的问题,最终发现 web.py 产生的错误格式不符合 HTML 格式,因此无法在 Web 浏览器中看到它们。我还发现,如果你设置了正确的环境变量,你可以直接运行 web.py,这样你就可以看到错误了。
这是我所做的:
PYTHONIOENCODING=utf-8
LXR_PROJ_DIR=/srv/elixir-data
SCRIPT_URL=/linux/latest/source
export SCRIPT_URL LXR_PROJ_DIR PYTHONIOENCODING
./web.py
请记住,LXR_PROJ_DIR 需要包含您的项目存储库和数据。例如,如果您的项目是“linux”(如上所示),您应该有以下目录:
LXR_REPO_DIR=/srv/elixir-data/linux/repo # this is where your git repository should be
LXR_DATA_DIR=/srv/elixir-data/linux/data # this is where update.py put the .db files
希望这有帮助!