2013-02-15 4 views
14

私のsymfonyアプリケーションは、このURL から実稼働中のenv()にアクセスしたいと思っています。 Symfony2を共有ホスティングにどのように導入するのですか?

は、私がこの内容で http://www.sample.com/amateur1/.htaccessに.htaccesファイルを移動したことを実行します。

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteBase /web/ 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ app.php [QSA,L] 
</IfModule> 

をしかし、私はhttp://www.sample.com/amateur1に行くと404エラーを示しており、prod.logが書かれていません。

でRewriteBaseパスは、サーバーののDocumentRootに、またはの.htaccessファイルが置かれているパスからの相対である場合、私は知らないので、私はまたRewriteBase /amateur1/web/を使用。また、3つのtryさんで原因この回答Symfony2: How to deploy in subdirectory (Apache)

にでRewriteBaseとして/amateur1/amateur1/を試してみました、例外ページがunstyled表示され、任意の画像をロードしません。しかし、prod.logファイルに次のエラーが表示されます。

[2013-02-15 02:06:47] request.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /amateur1/" (uncaught exception) at /home/u105859802/public_html/amateur1/app/cache/prod/classes.php line 5121 [] [] 

私は間違っていますか?お使いの構成では

+0

config.phpを確認しましたか?それはあなたに欠けている要求を示しています –

答えて

23

、Apacheがドキュメントルートとしてpublic_htmlを使用しています

Symfony2のは、ディレクトリ/home/u105859802/public_html/amateur1にインストールされている場合は、奉仕するsymfonyの公開ディレクトリはあなたが

RewriteBase /amateur1/web/ 

を使用する必要があります/home/u105859802/public_html/amateur1/web/

ですしかし、安全ではないことに注意してください。
あなたのsymfonyディレクトリを保護する! (設定はアクセス可能です)

あなたのプライベートエリアであなたのsymfonyファイルを動かしてみませんか?

  • /ホーム/ u105859802/
    • ベンダー
    • SRC:
      あなたはpublic_html

      にsymfonyのWebディレクトリの名前を変更することができだから、私の推奨構成は以下のようになりますhow to do that in documentation cookbook

      を参照してください。

    • app
    • ビン
    • public_htmlの(Symfony2の中にデフォルトでウェブ)< - のみ公開ディレクトリの共有ホスティングのほとんどで
+0

*/home/u105859802/amateur1/*に/ home/u105859802/public_html/*の兄弟(兄弟)であるあなたのsf dirを移動させ、*/public_html/* dirに入れることを意味しますか? my */web/* directoyの内容次に、* public_html/.htaccess *ファイルは、* RewriteBase *または* RewriteBase/* rightなしですべてのアプリケーションをリダイレクトする必要がありますか?この方法では 'RewriteRule ^(。*)$ app.php [QSA、L]'となります。 – Jeflopo

+0

私は今それを試すことはできません、私は答えを受け入れる前にそれを試してみましょう。この有益な情報をありがとう! – Jeflopo

+0

チャームのように働いた! TY – Jeflopo

0

、あなたはその場合には、Apacheの設定を上書きすることはできませんでリダイレクションルールをライトする必要があるかもしれない。htaccessファイル

Options +FollowSymLinks +ExecCGI 

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC] 
RewriteRule !^projectName/ /projectName/web/app.php/%{REQUEST_URI} [L,NC] 

これは私のプロジェクトで使用したルールです。 アセットには、ロードされない別の方法で完全なパスを提供する必要があります。

関連する問題