在Linux的shell环境下执行[user@hostname filename]#./index.php文件时,经常会报这种错误:
-bash: ./index.php: /usr/local/php5/bin/php^M: bad interpreter: No such file or directory
查了下原因才知道,原来是不同系统编码格式引起的。在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
我在windows下使用EditPlus远程连接到Linux上进行编辑文件
#! /usr/local/php/bin/php
<?php
echo 'this is test';
?>
执行方式:./index.php
结果报错:
-bash: ./index.php: /usr/local/php5/bin/php^M: bad interpreter: No such file or directory
解决问题的办法:
1、在windows下直接转换。
EditPlus下修改文件类型的位置:点击菜单栏上的 文档-> 文件格式->更改文件类型 选择UNIX,默认是PC,也可以再参数配置里面事先改好,如下图

2、在Linux下直接转换
a、Vim编辑index.php文件
b、利用如下命令查看文件格式 :set ff 或 :set fileformat
c、可以看到如下信息 fileformat=dos 或 fileformat=unix 若是unix的就不用改了
d、利用如下命令修改文件格式 :set ff=unix 或 :set fileformat=unix
e、:wq (存盘退出)
再执行一下,OK。
备注:一般在shell环境下执行文件是命令 + 文件,如/usr/local/php/bin/php ./index.php
若要直接用./index.php 就按我上述的方法配置好
1、确保文件的可执行性,#chmod 775 index.php
2、将执行命令写在文件里面
本文介绍了解决在Linux环境下执行从Windows系统编辑的PHP脚本时出现的错误方法。错误通常由不同系统间的编码格式差异引起,文中提供了两种解决途径:一是在Windows下直接转换文件格式;二是在Linux环境下通过Vim编辑器进行转换。
33万+

被折叠的 条评论
为什么被折叠?



