如何将Apache配置为在同一个域中有两个symfony项目(不使用子域)?
我试图将Apache配置为在同一个域下有不同的symfony项目(每个项目都有自己的框架安装),但我无法使用文件夹使其工作 这就是我想要的:如何将Apache配置为在同一个域中有两个symfony项目(不使用子域)?,apache,symfony1,virtualhost,Apache,Symfony1,Virtualhost,我试图将Apache配置为在同一个域下有不同的symfony项目(每个项目都有自己的框架安装),但我无法使用文件夹使其工作 这就是我想要的: mydomain.com/projectone/ mydomain.com/projecttwo/ 我可以使用子域使其工作,但这不是我的首选解决方案,因为我最终拥有疯狂的子域,如: projectone.mydomain.com backend.projectone.mydomain.com projecttwo.mydomain.com backe
- mydomain.com/projectone/
- mydomain.com/projecttwo/
- projectone.mydomain.com
- backend.projectone.mydomain.com
- projecttwo.mydomain.com
- backend.projecttwo.mydomain.com
<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>
ServerName projectone.mydomain.com
DocumentRoot“/home/projectone/web”
DirectoryIndex frontend.php
选项-索引包括noexec FollowSymLinks-多视图
不允许超限
通融
重新启动发动机
#我们检查.html版本是否在这里(缓存)
重写规则^$index.html[QSA]
重写规则^([^.]+)$$1.html[QSA]
重写cond%{REQUEST_FILENAME}-F
#不,所以我们重定向到前端web控制器
重写规则^(.*)$frontend.php[QSA,L]
别名/sf/home/projectone/lib/vendor/symfony/data/web/sf
允许超越所有
通融
有没有关于如何实现文件夹解决方案的想法
提前感谢,,
Eneko您可以在项目配置中使用该方法指定一个唯一的web目录,以便在每个项目中提供服务。这将允许您将项目文件(apps、config、lib、plugins等)托管在您想要的任何目录(/home/projectone)中,同时将文件通常在web/中移动到完全不同的位置(/home/mydomain/web/projectone)。您可以选择在config/ProjectConfiguration.class.php
中从根项目配置调整整个项目的web目录:
class ProjectConfiguration extends sfProjectConfiguration
{
public function setup()
{
$this->setWebDir('/home/mydomain/web/projectone');
}
}
class myappConfiguration extends sfApplicationConfiguration
{
public function configure()
{
$this->setWebDir('/home/mydomain/web/projectone');
}
}
或者,如果您希望每个应用程序都有不同的web目录(/projectone/用于前端,/projectone/后端/用于后端),您可以从apps/myapp/config/myappConfiguration.class.php中的每个应用程序配置中设置web目录:
class ProjectConfiguration extends sfProjectConfiguration
{
public function setup()
{
$this->setWebDir('/home/mydomain/web/projectone');
}
}
class myappConfiguration extends sfApplicationConfiguration
{
public function configure()
{
$this->setWebDir('/home/mydomain/web/projectone');
}
}
希望对您有所帮助。我已经尝试过这段代码,似乎很有效。因为我还没有测试过它,所以我不确定它是否没有错误,但它可以给你一个提示
<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>
别名/badger/home/amqs/proyectos/sales/nuevo/salesprime/web
DocumentRoot“/home/amqs/proyectos/sales/nuevo/saleprime/web”
DirectoryIndex前端_dev.php
允许超越所有
通融
别名/sales/home/amqs/proyectos/sales/salesprime2/web
DocumentRoot“/home/amqs/proyectos/sales/salessprime2/web”
DirectoryIndex前端_dev.php
允许超越所有
通融
我一直都这样做。下面是相关的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>
尝试此配置。
这项工作适用于symfony 2和3
别名/app1/var/www/public_html/app1/web
DocumentRoot“/var/www/public\u html/app1/web”
DirectoryIndex app.php
允许超越所有
通融
文档:这对我来说很有趣。。。实际上我自己更喜欢“复杂”域名;-)不管怎样,您对访问每个项目中各个应用程序的期望起点是什么?是backend.domain.com/project
还是更像domain.com/project/backend.php
?我认为这将改变你的工作方式。我们的想法是通过domain.com/project/backend访问后端应用程序/