2014-04-11 114 views
-1

你好我有我的Apache服務器正常工作。但是,從命令行執行php腳本時(例如/usr/bin/php file.php),即使在web目錄中執行PHP時,它也只是將我的腳本的源代碼回顯給我。任何人都知道如何解決這個問題?PHP不在命令行執行

+0

難道你沒有用'cat'改變你的'php'? –

+0

你確定可執行的php文件存在於'usr/bin/php'中嗎?你有沒有嘗試創建批處理文件並運行你的代碼? – Javad

+1

檢查此:'php <<<「<?php echo 1;」' –

回答

0

在你過去的問題中,你似乎更喜歡使用短打開標籤(<?),所以這可能是問題所在。嘗試,而不是運行此:

/usr/bin/php -d short_open_tag=yes file.php 

如果一切正常,那麼你現在的配置已經short_open_tag的值爲禁用。你將不得不編輯你的CLI配置文件來改變它。您可以使用此配置文件的位置:

/usr/bin/php -i | grep php.ini 

你應該看到:

Configuration File (php.ini) Path => /etc/php5/cli 
Loaded Configuration File => /etc/php5/cli/php.ini 

編輯通過「加載的配置文件」中列出的文件。與該行:

short_open_tag = Off 

應設置爲On

1

命令行腳本仍然需要至少有<?php切換到PHP模式。請記住,真的沒有PHP腳本這樣的東西。只有其中包含<?php ... ?>代碼塊的文件。

所以,像

#!/usr/bin/php 

echo 'hello world!'; 

實際上輸出

echo 'hello world!'; 

,因爲沒有實際的PHP代碼在那裏。只有一些文字看起來像php代碼。你需要有

#!/usr/bin/php 
<?php 

echo 'hello world!'; 

,然後你會得到預期的

hello world! 

作爲輸出。如果沒有<?php,php解釋器將永遠不會「切換」到實際的PHP模式,並將文件中的所有文本視爲純文本輸出。