我已經很接近做我想做的事了,但是可惜的是,最後一個障礙的解決方案卻讓我無法解決。本質上,我試圖達到一個位置,我可以在一個 vb 上託管多個站點,並使用任一機器上的簡單 url 訪問它們...
我的設定:
Windows 7 主機在主機檔案中包含一個條目,內容如下:192.168.0.30 laravel.dev
我對此位址有一個 DHCP 保留,它為我的 virtualbox 的唯一 mac 位址保留了它
Virtualbox 設定了橋接網路適配器和混雜模式:允許所有(不確定是否有必要)我沒有對來賓作業系統上的主機檔案進行任何更改。
我創建了一個名為 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/
內容從主機透過網路根目錄 ( )進行訪問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”的結果,因為其中應該有一個指向site-available/laravel.dev 的符號鏈接,該符號鏈接可能會丟失- 如果沒有的話,我們可能需要查明該文件是否正在被解析,如果沒有,為什麼不解析。
答案2
您可以嘗試我在這裡找到的教學。似乎詳細介紹瞭如何在 Ubuntu 上使用虛擬主機進行設定。它還涵蓋了 Arch Linux。但在閱讀教程後我發現了我的問題是什麼,在遵循它之前我錯過了一個簡單的步驟。也許您也遇到了同樣的情況。 http://www.adminempire.com/how-to-setup-v-host-on-apache/
別名部分也可能解決您的問題,即如何輸入您想要的內容,而不必包含 localhost 部分。