2014-07-12 66 views
0

好的,所以我試圖在我的本地機器上安裝Symfony 2演示應用程序。我使用Apache 2.2 Web服務器,並將項目文件下載到我的〜/ myproject /目錄(在我的Home文件夾中)。因爲symfony文件reccomends這裏http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html我在/ etc/apache2的/網站可用/用以下內容創建文件 「的myproject」:配置虛擬主機後仍然得到404

<VirtualHost *:80> 
ServerAdmin [email protected] 
ServerName myproject 
ServerAlias www.myproject 

DocumentRoot /home/dmitriy/myproject/web 
    <Directory /home/dmitriy/myproject/web> 
     # enable the .htaccess rewrites 
     AllowOverride All 
     Order allow,deny 
     Allow from All 
    </Directory> 

ErrorLog ${APACHE_LOG_DIR}/error.log 

# Possible values include: debug, info, notice, warn, error, crit, 
# alert, emerg. 
LogLevel warn 

CustomLog ${APACHE_LOG_DIR}/access.log combined 

我禁用默認的Apache的配置,並通過運行

啓用 「MyProject的」
sudo a2dissite default && sudo a2ensite mysite 

後,我重新啓動Apache的

sudo /etc/init.d/apache2 restart 

現在,symfony的示範項目附帶在web /目錄.htaccess文件,這裏是它的內容:

DirectoryIndex app.php 

<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ 
RewriteRule ^(.*) - [E=BASE:%1] 

RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule .? - [L] 

RewriteRule .? %{ENV:BASE}/app.php [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    <IfModule mod_alias.c> 
     RedirectMatch 302 ^/$ /app.php/ 
    </IfModule> 
</IfModule> 

在我的理解我現在應該可以通過地址「www.myproject」,以查看該項目的索引頁或只是「我的項目」對嗎?因爲這兩行

ServerName myproject 
ServerAlias www.myproject 

但這並不起作用,當我嘗試瀏覽器顯示一些谷歌結果。當我嘗試prepend localhost /我得到404,只有當我輸入localhost/app_dev.php或localhost/config.php我可以看到真實的頁面,但它不是它應該工作的方式嗎?有些事情是錯誤的,顯然我在某個時候犯了一個錯誤,但是我缺乏經驗和對它的看法。

回答

1

我忘了編輯我的/ etc/hosts文件。加入127.0.0.1 myproject www.myproject後終於奏效了!