Fondamentalmente, il file è stato rotto in alcuni punti lungo la strada da Windows7 a Ubuntu.
Come posso guardare una rappresentazione binaria del file per vedere cosa è successo?
Lo script della row di command PHP deve ancora avere l'apice di <?php
in loro.
#!/usr/bin/php echo "hi mom!\n";
non functionrà, deve essere
#!/usr/bin/php <?php echo "hi mom!\n";
Questo perché non esiste un "script php". Ci sono solo vari file di text che contengono blocchi di codice PHP all'interno di essi. Anche in modalità CLI, PHP si aspetta / richiede di vedere alless un block <?php
. Altrimenti l'interpnetworking non eseguirà il kick in e non vedrà alcun codice, anche se hai dichiarato che è uno script PHP con lo shebang.
La modalità cli PHP è fondamentalmente un ripensamento postulato. PHP è iniziato come parser di script CGI lato server e non è stato modificato fondamentalmente da quella modalità.
Hai eseguito con ./
?
IE:
./myscript.php
Prova ad aprirlo con vi (m) e vedrai il problema. È un cattivo interpnetworking (^ M) alla fine di each row. Prova a convertirlo (fromdos o dos2unix), questo risolve il problema 😉
La mia ipotesi è che i file creati su Windows abbiano una BOM che confonde le cose.
Quando si utilizza Notepad ++ su un computer Windows, è ansible modificare il carattere EOL da Windows a UNIX andando a
Modifica> Conversione EOL> Formato UNIX
Controlla nuovamente la barra di stato di Notepad ++ in basso a destra per confermare la selezione.
Dopo aver salvato ed eseguito dalla row di command, dovresti trovare che la direttiva interpnetworkingr PHP è ora riconosciuta correttamente.