簡體   English   中英

Windows中的PHP文件在Ubuntu中不起作用

[英]PHP files from windows don't work in Ubuntu

我已經將在Windows中開發的PHP文件復制到ubuntu,但是當我想在ubuntu上瀏覽這些文件時,它們不會執行任何操作。 為什么呢?

編輯

沒有錯誤消息,我在瀏覽器中打開了它們,但是似乎它們沒有任何代碼。 例如,如果文件的代碼<?php echo "hello"; ?> <?php echo "hello"; ?>此文件不執行任何操作。

如果創建一個新文件,它可以正常工作,但是當我復制類似文件時,它什么也沒做。

另外,您可能需要將行尾從Windows轉換為Unix格式。

您可以在Notepad ++中執行此操作。

Edit>EOLConversion>Unix Format

可能是因為您沒有適當的基礎結構來本地運行PHP文件,即在WAMP的情況下: http ://www.wampserver.com/phorum/read.php?2,44101,44101,您可能需要安裝LAMP或類似產品。 很難確定是否還有其他細節。

為了使php文件在Unix / Linux下自動運行,需要做兩件事:

  1. 該文件必須是可執行的
  2. 該文件必須有一個有效的“ hashbang”行作為文件的第一行。

從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從文件中刪除回車符。

使用ls -la檢查文件權限。 Apache用戶應該可以讀取它們(標准情況下為www-data )。

嘗試運行chmod -R 755 /path/to/website ,看看它是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM