我几乎已经完成了我想要做的事情,但遗憾的是,我还是无法解决最后一个难题。本质上,我试图实现一个目标,即在一个 vb 上托管多个站点,然后使用任意一台机器上的简单 URL 访问它们...
我的设置:
Windows 7 主机在 hosts 文件中有一个条目,内容为:192.168.0.30 laravel.dev
我为这个地址保留了一个 DHCP 权限,该权限将为我的 virtualbox 的唯一 mac 地址保留
Virtualbox 设置了桥接网络适配器和混杂模式:允许所有(不确定是否有必要)我没有对客户操作系统上的 hosts 文件进行任何更改。
我创建了一个名为 laravel.dev 的新文件/etc/apache2/sites-available
,laravel.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/
另外,别名部分可能会解决您的问题,即如何输入您想要的内容而不必包含本地主机部分。