6

同じドメインの下に異なるsymfonyプロジェクト (それぞれに独自のフレームワークのインストールがある)を使用するように Apache を構成しようとしていますが、フォルダーを使用して動作させることができません。

これは私がしたいことです:

  • mydomain.com/projectone/
  • mydomain.com/projecttwo/

サブドメインを使用して機能させることはできますが、次のようなクレイジーなサブドメインができてしまうため、私にとっては好ましい解決策ではありません。

  • projectone.mydomain.com
  • backend.projectone.mydomain.com
  • projecttwo.mydomain.com
  • backend.projecttwo.mydomain.com

サブドメインで動作させるために、Apache でこの構成を使用しています。

<VirtualHost 127.0.0.1:8080>
  ServerName projectone.mydomain.com
  DocumentRoot "/home/projectone/web"
  DirectoryIndex frontend.php
  <Directory "/home/projectone/web">
    Options -Indexes IncludesNOEXEC FollowSymLinks -MultiViews
    AllowOverride None
    Allow from All

    RewriteEngine On
    # we check if the .html version is here (caching)
    RewriteRule ^$ index.html [QSA]
    RewriteRule ^([^.]+)$ $1.html [QSA]
    RewriteCond %{REQUEST_FILENAME} !-f
    # no, so we redirect to our front web controller
    RewriteRule ^(.*)$ frontend.php [QSA,L]
  </Directory>

  Alias /sf /home/projectone/lib/vendor/symfony/data/web/sf
  <Directory "/home/projectone/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

フォルダ ソリューションを実現する方法について何か考えはありますか?

前もってありがとう、エネコ

4

4 に答える 4

2

私はいつもこれをしています。関連するApache構成は次のとおりです。また、symfony アプリごとにカスタム エラー ハンドラーをセットアップしました。

 # make sure your symfony install dir is available
<Directory "/var/www/symfony1.4">
    AllowOverride All
    Allow from all
</Directory>

# each app under http://mysite/myapp gets a section like this
Alias /myapp/sf "/var/www/symfony1.4/data/web/sf"
Alias /myapp "/var/www/vhosts/myvhost/sf_apps/myapp/web"
<Directory "/var/www/vhosts/myvhost/sf_apps/myapp/web">
    AllowOverride All
    Allow from all
    ErrorDocument 404 /myapp/default/error404
    ErrorDocument 500 /myapp/myThemePlugin/errors/error500.php
</Directory>

また、ファイル内のこの行をハックする必要がありweb/.htaccessます。

# uncomment the following line, if you are having trouble
# getting no_script_name to work
RewriteBase /myapp
于 2010-02-01T23:05:47.327 に答える
1

私はこのコードを試しましたが、動作しているようです。テストしていないので、これにエラーがないかどうかはわかりませんが、ヒントになる可能性があります。

<VirtualHost 127.0.0.1:8088>
  Alias /badger /home/amqs/proyectos/sales/nuevo/salesprime/web
  DocumentRoot "/home/amqs/proyectos/sales/nuevo/salesprime/web"
  DirectoryIndex frontend_dev.php
  <Directory "/home/amqs/proyectos/sales/nuevo/salesprime/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sales /home/amqs/proyectos/sales/salesprime2/web
  DocumentRoot "/home/amqs/proyectos/sales/salesprime2/web"
  DirectoryIndex frontend_dev.php
  <Directory "/home/amqs/proyectos/sales/salesprime2/web">
    AllowOverride All
    Allow from All
  </Directory>

</VirtualHost>
于 2010-01-28T18:28:38.213 に答える
0

ProjectConfiguration でsetWebDirメソッドを使用して、各プロジェクトでサービスを提供する一意の Web ディレクトリを指定できます。これにより、プロジェクト ファイル (apps、config、lib、plugins など) を任意のディレクトリ (/home/projectone) にホストし、ファイルを通常は web/ にある別の場所 (/home/ mydomain/web/projectone)。ルートの ProjectConfiguration からプロジェクト全体の Web ディレクトリを調整するオプションがありますconfig/ProjectConfiguration.class.php

class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    $this->setWebDir('/home/mydomain/web/projectone');
  }
}

または、各アプリケーションに異なる Web ディレクトリ (フロントエンド用の /projectone/ とバックエンド用の /projectone/backend/) を持たせたい場合は、各アプリケーション構成から Web ディレクトリを設定できます。apps/myapp/config/myappConfiguration.class.php:

class myappConfiguration extends sfApplicationConfiguration
{
  public function configure()
  {
    $this->setWebDir('/home/mydomain/web/projectone');
  }
}

それが役立つことを願っています。

于 2010-01-28T01:34:34.673 に答える
-1

この構成を試してください。
これはsymfony 2 および 3 で機能します。

<VirtualHost 127.0.0.1:8080>
    Alias /app1 /var/www/public_html/app1/web 
    DocumentRoot "/var/www/public_html/app1/web" 
    DirectoryIndex app.php
    <Directory "/var/www/public_html/app1/web"> 
        AllowOverride All
        Allow from All 
    </Directory>
</VirtualHost>

ドキュメント: https://symfony.com/doc/3.3/setup/web_server_configuration.html

于 2018-06-19T20:11:32.307 に答える