Php windows don';我不能在Ubuntu中工作
我已经将windows中开发的PHP文件复制到ubuntu中,但当我想在ubuntu上浏览这些文件时,它们不会执行任何操作。为什么? 编辑 没有错误消息,我在浏览器中打开了它们,但是如果它们没有任何代码的话。例如,如果一个文件的代码是Php windows don';我不能在Ubuntu中工作,php,ubuntu,Php,Ubuntu,我已经将windows中开发的PHP文件复制到ubuntu中,但当我想在ubuntu上浏览这些文件时,它们不会执行任何操作。为什么? 编辑 没有错误消息,我在浏览器中打开了它们,但是如果它们没有任何代码的话。例如,如果一个文件的代码是,那么这个文件什么都不做 如果我创建一个新文件,它可以正常工作,但是当我复制一个类似的文件时,它什么也不做。这可能是因为您没有必要的基础设施在本地运行PHP文件,例如,在WAMP:,您可能需要安装或类似的软件。很难确定是否有其他细节。这可能是因为您没有必要的基础设施
,那么这个文件什么都不做
如果我创建一个新文件,它可以正常工作,但是当我复制一个类似的文件时,它什么也不做。这可能是因为您没有必要的基础设施在本地运行PHP文件,例如,在WAMP:,您可能需要安装或类似的软件。很难确定是否有其他细节。这可能是因为您没有必要的基础设施在本地运行PHP文件,例如,在WAMP:的情况下,您可能需要安装或类似的工具。要想在Unix/Linux下自动运行php文件,需要两件事:
#!/usr/bin/php
因此,您的示例实际上如下所示:
#!/usr/bin/php
<?php echo "hello"; ?>
#!/usr/bin/php\r
在将文件从windows传输到unix时,hashbang行有一个微妙的问题,您必须考虑到这一点,实际上skyline也提到了这一点:windows使用“\r\n”行馈送组合,unix只使用“\n”。这意味着在windows框中编辑的文件中的hashbang行实际上如下所示:
#!/usr/bin/php
<?php echo "hello"; ?>
#!/usr/bin/php\r
您将看不到“\r”字符(毕竟是回车符),但操作系统将尝试执行“php\r”而不是“php”。。。因此,是的,您必须使用dos2unix或frdos从文件中删除回车符。为了让php文件在Unix/Linux下自动运行,需要两件事:
#!/usr/bin/php
因此,您的示例实际上如下所示:
#!/usr/bin/php
<?php echo "hello"; ?>
#!/usr/bin/php\r
在将文件从windows传输到unix时,hashbang行有一个微妙的问题,您必须考虑到这一点,实际上skyline也提到了这一点:windows使用“\r\n”行馈送组合,unix只使用“\n”。这意味着在windows框中编辑的文件中的hashbang行实际上如下所示:
#!/usr/bin/php
<?php echo "hello"; ?>
#!/usr/bin/php\r
您将看不到“\r”字符(毕竟是回车符),但操作系统将尝试执行“php\r”而不是“php”。。。因此,是的,您确实必须使用dos2unix或frdos从文件中删除回车符。此外,您可能还需要将行尾从Windows转换为Unix格式 您可以在记事本++中执行此操作
Edit>EOLConversion>Unix格式
此外,您可能需要将行尾从Windows格式转换为Unix格式
您可以在记事本++中执行此操作
Edit>EOLConversion>Unix格式
使用ls-la
检查文件权限。Apache用户应该可以读取这些数据(在标准情况下为www-data
)
尝试运行
chmod-R 755/path/to/website
,看看它是否有效。使用ls-la
检查文件权限。Apache用户应该可以读取这些数据(在标准情况下为www-data
)
试着运行
chmod-R 755/path/to/website
,看看它是否有效。你说的“他们什么都不执行”是什么意思?发生了什么事?您是在控制台中还是在web服务器中执行它们?您收到了什么错误消息?您需要配置Web服务器以执行这些文件。您所说的“它们不执行任何操作”是什么意思?发生了什么事?您是在控制台中还是在web服务器中执行它们?您收到了什么错误消息?您需要配置Web服务器以执行这些文件。