2014-03-05 23 views
0

我正在使用php終端模擬器,它工作,但它不使用任何.bashrc或.bash_profile文件。所以別名到命令不工作。即時通訊共享服務器上有php5.4和php 5.2,所以當我從終端模擬器運行命令它使用錯誤的PHP版本,但如果我實際上ssh和運行命令它使用正確的版本。我需要使用PHP 5.4,但我不知道如何做到這一點。php cli和bashrc文件?

香港專業教育學院確信,IM實際上可以使用bash

/bin/sh -> /bin/bash 

這是我的工作(通過SSH)的.bashrc

alias 'php=/usr/local/php54/bin/php' 
export PATH=~/bin/:/usr/local/php54/bin/:$PATH 

但是當我登錄到我的終端仿真器,回聲$ PATH產生

/usr/local/bin:/usr/bin:/bin 

我使用system()來模擬,但我也嘗試過exec()和shell_exec

+0

我用盡( 'PATH =在/ usr/local/bin目錄/ php54 /箱')',但沒有工作 – brandenwagner

+0

是一個不同的用戶下運行比,你有.baserc終端仿真器/ .bash_profile設置設置?另外,您可能需要重新啓動模擬器才能加載更改。當您設置用戶設置時,您通常必須註銷並返回以使更改生效。至少,以我的經驗!它可能取決於操作系統。 –

+0

模擬器作爲正確的用戶運行,這是我想到的第一件事......最初它是作爲www而不是我的用戶運行的。我試圖重新啓動模擬器沒有運氣。 – brandenwagner

回答

1

如果您的問題只是用PHP(和你不關心實際讀取.bash_profile文件),那麼你可以調用使用的完整路徑的PHP程序:

$ /path/to/php somefile.php 

要確定這是當你使用SSH,你在執行「PHP」二進制文件的路徑,只需要運行:

$ which php 

會產生作爲輸出的完整路徑(大概是「在/ usr /本地/ php54 /斌/ PHP 「)

+0

所以這個工作,但它只適用於一個PHP二進制。我有其他的別名,如作曲家,紅寶石,蟒蛇,所以我不想輸入完整路徑爲每一個這些,這就是爲什麼我試圖設置路徑或閱讀.bashrc文件 – brandenwagner

+0

我甚至不知道你正在嘗試做什麼是可能的。只有選項可以創建一個外部shell腳本(以#!/ bin/bash開頭)並從PHP(「chmod + x script」,然後是「./script」)執行它。 只要輸入每個命令的完整路徑將是最容易的事情,但是,在我看來(你可以隨時讓你的PHP代碼用「/ usr/bin/composer」替換「composer」或其他任何東西) – Qualcuno

+0

那就是我最終做的。我創建了一個定義完整路徑的「快捷方式列表」,以便自動替換它。 – brandenwagner

2

I不要認爲$ path變量對於你正在做的事情來說很重要。

如果你在/ usr/local/php54/bin /中安裝了php 5.4,你應該可以像這樣運行你的CLI;使用`運行putenv

/usr/local/php54/bin/php -f /path/to/php-file-to-run.php