php
  • apache
  • command-line
  • putty
  • 2016-10-21 66 views 1 likes 
    1

    膩子命令行我寫在膩子運行PHP給「無法打開輸入文件」

    /usr/bin/php /var/www/html/folder/file.php 
    

    也可以嘗試

    php /var/www/html/folder/file.php 
    

    均可以得到「無法打開輸入文件」

    操作系統是UNIX操作系統是UNIX

    PHP腳本:

    <?php 
    
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; 
    $headers .= 'From: CRON'; 
    
    mail('[email protected]','CRON',"<b>THIS IS SIMULATION TEST</b>",$headers); 
    
    
    ?> 
    
    +0

    不好意思問這個愚蠢的問題,但是你確認該文件實際上存在嗎?另外,也許嘗試訪問使用相對路徑。 –

    +0

    是)。除此之外,我可以通過瀏覽器運行它 –

    +0

    那麼使用相對路徑呢?也就是說,如果你cd到/ var/www/html /文件夾並從那裏運行它。 –

    回答

    2

    這時候你有PHP的cron文件中的Windows換行符結尾(\ r \ n)的,而不是Unix的風格(\ n)有時會發生。

    修復:轉換行結尾爲Unix風格

    dos2unix /var/www/html/folder/file.php

    sed -i 's/\r//' /var/www/html/folder/file.php

    使用編輯器如Notepad++轉換EOL:

    1. 在記事本+ +中打開該文件
    2. 雙擊右下角
    3. 變更爲「UNIX/OSX格式」
    4. 「DOS/Windows的」
    5. 保存,上傳和測試

    請記住,爲PHP文件和持有cron命令的文件執行此操作。

    +0

    我沒有任何換行符結尾。只需要1行文件地址 –

    +0

    您是否在.php文件的頂部有#!/ usr/bin/php行? – c4n

    +0

    我的意思是PHP文件中的換行符結束符,而不是命令行中的結尾符號。 – c4n

    0

    使用相對路徑。也就是說,如果你cd到/ var/www/html /文件夾並從那裏運行它。

    +0

    我需要通過絕對路徑運行它。由於它將由cronjob運行 –

    +0

    我明白了,我認爲@Tarlan在評論中回答。 –

    +0

    現在,它是))))) –

    相關問題