2014-05-07 113 views
0

我想將Composer集成到某些Web項目中。因爲我不能假定有人可以訪問/www/htdocs以上的任何內容,所以我的想法是提供一個帶有web項目的composer.phar並使用cronjob觸發更新程序,這樣我就無需做任何更新我的項目。將Composer集成到PHP Web項目中

問題是,要有能力觸發作曲家,它將需要php.exe的路徑,並且不能保證環境變量設置爲Linux服務器。

有沒有辦法讓網絡服務器上的Composer工作不需要訪問php.ini,也不知道php程序的路徑?

+0

也許這是一個愚蠢的問題,但你已經嘗試過嗎?如果是這樣,錯誤是什麼?我預料到,由於PATH將包含PHP的路徑,所以「作曲家更新」不應該給出問題,但這可能是我樂觀的本質。 –

+0

這是真的,但我正在尋找一個始終有效的解決方案。如果我建立了一個其他用戶可以使用的腳本,重要的是我可以確保作曲家每次都能工作。它不應該綁定到PHP的安裝路徑,或者如果設置了php.exe的路徑。這個線程的問題是如何? – user3292653

+1

您提到'php.exe'(僅限Windows),但也提到Linux。你在一起工作? – halfer

回答

1

composer.phar文件應該在爲其正在嘗試運行的用戶獲取可執行標誌時開箱即用,即/path/to/composer.phar將在不添加PHP的情況下工作。在Windows上,打開時.phar文件可能應該與安裝的PHP版本關聯。

但是一件重要的事情是:作曲家不會爲確保不間斷的製作服務做任何事情!這不是它的任務。總是想想如果Composer正在做的事情會發生什麼情況都會失敗。有很多組件可能無法使用,從packagist.org,Github/Bitbucket/younameit開始,在更新過程中意外地抓取破損的發佈版本,將完全禁用更新過程,等等......

想想關於在嘗試添加這種無關注的基於cron的更新步驟時添加的風險。

另一件事是,你必須確保安裝軟件到機器上所需的工具。這意味着你必須至少有ZIP工具可用,tar/gz以及根據你是否安裝分支(你不應該這樣做,使用自動無人看管更新更是如此),你需要安裝Git,Mercurial和SVN生產機器(如果只安裝標籤版本,這也可能是真的)。因此,PHP不僅僅依賴於PHP,至少也是這五種工具。

+0

你說得對,我忘記了。作曲家不會發現錯誤?在我看來,這也應該是一項任務。我想依靠它,如果有錯誤會得到錯誤消息。那麼否則我們不可能忽略? – user3292653

+0

我不會指望Composer在嘗試更新時不會更改內容。由於隨機但很少見的問題 - 例如解壓縮過程中的「文件空間錯誤」,您最終可能會遇到不穩定的供應商目錄樹。請記住,Composer僅處於Alpha狀態,尚未發佈爲最終穩定版本。 – Sven