2017-09-13 51 views
1

我試過谷歌搜索 - 沒有結果。Symfony dev env本地主機和自定義ips

我想讓dev環境默認爲localhost和其他預定義的ips。我試着在./web/app.php第一線use Symfony\Component\HttpFoundation\Request;後如下:

if ($_SERVER['REMOTE_ADDR'] === '127.0.0.1') { 
    require './app_dev.php'; 
    exit; 
} 

但它提供了一個exeption - Compile Error: Cannot redeclare class Symfony\Component\Debug\ErrorHandler。有任何想法嗎?

更新: 我想要什麼。當IP是本地主機時,我希望能夠加載開發環境。

更新2 Symfony的版本 - 3.2

+0

您嘗試更改哪個文件?我不明白你的帖子 –

+0

@ t-n-y更新了問題 – FreeLightman

回答

0

您可以刪除HTTP/1.0 403禁止if語句和

if ($_SERVER['REMOTE_ADDR'] === '127.0.0.1') { 
    $kernel = new AppKernel('dev', true); 
}else{ 
    $kernel = new AppKernel('prod', false); 
} 

替換該行

$kernel = new AppKernel('prod', false); 

也可以更新你的網頁/ .htaccess替換app_dev.php所有的app.php在下面的所有事件中

DirectoryIndex app.php 
RewriteRule^%{ENV:BASE}/app.php [L] 
RedirectMatch 302 ^/$ /app.php/ 
+0

它給了我什麼。使用var的env?一種獲得教義的方法嗎?我不需要它。 – FreeLightman

+0

哎呀...它看起來像我瞭解你的帖子在錯誤的方向..你能再次檢查 – HMagdy

1

一種可行的方法是添加類似的檢查,稍加修改,這樣就可以在use聲明之後添加更多的IPS-:

$env = 'prod'; 
if (in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'], true)) { 
    $env = 'dev'; 
} 

,後來,更改此設置:

$kernel = new AppKernel('prod', false); 

這樣:

$kernel = new AppKernel($env, false); 

這樣app.php會自動在你想要的IP上加載'dev'環境。