2011-07-23 22 views
-1

我在本地工作,而且我總是將文件指定爲/files.jpg或whatnot,因此服務器將始終知道要查看根級別以查找文件。這樣,如果我在一個子頁面上,它不會窒息。但本地文件不顯示。我的文件結構是apache2/htdocs/name_of_folder。 name_of_folder是我的「根」。然後我修改我的虛擬主機文件,所以當我輸入localhost/name_of_folder時,它會顯示我的網站。我指定DocumentRoot,所以我想當我說在文檔根目錄下工作的localhost/name_of_folder?文件沒有顯示,因爲看根,但我想我指定的根!

在的httpd-vhosts.conf我有它設置爲

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/opt/local/apache2/name_of_folder" 
    ServerName localhost/name_of_folder 
    ServerAlias www.localhost/name_of_folder 
    ErrorLog "logs/name_of_folder_log" 
    CustomLog "logs/name_of_folder_access_log" common 
</VirtualHost> 

我在做什麼錯?

+0

是什麼,你的日誌說? – PeeHaa

+0

@PeeHaa - 我得到以下圖像... 127.0.0.1 - - [23/Jul/2011:09:48:16 -0400]「GET /rss_28x28.png HTTP/1.1」404 211 – rich

回答

0

您正在濫用ServerNameServerAlias指令。它們與文件或路徑無關。它們是域名標識網站的名稱(如果不是80則與可選端口一起)。如果您想移動文檔根目錄,則必須編輯DocumentRoot指令。

+0

G. Vicario - 但我使用這個Apache有多個網站。所以我指定documentroot是apache2/htdocs,然後在htdocs裏面我有站點文件夾,那些是根。我可以爲每個網站提供多個文檔資料嗎?我以爲我只能有一個? – rich

+0

@rich - 我不知道我跟着你。如果你想要多個站點,你可以創建多個' ...塊。您不要在一個站點中配置所有內容。 –

+0

G. Vicario - 對......我知道我需要多個VirtualHost模塊,但現在我只有一個模塊沒有工作。我不會說虛擬主機中的DocumentRoot「/ opt/local/apache2/name_of_folder」(請參閱​​上面的代碼)讓它起作用嗎? – rich

0

你可能不這樣做。指令ServerName不應獲取URL而是域名。將根設置爲父文件夾,使用<Directory>拒絕對其進行的所有訪問,並允許訪問您的子目錄以使其工作。

+0

在我的httpd.conf中,我有ServerRoot「/ opt/local/apache2」和DocumentRoot「/ opt/local/apache2/htdocs」。而htdocs裏面是網站名稱的目錄。所以感冒就是name_of_folder。然後我想能夠說localhost/name_of_folder,它知道這是根。不知道你的意思是將根設置爲父項......我認爲我是通過執行上面的documentmentroot來完成的。我爲什麼要拒​​絕訪問? – rich

+0

@rich:除了具體的指令:你究竟想要歸檔什麼? – marc

+0

@ marc-抱歉marc不確定你的問題意味着什麼。本地我的圖像沒有顯示出來,因爲我在我的html代碼中指定了/file.jpg。它在生產環境中工作正常。但是在本地,圖像並不顯示,因爲我假設它正在根目錄中查找圖像,因爲我指定了/.I將documentroot指定爲我的httpd.conf文件中的apache2/htdocs 。我這樣做是因爲我有多個我想要工作的網站。所以我猜這個文件正在爲我的圖像尋找htdocs文件夾,當然它不在那裏。所以我認爲VirtualHost會告訴它爲該網站更改其documentroot – rich

0

在這樣做的代替:

ServerName localhost/name_of_folder 
ServerAlias www.localhost/name_of_folder 

創建一個子域:

ServerName subdomain.localhost 
+0

有什麼我需要做的,以便允許子域?我無法弄清楚。我做了你說的subdomain.localhost我也試過subdomain.127.0.0.1,它一直重定向到我的isp頁面沒有找到 – rich

+0

@rich:你重新啓動了Apache服務嗎?要做到這一點,請轉到:開始 - >運行 - >並輸入services.msc。找到Apache服務並重新啓動它 – PeeHaa

+0

是的,我在Mac上(apachectl優雅)。我認爲這與我的主機文件有關。我添加了127.0.0.1 subdomain.localhost,它現在指向htdocs目錄...第二個虛擬主機棧...'VirtualHost *:80> DocumentRoot「/ opt/local/apache2/htdocs/subdomain」 ServerName子域.localhost ' '<虛擬主機*:80> 的DocumentRoot 「/選擇/本地/ apache2的/ htdocs中」 服務器名本地主機 ' 它就像它是正確的在第一虛擬主機跳過。也許是因爲我在主機中聲明瞭兩個127.0.0.1? '127.0.0.1 localhost 127.0.0.1 subdomain.localhost' – rich

相關問題