【问题标题】:JavaScript not working - apache2 + UbuntuJavaScript 不工作 - apache2 + Ubuntu
【发布时间】:2011-08-04 18:35:17
【问题描述】:

设置:Apache/2.2.14 (Ubuntu) PHP/5.3.2-1ubuntu4.7 配置了 Suhosin-Patch

/etc/debian_version 显示“squeeze/sid”。

将 javascript ts_picker.js 文件复制到 /usr/lib/cgi-bin(apache conf 文件中配置的 CGI 目录)。我所有的 PHP 程序也都在同一个目录中。

尝试运行一个简单的 PHP 脚本,该脚本引用 <HEAD> 中的 <script src> 标记内的 ts_picker.js 文件。

但没有 javascript 工作。 Apache error.log 显示:

[Wed Apr 13 19:05:41 2011] [error] [client 10.0.0.37] (8)Exec format error: exec of '/usr/lib/cgi-bin/ts_picker.js' failed, referer: http://10.0.27.200/cgi-bin/js.php
[Wed Apr 13 19:05:41 2011] [error] [client 10.0.0.37] Premature end of script headers: ts_picker.js, referer: http://10.0.27.200/cgi-bin/js.php

尝试检查 .js 的权限:它们是 755,就像我所有的 PHP 脚本一样。

尝试在 /etc/apache2 下递归地 grepping 'javascript' 和 'js',除了 DEFLATE 条目外什么也没找到:

/etc/apache2/mods-available/deflate.conf:          # AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
/etc/apache2/mods-enabled/deflate.conf:          # AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript

此外,如果我在浏览器上打开 PHP 的 HTML 输出源并单击此处的 ts_picker.js 链接,则会显示 500 内部错误。

我真的被困在这一点上,无能为力。任何帮助深表感谢。提前致谢。

【问题讨论】:

  • 这属于serverfault.com。这是一个服务器配置问题,不是编程问题。

标签: php javascript apache2


【解决方案1】:

Javascript 文件是静态提供的资产——它们不是由您的网络服务器执行,而是由客户端浏览器执行。因此它们不应设置为可执行文件,也不应位于 /cgi-bin 之类的脚本文件夹中:因此 apache 会在请求时尝试执行这些 js 文件,而不是仅仅将它们返回。您需要将您的 js 文件移动到静态资源所在的任何位置,并将它们设置为只读。

【讨论】:

  • 理查德,这很清楚。感谢您的解释。我已将 .js 移至另一个文件夹,一切正常。
  • @KrishnaChaitanya - 如果我的回答解决了你的问题,请觉得标记正确:)
猜你喜欢
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 2018-11-10
  • 1970-01-01
  • 2013-10-20
  • 1970-01-01
  • 2018-01-20
相关资源
最近更新 更多