2016-05-12 50 views
0

即使我有相同的文件和文件夾結構,PHP線路在本地主機上正常工作,但不在活的heroku服務器上。文件包括不能在heroku服務器上工作(沒有這樣的文件或目錄)

require(APPPATH . '../../vendor/mpdf/mpdf/mpdf.php'); 

我得到以下Heroku的現場服務器上的錯誤是:

PHP Fatal error: require(): Failed opening required 'application/../../vendor/mpdf/mpdf/mpdf.php' (include_path='.:/app/.heroku/php/lib/php') in /app/CI/application/libraries/PDFLib.php on line 5 

花了很多時間試圖找出什麼可能是這背後的原因,任何幫助將不勝感激。

+0

你在使用[Composer](https://getcomposer.org/)嗎? – Chris

+0

是的,我正在使用作曲家,我發現我的問題的解決方案。 – Ali

回答

0

我剛剛跑過作曲家更新與我的分支。它最終更新composer.lock文件並添加「mpd/mpdf」和「setasign/fpdi」程序包

所以發生的是,我的composer.lock文件不包含mpdf或fpdi。當Heroku嘗試構建應用程序時,它會修改「供應商」目錄以匹配我的composer.lock文件指定的內容。

而且我composer.lock文件指定MPDF和FPDI不應該是應用

的一部分。然而,這是一個從composer.json文件,該文件指定MPDF和FPDI應該是應用程序的一部分不同。

+0

['composer.lock'應該與'composer.json'保持同步,並且這兩個文件都應該被提交給版本控制](https://getcomposer.org/doc/01-basic-usage.md#composer-鎖定的鎖文件)。 – Chris

相關問題