2011-12-04 58 views
0

這是一個很noob問題。我基本上只是試圖運行Silex的「hello world」。我已經安裝在我的目錄中的文件silex.phar,建立.htaccess文件這樣:Silex 500錯誤關閉蝙蝠

<IfModule mod_rewrite.c> 
    Options -MultiViews 

    RewriteEngine On 
    #RewriteBase /projects/silex/ ###--> commented out because file is in root dir. <--## 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 
</IfModule> 

,然後在index.php文件運行的這兩行代碼:

require_once __DIR__.'/silex.phar'; 

$app = new Silex\Application(); 

我收到500內部服務器錯誤。 (「文件不存在」)

我在Linux上運行php 5.3.8。

有沒有我應該找的PHP設置?

+3

查找到'error.log'爲實際的錯誤信息。 – mario

+0

錯誤是「文件不存在」... –

+0

那麼,因爲只有你知道缺少文件的名稱在這一點上,你必須自己解決這個問題。 – mario

回答

1

原來有一個叫做phar-stub bug的bug。它會告訴你,無法找到Silex \ Application。一種解決方法是使用以下包括行:

require_once 'phar://'.__DIR__.'/silex.phar/autoload.php'; 

source

+0

你可以檢查PHP'detect_unicode'設置是否啓用嗎?如果是,可以禁用它(將其設置爲「Off」),然後再次嘗試而不使用'phar://'?乾杯。 – igorw

+0

@ igor2這似乎工作。我對你有另一個問題......我似乎在使用DoctrineExtension(provider)時遇到了很多麻煩。當我運行這個使用示例(http://silex.sensiolabs.org/doc/providers/doctrine.html)時,出現錯誤「Class'PDO'/ home/hupcap/public_html/projects/silex/vendor中找不到第32行的「/doctrine-dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php」你以前聽說過嗎?我從github上的fabpot的silex文件夾複製了所有擴展文件(https://github.com/fabpot/Silex) –

+0

您不需要複製擴展文件,它們包含在phar中。你得到的錯誤是因爲你沒有PHP PDO擴展。你必須啓用/安裝它,這是一個PHP核心擴展。 – igorw