2015-04-12 53 views
0

我已經在個人服務器上部署了我的項目symfony2,並且一切正常。將別名添加到我的虛擬主機

現在我想爲一些朋友發佈這個項目,以便他們可以看到它。我認爲最好的做法是通過/從外部訪問我的項目。 快速谷歌研究認爲,這可能與Alias聲明。

ServerName blabla 
ServerAlias blablab 
ServerAdmin [email protected] 
DocumentRoot /path/to/my/project/web  

Alias /myproject "/path/to/my/project/web" 
<Directory /path/to/my/project/web> 
    DirectoryIndex app.php 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Require all granted 
    Order allow,deny 
    allow from all 
</Directory> 

當我嘗試訪問<server_IP_ADDRESS>/<project_name>Not found錯誤

爲什麼這個錯誤?我該如何解決 ?

UPDATE1

我有一臺服務器上的許多項目,我希望能夠在任何地方,我訪問它們。從我的觀點來看,最好的選擇是使用別名:

  1. PROJECT1:http://<my_server_ip_address>/project1
  2. 項目2:http://<my_server_ip_address>/project2
  3. 項目3:http://<my_server_ip_address>/project3 ....
+0

您的別名創建路徑'/ myproject'。根據你的'DocumentRoot',路徑'/'確實指向與別名'/ myproject'相同的目錄。 ''指令中還有哪些其他設置?做完你的裝備後你重新啓動了Apache嗎?此服務器是否有其他虛擬主機? –

+0

我已更新我的帖子,並且是我的服務器確實有很多虛擬主機 – smarber

+0

您可以通過輸入「ServerName」或「ServerAlias」從瀏覽器訪問虛擬服務器。如果你沒有找到,那麼你已經設置了一個錯誤的路徑。此外,我沒有得到目錄指令之前的別名。 –

回答

1

有一個虛擬服務器將將服務器映射到主機名/別名。你的情況你正在訪問相同的主機名(服務器IP),但不同的URI。在你的情況下,這些URI可能不存在,因此你需要重定向/重寫它們。我想你會尋找重寫,所以你可以繼續前進,並在虛擬主機定義,如在.htaccess確保你已經mod_rewrite啓用重寫規則。

ServerName <server ip> 

RewriteEngine On 

RewriteRule /project1 /Path/to/project/1 [L] 
RewriteRule /project2 /Path/to/project/2 [L] 
RewriteRule /project3 /Path/to/project/3 [L]