【问题标题】:Virtual host not working in zend framework虚拟主机在 zend 框架中不起作用
【发布时间】:2012-06-30 20:16:59
【问题描述】:

以下是我在 /etc/apache2/sites-available 中的虚拟主机:

<VirtualHost *:80>

DocumentRoot "/var/www/roomstays/public"

ServerName roomstays

#This should be omitted in the production environment
SetEnv APPLICATION_ENV development

<Directory "/var/www/roomstays/public">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

它还在 /etc/apache2/sites-enabled 文件夹上启用

以下是我的主机文件:

127.0.0.1   localhost
127.0.0.1   roomstays

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

我在 var/www/roomstays 中配置了我的网站。但是当我进入房间时,它没有打开网站并显示此消息:

有效!

这是此服务器的默认网页。

网络服务器软件正在运行,但尚未添加任何内容。

虚拟主机出了什么问题。

【问题讨论】:

  • 自启用站点后您是否重新启动了 Apache?
  • @TimFountain :是的......我每次更改后都重新盯着 apache
  • 在接受的答案中有几个不同的选项,哪一个对你有用?另外,您是在哪台机器上成功访问该网站的?

标签: apache zend-framework virtualhost ubuntu-11.04


【解决方案1】:

如何为 Zend Project 设置虚拟主机:

在位置 /var/www/ 中创建名为 'roomstays' 的项目(文件夹)

放入文件 /etc/hosts 行:

127.0.0.1 roomstays.test

在 /etc/apache2/sites-available/ 中创建名为“roomstays.conf”的文件并放入:

<VirtualHost *:80>
    ServerName 127.0.0.1
    ServerAlias roomstays.test
    DocumentRoot /var/www/roomstays/public/
    SetEnv APPLICATION_ENV "development"
    <Directory /var/www/roomstays/public/>
        Options All
        AllowOverride All
        Order Allow,Deny
        Allow From All
    </Directory>
</VirtualHost>

将该文件“roomstays.conf”复制到位置 /etc/apache2/sites-enabled/

重新启动 apache,打开浏览器并输入“roomstays.test”,这对我有用。

【讨论】:

  • 那么问题出在其他地方。
【解决方案2】:

要检查的三件事:

1.已启用网站

确保您的虚拟主机文件位于 /etc/apache2/sites-启用

2。名称虚拟主机

确保你在 apache 配置中的某个地方有这个:

NameVirtualHost *:80

我在 /etc/apache2/ports.conf 中有它(不记得那是不是 Ubuntu 的标准)

3.删除默认虚拟主机

如果以上都不起作用,您可以将虚拟主机重命名为 /etc/apache2/sites-enabled/000000-myhost。这将确保首先加载您的虚拟主机文件。或者删除 /etc/apache2/sites-enabled/000-default

记得每次修改后重启apache...

【讨论】:

    【解决方案3】:

    它与本地主机不冲突吗?尝试分配不同的 IP 地址,例如

    127.0.0.2
    

    并确保您已将具有别名的目录添加到 apache 日志文件目录中

    希望对你有帮助!

    【讨论】:

      【解决方案4】:

      这就是我为解决这个问题所做的。复制 etc/apache2/sites-available 中的虚拟主机文件并将其粘贴到 etc/apache2/sites-enabled。转到您的浏览器并刷新,您会看到它有效

      【讨论】:

        【解决方案5】:
        <VirtualHost *:80>
            ServerName overstock.local
            DocumentRoot "C:\xampp\htdocs\overstock"
         <Directory "C:\xampp\htdocs\overstock">
            AllowOverride All
           </Directory>
        
         </VirtualHost>
        

        然后将htaccess改为

           Options +FollowSymLinks -MultiViews
           RewriteEngine On
           RewriteBase /overstock/
        
           RewriteCond %{REQUEST_URI} !/public [NC]
         RewriteRule ^(.*)$ public/$1 [L]
        

        【讨论】:

          【解决方案6】:

          确保 # Virtual hosts 行在您的 httpd.conf 文件中处于活动状态。

          一般放在:/etc/apache2/httpd.conf

          编辑文件需要root权限,所以:

          sudo vim /etc/apache2/httpd.conf
          

          取消注释该行

          Include /private/etc/apache2/extra/httpd-vhosts.conf
          

          保存文件ESC + :wq + Enter

          重启你的apache

          【讨论】: