Как настроить Apache, чтобы иметь два проекта симфонии в том же домене (не используя субдомены)?

Я пытаюсь настроить 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>

Какая-либо идея о том, как достигнуть решения для папок?

Заранее спасибо, Eneko

6
задан eillarra 27 January 2010 в 15:36
поделиться

3 ответа

Я попробовал этот код и, кажется, работает. Поскольку я не проверил это, я не уверен в этом, что это бесплатно, но это может быть подсказкой для вас.

<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>
1
ответ дан 17 December 2019 в 18:16
поделиться

Вы можете использовать метод setWebDir в ProjectConfiguration, чтобы указать уникальный веб-каталог для обслуживания из каждого проекта. Это позволит вам размещать файлы проекта (приложения, config, lib, plugins и т.д.) в любом каталоге (/home/projectone) при перемещении файлов обычно в web/ в совершенно другое место (/home/mydomain/web/projectone). Вы можете настроить всю web-директорию вашего проекта из корневого ProjectConfiguration в файле config/ProjectConfiguration.class. php:

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

или если вы хотите, чтобы каждое из ваших приложений имело свою веб-директорию (/projectone/ для front-end и /projectone/backend/ для back-end), вы можете установить веб-директорию из каждой конфигурации приложения в apps/myapp/config/myappConfiguration.class.php:

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

Надежда, что это поможет.

0
ответ дан 17 December 2019 в 18:16
поделиться

Я делаю это постоянно. Вот соответствующая конфигурация 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
2
ответ дан 17 December 2019 в 18:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: