如何从虚拟机箱 Ubuntu Lamp Stack 托管多个网站

如何从虚拟机箱 Ubuntu Lamp Stack 托管多个网站

我几乎已经完成了我想要做的事情,但遗憾的是,我还是无法解决最后一个难题。本质上,我试图实现一个目标,即在一个 vb 上托管多个站点,然后使用任意一台机器上的简单 URL 访问它们...

我的设置:

Windows 7 主机在 hosts 文件中有一个条目,内容为:192.168.0.30 laravel.dev 我为这个地址保留了一个 DHCP 权限,该权限将为我的 virtualbox 的唯一 mac 地址保留

Virtualbox 设置了桥接网络适配器和混杂模式:允许所有(不确定是否有必要)我没有对客户操作系统上的 hosts 文件进行任何更改。

我创建了一个名为 laravel.dev 的新文件/etc/apache2/sites-availablelaravel.dev并对其进行了如下编辑:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName *.laravel.dev
    DocumentRoot /var/www/laravel.dev/public/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/laravel.dev/public/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/laravel_error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/laravel_access.log combined
</VirtualHost>

sudo a2ensite laravel.dev然后我通过输入并重新启动 apache来启用它(我认为)

现在的情况:

因此,目前我可以/var/www/通过在我的地址栏中输入来从主机通过 Web 根目录 ()进行访问http://laravel.dev/,也可以通过在我的访客浏览器中输入来访问localhost

/var/www/laravel.dev/public/index.php我可以通过在我的地址栏中输入来从主机访问我的项目索引文件( ) http://laravel.dev/laravel.dev/public,也可以通过输入从我的访客浏览器访问它localhost/laravel.dev/public

我想要的是

这没问题,但我希望能够/var/www/laravel.dev/public/index.php通过在任一机器的地址栏中输入 laravel.dev 来访问我的站点的根目录() - 有人能解释一下我在这里做错了什么吗? 我将永远感激不尽。

要求提供其他信息:

/etc/apache2/sites-enabled/ 中 ls -l 的结果

total 0
lrwxrwxrwx 1 root root 26 Feb 26 17:16 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 30 Feb 26 18:27 laravel.dev -> ../sites-available/laravel.dev

...很高兴提供任何可能有助于解决此问题的其他信息。

另外,除了安装灯组。除了这里列出的内容之外,我真的没有做任何其他事情 - 如果我没有提到,我可能没有做过,所以任何建议都值得赞赏。可以肯定的是,您正在与 Linux 新手打交道... 不会冒犯。

答案1

我怀疑问题是 DNS 问题,尽管我确实质疑您创建的文件是否真的被 Apache 读取 - “DocumentRoot /var/www/laravel.dev/public/”这一行应该足以使其工作。

[ 事实上,如果这就是您要尝试做的全部,您是否需要放入其他东西?如果不是,我会尝试删除此文件并修改主 apache 配置中的 DocumentRoot ]。

如果这不能解决您的问题,您能否提供“ls -l /etc/apache2/sites-enabled”的结果,因为其中应该有一个指向 sites-available/laravel.dev 的符号链接,但该符号链接可能缺失 - 如果没有,我们可能需要查明该文件是否正在被解析,如果没有,为什么没有。

答案2

您可以尝试我在此处找到的教程。它似乎简要介绍了如何在 Ubuntu 上使用 vhosts 进行设置。它还涵盖了 Arch Linux。但我在阅读教程后才发现我的问题是什么,在按照教程操作之前我漏掉了一个简单的步骤。您可能遇到了同样的情况。 http://www.adminempire.com/how-to-setup-v-host-on-apache/

另外,别名部分可能会解决您的问题,即如何输入您想要的内容而不必包含本地主机部分。

相关内容