Я пытаюсь настроить Apache, чтобы иметь к различным проектам симфонии (каждый с его собственной установкой платформы) под тем же доменом, но я не могу заставить это работать с помощью папок.
Это - то, что я хотел бы иметь:
Я могу заставить его работать с помощью субдоменов, но не являюсь предпочтительным решением для меня, потому что я заканчиваю тем, что имел сумасшедшие субдомены как:
Я использую эту конфигурацию в 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
Я попробовал этот код и, кажется, работает. Поскольку я не проверил это, я не уверен в этом, что это бесплатно, но это может быть подсказкой для вас.
<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>
Вы можете использовать метод 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');
}
}
Надежда, что это поможет.
Я делаю это постоянно. Вот соответствующая конфигурация 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