eil*_*rra 6 apache symfony1 virtualhost
我正在尝试将Apache配置为在同一个域下拥有不同的symfony项目(每个项目都有自己的框架安装),但我无法使用文件夹来使用它.
这就是我想要的:
我可以使用子域工作,但不是我的首选解决方案,因为我最终有疯狂的子域名,如:
我在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>
Run Code Online (Sandbox Code Playgroud)
有关如何实现文件夹解决方案的任何想法?
在此先感谢,Eneko
您可以在 ProjectConfiguration 中使用setWebDir方法来指定要在每个项目中提供服务的唯一 Web 目录。这将允许您将项目文件(应用程序、配置、lib、插件等)托管在您想要的任何目录(/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');
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您希望每个应用程序都有不同的 Web 目录(前端为 /projectone/,后端为 /projectone/backend/),您可以在每个应用程序配置中设置 Web 目录apps/myapp/config/myappConfiguration.class.php
:
class myappConfiguration extends sfApplicationConfiguration
{
public function configure()
{
$this->setWebDir('/home/mydomain/web/projectone');
}
}
Run Code Online (Sandbox Code Playgroud)
希望有帮助。
归档时间: |
|
查看次数: |
3146 次 |
最近记录: |