2016-02-25 81 views
0

我使用Symfony 3創建了一個Web應用程序。在開發環境中,我始終使用Symfony的內置服務器,並使用命令「php bin/console server:run 」。該應用程序可以通過「localhost:8000」訪問。將Symfony3應用從開發移植到生產服務器時的問題

我也使用控制器中的註釋來定義路由,如「/」,「/ about」等。這些頁面可以通過「localhost:8000 /」和「localhost:8000/about」進行訪問。頁面上指向「/ contact」或「/ users/1」等路由的其他鏈接也可以很好地工作。他們將鏈接到「localhost:8000/contact」和「localhost:8000/users/1」。

現在,我將我的應用程序移動到生產服務器。在生產服務器上安裝了Apache2,並且其他人已經開發了Symfony應用程序。他們的應用程序可以通過像「example.com/apps/app1/web/app_dev.php」這樣的URL訪問,其應用程序中的鏈接已經預先附加了「example.com/apps/app1/web/app_dev.php」自動。因此,當用戶點擊鏈接到「/ contact」的按鈕時,該鏈接將指向「example.com/apps/app1/web/app_dev.php/contact」。

現在,當我在「example.com/apps/」目錄下移動名爲「app2」的應用程序時,無需任何配置即可訪問「example.com/apps/app2/web/app_dev.php」,並查看我的主頁完美。 Apache可以自動提取我的代碼。但是,首頁上的所有鏈接都將指向「example.com/contact」,而不是「example.com/apps/app2/web/app_dev.php/contact」。

任何人都可以幫助我嗎?我對Symfony和Apache很感興趣。

或者我可能以完全錯誤的方式完成了從開發到生產環境的遷移?任何將Symfony3應用程序移至生產服務器的新想法或正確方法?

非常感謝!

回答

0

我終於解決了這個問題。我應該在所有的樹枝模板中使用href =「{{path('about')}}」而不是href =「/ about」。謝謝大家!

0

你有沒有正確配置apache?您可能需要將虛擬主機配置添加到服務器。你可以通過Symfony site瞭解具體情況。

+0

我已經閱讀過此頁面。我也看到了「最低配置」部分。但是,在我們的生產服務器上,我們不使用虛擬主機。其他人的應用程序只是神奇的工作。我也不允許更改Apache配置文件。我想我的代碼一定有問題嗎? – user1050165

+0

聽起來像您需要與您的DevOps人員交談。服務器安裝沒有什麼神奇的。這是很多非常具體的配置。如果有某種開放式邏輯,它可能被用於惡意目的,應該改變。 – Iwnnay

+0

無論是哪種情況,最初聽起來都不像你的代碼有任何問題。而缺少的難題不在你的問題中。 – Iwnnay

相關問題