python脚本放到linux的cgi-bin下出现Premature end of script headers问题

17 篇文章 0 订阅
17 篇文章 0 订阅
在本地编写了一个py接口文件,放到本地apache的cgi-bin目录下,访问接口没有问题
可是当传到linux服务器上的apche的cgi-bin目录时,却报(2)No such file or directory: exec of '/usr/local/apache_2.0.63/cgi-bin/tmgr/ReportCommon.py' failed
[Thu Sep 05 10:58:17 2013] [error] Premature end of script headers: ReportCommon.py错误

google了一番,有说是脚本权限问题,于是把脚本的权限改为0755,可结果还是不行
最后发现是windows下文件和linux下文件的换行符表示不一样的问题。

于是在linux上用vi编辑脚本,使用命令:set ff=unix把换行符换成unix方式的换行符就正常了

其他编辑器也提供了工具将文件换行符进行转化的,如Nodepad++的 编辑->档案格式转换就可以将换行转成windows、unix、mac的方式

在此普及一下换行符知识:

Dos和windows采用回车+换行CR/LF表示下一行, 
而UNIX/Linux采用换行符LF表示下一行,
苹果机(MAC OS系统)则采用回车符CR表示下一行.
CR用符号’r’表示, 十进制ASCII代码是13, 十六进制代码为0x0D; 
LF使用’n’符号表示, ASCII代码是10, 十六制为0x0A.
所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示, 而UNIX和苹果平台上换行则是使用0a或0d一个字节表示.
一般操作系统上的运行库会自动决定文本文件的换行格式. 如一个程序在windows上运行就生成CR/LF换行格式的文本文件,而在Linux上运行就生成LF格式换行的文本文件.
在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题, 特别是在编辑程序代码时. 有时候代码在编辑器中显示正常, 但在编辑时却会因为换行符问题而出错.
很多文本/代码编辑器带有换行符转换功能, 使用这个功能可以将文本文件中的换行符在不同格式单互换.
在不同平台间使用FTP软件传送文件时, 在ascii文本模式传输模式下, 一些FTP客户端程序会自动对换行格式进行转换. 经过这种传输的文件字节数可能会发生变化. 如果你不想ftp修改原文件, 可以使用bin模式(二进制模式)传输文本.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值