2015-02-24 234 views
1

每當我的代碼有錯誤..我在瀏覽器上得到的所有內容都是空白頁。沒有錯誤。沒有。Laravel錯誤無法正常工作

我試過在config/app.php中將debug轉換爲true。我試過運行php artisan optimize。沒有不同。我試過this post,這是我的命令行產生的錯誤;

The following exception is caused by a lack of memory and not having swap configured 
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details 
PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:974 
Stack trace: 
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 974, Array) 
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(974): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array) 
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(784): Symfony\Component\Console\Application->getSttyColumns() 
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(745): Symfony\Component\Console\Application->getTerminalDimensions() 
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(675): Symfony\Component\Console\Application->getTerminalWidth() 
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 974 

所以這裏是另一個問題來處理...我仍然沒有錯誤顯示。我只想顯示一些有意義的錯誤...我還能嘗試什麼?

* UPDATE *

我跟着this guide如在錯誤消息中建議的上方。我得到了一個非常積極的迴應;

1024+0 records in 
1024+0 records out 
1073741824 bytes (1.1 GB) copied, 1.6144 s, 665 MB/s 

所以我試着再次運行composer update。我得到了這個迴應;

Loading composer repositories with package information 
Updating dependencies (including require-dev) 
    - Removing laravel/framework (v5.0.5) 
    - Installing laravel/framework (v5.0.6) 
    Downloading: 100% 

    - Installing filp/whoops (1.1.3) 
    Loading from cache 

Writing lock file 
Generating autoload files 
Generating optimized class loader 
Compiling common classes 
Compiling views 

所有不錯,對嗎?但是,當我加載腳本時出現錯誤時,我仍然會看到空白頁。爲什麼??

回答

1

你得到這個錯誤,因爲作曲家跑出的內存(它發生),如何解決這個問題,看到這樣的例子:Composer update trouble

你可以嘗試更改內存限制,或者如果你在本地發展並且您在服務器上發生錯誤;將composer.lock -file保存在你的git-repository中(或者你用來部署項目的地方)。

現在,您可能會得到白頁,因爲框架實際上沒有加載(所以"debug" => true甚至沒有被讀取)。

+0

當沒有錯誤時,框架加載正常... – mikelovelyuk 2015-02-25 12:20:15

+0

它告訴我運行這個命令'php -dmemory_limit = 1G /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar update',但是我沒有'Cellar'目錄在/ usr/local' - 我該怎麼辦? – mikelovelyuk 2015-02-25 12:28:16

+0

這是您作曲家安裝位置的路徑。如果你沒有使用Homebrew(如Cellar所示),它可能駐留在'/ usr/local/bin /'中。如果你有一個專屬於你的項目的composer.phar,你應該可以在你的工作目錄中使用'php -dmemory_limit = 1G composer.phar update'。 – Marcus 2015-02-25 13:17:23

1

在這種情況下,你克隆了一個項目laravel並試圖「作曲更新」,你首先需要運行「作曲家安裝」,而不是

0

在我的情況,我在我的composer.json的predis/predis是REDIS的一攬子計劃。由於我無法安裝第一個REDIS,我認爲這是導致我收到錯誤的主要原因「以下異常是由內存不足造成的,未配置交換」。我剛剛刪除了我的composer.json上的predis/predis,一切都很順利。

3

第一嘗試這個命令
/bin中/ DD如果=的/ dev/= /變種/ swap.1 BS = 1M的零計數= 1024
/sbin目錄/再用mkswap /var/swap.1
/sbin目錄/ swapon /var/swap.1
sudo作曲家更新

0

這意味着作曲家沒有足夠的記憶。這可能會發生,因爲VPS內存不足並且沒有啓用交換空間。您可以使用下面的文章啓用交換: https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors

但在我的情況下,我有足夠的內存和交換。一個簡單的重新啓動修復它您可以嘗試重新啓動,特別是如果您的服務器長時間處於開啓狀態。