4

Symfony2 プロジェクトを開発サーバーにデプロイし、開発環境を実行したいと考えています。

/app.php を使用するとすべて正常に動作しますが、app_dev.php を使用すると 404 エラーが発生します。

要求された URL /app_dev.php がこのサーバーで見つかりませんでした。

以下は、私の .htaccess ファイルのコピーです。

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^app_dev.php - [L]
    RewriteRule ^app.php - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    # Change below before deploying to production
    #RewriteRule ^(.*)$ app.php [QSA,L]
    RewriteRule ^(.*)$ app_dev.php [QSA,L]
</IfModule>

開発サーバーではなく、ローカルマシンで正常に動作しますが、その理由は何ですか?

私の /cache および /logs ディレクトリはどちらも 777 のアクセス許可を持ち、www-data によって所有されています。

drwxrwxrwx+ 4 www-data www-data 4096 Mar 15 11:46 cache
drwxrwxrwx+ 2 www-data www-data 4096 Mar 15 11:05 logs

これらのディレクトリ内の dev と prod はまったく同じです。

4

1 に答える 1

7

app_dev.phpを確認してください。サーバー自体以外のコンピューターから、開発環境へのアクセスを拒否する制限があります。

これはセキュリティ上の理由からです。本番サーバーにデプロイし、ユーザーがdev envにアクセスできる場合、ユーザーはアプリケーションについて多くのことを知ることができます。

// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this, extend it, or make something more sophisticated.
if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1'))
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}

そのアレイにIPを追加するか、すべてを削除する必要があります(お勧めしません)。

dev変数をAppKernelに渡すことを常に忘れないでください。$kernel = new AppKernel('dev', true);

于 2013-03-15T12:47:32.353 に答える