perl - 如果 CGI 脚本以 #!/usr/bin/env perl 开头,则 HTTP 错误 404(未找到)
问题描述
我有一个内容不重要的 CGI 脚本。从网络执行时它工作正常,但前提是第一行是
#!/usr/bin/perl -w
如果我将其更改为
#!/usr/bin/env perl
...然后我收到 HTTP 错误 404(未找到)。
从控制台执行时,脚本在这两种情况下都能正常工作。怎么了?
编辑
我通过在脚本开头添加以下行解决了我的问题:
#!/usr/bin/env perl
use lib '/usr/local/lib64/perl5';
use lib '/usr/local/share/perl5';
use lib '/usr/lib64/perl5/vendor_perl';
use lib '/usr/share/perl5/vendor_perl';
use lib '/usr/share/perl5';
use lib '/root/perl5/lib/perl5';
显然路径存在一些问题,我不明白为什么,因为当我从控制台执行脚本时,即使不使用use lib
.
解决方案
我认为这些问题之间没有任何关系,或者解决方案实际上可以解决任何问题。如果 Apache 找不到脚本,它仍然无法通过添加库路径来找到它。另一方面,如果运行脚本有任何问题,服务器将返回 500 状态,而不是 404。在任何情况下,最好检查日志以找出确切的问题。
推荐阅读
- kubernetes - 当提到 istio 或 kubernetes 时,“本地”是什么意思?
- node.js - nodejs中的Winston内存泄漏问题
- windows - React Native 应用程序是否能够在 Windows 服务器上运行?
- arrays - Excel 数组填充了 listobject 列范围的非空白值
- sql-server - DBCC 命令是存储过程还是函数?
- 3d - 在 python 中从 2D 图像的 z 堆栈制作 3D 模型
- sql - Postgres - 如何在表结构查询中检索默认值
- python-3.x - 如何在 AWS 中使用 S3 数据运行 python 脚本
- react-redux - 使用“redux-thunk”实现“useDispatch”钩子的问题
- python - 使用模式中的 ascii 数字打印每个字母