2017-02-24 85 views
0

我正在学习symfony。我想使用Apache Web服务器,而不是运送的PHP。如果我还想使用默认的本地主机,如何添加虚拟主机? (本地主机:80我的笔记本电脑,我有一个“personalhomepage”)配置symfony和apache

回答

1

这是我目前使用的(的cronolog用于日志旋转)的虚拟主机之一:

<VirtualHost *:80> 
     ServerName projectname.dev 
     DocumentRoot /var/www/projectname/html/web 
     <Directory /var/www/projectname/html/web> 
       Options Indexes FollowSymLinks 
       AllowOverride All 
       Require all granted 
     </Directory> 
     ErrorLog "|/usr/bin/cronolog /var/www/projectname/log/%Y-%m/error_%d_%m_%Y.log" 
     CustomLog "|/usr/bin/cronolog /var/www/projectname/log/%Y-%m/access_%d_%m_%Y.log" combined 
</VirtualHost> 

用于测试和开发目的,我通常创建与.dev或结束。当地的地域hosts文件,如:

127.0.0.1  projectname.dev 

确保域名与一个在虚拟主机的配置相对应。哦,别忘了重启apache。希望这可以帮助。

使用这些步骤,您可以使用projectname.devprojectname.dev/app_dev.php或者你直接设置虚拟主机的DirectoryIndex的,如果你想一直使用app_dev.php

<Directory /var/www/projectname/html/web> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
    DirectoryIndex app_dev.php 
</Directory> 
1

您将设置Apache的方式与任何其他Web服务器上有多个站点相同 - 理想情况下,一个命名虚拟主机。 Symfony的有一个例子Apache vhost config

<VirtualHost *:80> 
    ServerName domain.tld 
    ServerAlias www.domain.tld 
    ServerAlias www.sitename.127.1.0.1.xip.name 

    DocumentRoot /var/www/project/web 
    <Directory /var/www/project/web> 
     AllowOverride None 
     Order Allow,Deny 
     Allow from All 

     <IfModule mod_rewrite.c> 
      Options -MultiViews 
      RewriteEngine On 
      RewriteCond %{REQUEST_FILENAME} !-f 
      RewriteRule ^(.*)$ app.php [QSA,L] 
      # In local development, I default this to app_dev.php 
     </IfModule> 
    </Directory> 

    ErrorLog /var/log/apache2/project_error.log 
    CustomLog /var/log/apache2/project_access.log combined 
</VirtualHost> 

在这个例子中,使用domain.tld(或www。)是您将使用到达站点的名称。您必须能够通过DNS访问这些名称 - 在本地计算机上,127.0.0.1。还有一些'通配DNS'服务可能会有所帮助,例如http://xip.name/通过这些服务,您可以将ServerName sitename.127.1.0.1.xip.name置于上述配置中,然后使用该服务访问您的站点。

我自己做了一些类似于我自己的本地机器的通配DNS子域。我有许多这样的Apache Vhost配置设置。