如何從虛擬盒 Ubuntu lamp stack 託管多個站點

如何從虛擬盒 Ubuntu lamp stack 託管多個站點

我已經很接近做我想做的事了,但是可惜的是,最後一個障礙的解決方案卻讓我無法解決。本質上,我試圖達到一個位置,我可以在一個 vb 上託管多個站點,並使用任一機器上的簡單 url 訪問它們...

我的設定:

Windows 7 主機在主機檔案中包含一個條目,內容如下:192.168.0.30 laravel.dev 我對此位址有一個 DHCP 保留,它為我的 virtualbox 的唯一 mac 位址保留了它

Virtualbox 設定了橋接網路適配器和混雜模式:允許所有(不確定是否有必要)我沒有對來賓作業系統上的主機檔案進行任何更改。

我創建了一個名為 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/內容從主機透過網路根目錄 ( )進行訪問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 部分。

相關內容