2016-07-29 76 views
1

我已經設置了一個臨時環境(uat)。意圖是將所有電子郵件重定向到一個電子郵件地址,或者最壞的情況禁用電子郵件功能。 我的問題是,儘管進行了以下設置,但應用程序仍在發送電子郵件,因爲它應該在prod環境中。儘管disable_delivery或delivery_address Swiftmailer仍然發送電子郵件

# config_uat.yml 
imports: 
    - { resource: config.yml } 

monolog: 
    handlers: 
     main: 
      type:   fingers_crossed 
      action_level: error 
      handler:  nested 
     nested: 
      type: stream 
      path: "%kernel.logs_dir%/%kernel.environment%.log" 
      level: debug 

swiftmailer: 
    transport:  smtp 
    host:   127.0.0.1 
    port:   25 
    encryption:  null 
    sender_address: [email protected] 
    logging:  "%kernel.debug%" 
    delivery_address: '[email protected]' 
    disable_delivery: true 

和:

#config.yml 
imports: 
    - { resource: parameters.yml } 
    - { resource: security.yml } 
    - { resource: "@psmdbBundle/Resources/config/services.yml" } 
    - { resource: "@psmdbBundle/Resources/config/version.yml" } 

# Swiftmailer Configuration 
swiftmailer: 
    transport:  smtp 
    host:   127.0.0.1 
    port:   25 
    encryption:  null 
    sender_address: [email protected] 
    logging:  "%kernel.debug%" 

[編輯]

我已經建立了app_uat.php。它是基於app.php:

<?php 

use Symfony\Component\ClassLoader\ApcClassLoader; 
use Symfony\Component\HttpFoundation\Request; 

$loader = require_once __DIR__.'/../app/bootstrap.php.cache'; 

// Use APC for autoloading to improve performance. 
// Change 'sf2' to a unique prefix in order to prevent cache key conflicts 
// with other applications also using APC. 
/* 
$loader = new ApcClassLoader('sf2', $loader); 
$loader->register(true); 
*/ 

//require_once __DIR__.'/../app/AppKernel.php'; 
//require_once __DIR__.'/../app/AppCache.php'; 

$kernel = new AppKernel('uat', false); 
$kernel->loadClassCache(); 
//$kernel = new AppCache($kernel); 
$request = Request::createFromGlobals(); 
$response = $kernel->handle($request); 
$response->send(); 
$kernel->terminate($request, $response); 

[編輯2] 我已經檢查和督促環境中運行,而不是UAT。 我不能設法設置我的Apache配置運行UAT ......這就是:

<VirtualHost *:80> 
    ServerName uat.gpsc.domain.com 

    DocumentRoot /var/www/vhosts/uat.gpsc.domain.com/current/web 
    <Directory /var/www/vhosts/uat.gpsc.domain.com/current/web> 
     AllowOverride All 
     Require all granted 
     Allow from All 

     <IfModule mod_rewrite.c> 
      Options -MultiViews 
      RewriteEngine On 
      RewriteCond %{REQUEST_FILENAME} !-f 
      RewriteRule ^(.*)$ app_uat.php [QSA,L] 
     </IfModule> 

    </Directory> 

    ErrorLog /var/log/apache2/uat.project_error.log 
    CustomLog /var/log/apache2/uat.project_access.log combined 

</VirtualHost> 

回答

1

您是通過app_uat.php訪問的網站? (在web目錄中一個新的前端控制器文件,你應該已經創建),並在該文件中,你應該設置:

$kernel = new AppKernel('uat', true);//or 'uat', false 

這是在http://symfony.com/doc/current/configuration/environments.html

描述請更新你的答案的過程中你app_uat.php,如果你確實創建了一個。


編輯:這是你設置Apache的方式有問題,因爲你的app_uat文件似乎是正確的。但是我會留下我的答案的前一部分,以防其他人需要它(這是一個很好的第一步)。

從看你的apache配置文件,一切看起來都很好。但也請確保:

  1. 刪除線<IfModule mod_rewrite.c>和結束標記...所以你不得不對重寫模塊! sudo a2enmod rewrite來激活Apache的重寫模塊。

  2. 確保重新啓動Apache sudo service apache2 restart

  3. AllowOverride All指任何htaccess的文件可以重寫的行爲。確保這沒有發生。列出symfony的根文件夾,或它的Web文件夾的任何隱藏的文件做ls -a

+0

是的,我有一個app_uat.php,我通過這個前端控制器訪問該應用程序。 – curuba

+0

感謝您更新您的問題。你的問題肯定在Apache中。我已經編輯了相應的答案。 – galeaspablo

+0

正如您所建議的,這個問題與AllowOverride All和一個由Symfony框架提供的默認.htaccess有關。 – curuba

相關問題