我已经将在windows中开发的PHP文件复制到ubuntu,但是当我想在ubuntu上浏览这些文件时,它们不会执行任何操作。为什么?
没有错误消息,我在浏览器中打开它们,但似乎他们没有任何代码。例如,如果文件的代码为<?php echo "hello"; ?>
,则此文件不会执行任何操作。
如果我创建一个新文件,它可以正常工作,但是当我复制一个类似的文件时,它什么也没做。
答案 0 :(得分:1)
此外,您可能需要将行结尾从Windows格式转换为Unix格式。
您可以在Notepad ++中执行此操作。
Edit>EOLConversion>Unix Format
答案 1 :(得分:0)
这可能是因为您没有必要的基础设施来在本地运行PHP文件,例如在WAMP:http://www.wampserver.com/phorum/read.php?2,44101,44101的情况下,您可能需要安装LAMP或类似的。很难确定更多的细节..
答案 2 :(得分:0)
为了让php文件在Unix / Linux下自动运行,它需要两件事:
从Windows传输到Linux的文件可能没有正确的权限,而且几乎肯定没有正确的hashbang行。使用'ls -l'和chmod查看和更改权限(我将此作为练习留给读者)。
php的hashbang行在我的Ubuntu框中看起来像这样:
#!/usr/bin/php
所以你的例子实际上是这样的:
#!/usr/bin/php
<?php echo "hello"; ?>
可以使用
找到实际路径command -v php
在将文件从Windows传输到unix时,你必须考虑到hashbang行的一个微妙问题,实际上它是提到的天际线:Windows使用'\ r \ n'换行组合,unix仅使用'\ n'。这意味着在Windows框中编辑的文件中的hashbang行实际上看起来像这样:
#!/usr/bin/php\r
你不会看到'\ r'字符(毕竟它是一个回车符),但操作系统会尝试执行'php \ r'而不是'php'...所以是的,你确实有使用dos2unix或frdos从文件中删除回车。
答案 3 :(得分:0)
使用ls -la
检查文件权限。它们应该是Apache用户可读的(在标准情况下为www-data
)。
尝试运行chmod -R 755 /path/to/website
,看看它是否有效。