【问题标题】:Configuring symfony and apache配置 symfony 和 apache
【发布时间】:2017-02-24 19:28:34
【问题描述】:

我现在正在学习 symfony。我想使用 apache webserver 而不是随附的 php。如果我还想使用默认本地主机,如何添加虚拟主机? (localhost:80 用于我的笔记本,我有一个“个人主页”)

【问题讨论】:

    标签: linux apache virtualhost


    【解决方案1】:

    这是我目前使用的 vHost 之一(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 或 .local 结尾的 hosts 文件的本地域,例如:

    127.0.0.1       projectname.dev
    

    确保域名与 vHost 配置中的一致。哦,别忘了重启apache。希望这会有所帮助。

    使用这些步骤,您可以使用 projectname.devprojectname.dev/app_dev.php 或直接设置 vHost 的 DirectoryIndex,如果您想始终使用app_dev.php

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

    【讨论】:

      【解决方案2】:

      您可以像设置任何其他具有多个站点的网络服务器一样设置 Apache - 理想情况下,是一个命名的虚拟主机。 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 配置设置。

      【讨论】:

        猜你喜欢
        • 2018-11-03
        • 2015-03-24
        • 1970-01-01
        • 1970-01-01
        • 2014-12-16
        • 2015-05-28
        • 2013-05-10
        • 2016-04-26
        • 1970-01-01
        相关资源
        最近更新 更多