![为什么 Apache 会为任何 .lc URL 返回字符“MZ”](https://linux22.com/image/701209/%E4%B8%BA%E4%BB%80%E4%B9%88%20Apache%20%E4%BC%9A%E4%B8%BA%E4%BB%BB%E4%BD%95%20.lc%20URL%20%E8%BF%94%E5%9B%9E%E5%AD%97%E7%AC%A6%E2%80%9CMZ%E2%80%9D.png)
我刚刚在 Windows Server 2016 Datacenter(AWS EC2 实例)上安装了 Apache 2.4。Web 服务器似乎运行正常,我可以访问“http://本地主机/' 并获取“它有效!”页面。
位置:C:\Apache24\
然后我通过将内容解压到以下位置来安装 LiveCode 社区服务器:C:\LiveCode
此文件夹中的可执行文件为“livecode-community-server.exe”
我的站点文件夹位置为:C:\MySite
然后我修改了 httpd 文件如下
将 DocumentRoot 更改为
DocumentRoot "c:/mysite"
将目录指令更改为
<Directory "c:/mysite">
将以下内容添加到 Directory 指令中
Order allow,deny
Allow from all
AddHandler livecode-script .lc
Action livecode-script "/livecode-cgi/livecode-community-server.exe"
添加以下新的 Directory 指令
<Directory "c:/livecode">
Options ExecCGI
Order allow,deny
Require all granted
Allow from all
</Directory>
在“IfModule alias_module”中添加以下内容
ScriptAlias /livecode-cgi/ "c:/livecode/"
保存 httpd 并重新启动 Apache 后,我打开浏览器并转到 URL“http://localhost/test.lc“
浏览器的响应只是两个字符“MZ”-(查看源代码时只返回这两个字符)
在这种情况下,“test.lc”是 C:\MySite 中的一个文件。此响应针对此文件夹中的任何 .lc 文件。此文件夹中的任何 .html 文件均按预期运行。
Apache error.log 中没有条目。access.log 中有以下条目
::1 - - [23/Mar/2017:14:27:01 +0000] "GET /test.lc HTTP/1.1" 200 3
谷歌搜索没有发现任何信息,所以我只能假设这是我漏掉了一些显而易见的东西。任何关于可能发生的事情的帮助或提示都将不胜感激。
*编辑:我忘了提到以下行在 httpd 中是有效的(未注释掉),我推测这就是 CGI 模块加载所需要的全部内容?
LoadModule cgi_module modules/mod_cgi.so
*编辑:我也尝试了以下 ScriptAlias,并得到了完全相同的结果(MZ 返回并且在 access.log 中显示 200 成功代码)
ScriptAlias /livecode-cgi/livecode-community-server.exe "c:/livecode/livecode-community-server.exe"
*编辑:这篇文章似乎是关于同一个问题的(尽管用的是 perl 而不是 LiveCode) https://stackoverflow.com/questions/14792978/perl-apache-perl-script-displayed-as-plain-text
问题似乎是 Apache 2.4 中做出了一些重大更改,导致了一些问题。链接的帖子有帮助吗?再次感谢您的时间
答案1
在与 LiveCode 技术支持交谈后,他们确认 8.1.3 版本存在一些问题,并将从他们的网站上撤回该版本。
我下载了 8.1.2 并且它按预期运行。