將Zend Framework網站部署到共享主機時,通常不能將DocumentRoot更改爲指向網站的公共/文件夾。因此,該網站的URL現在是http://www.example.com/public/。這看起來不太專業,所以我想刪除它。到目前爲止,我已經使用了ZF1,Rob Allen在他的博客http://akrabat.com/zend-framework/zend-framework-on-a-shared-host/上提供了一個方法。我試圖修改這個ZF2。他建議放置一個index.php文件根與線:將ZF2站點部署到共享主機
include 'public/index.php';
這樣做了以後,http://www.example.com打開索引頁確定,但CSS的鏈接斷開。 Rob添加了一個控制器插件來重置baseUrl到/ public來處理面向公衆的CSS和圖像文件等。要在ZF2中執行此操作,我從Matthew Weier O'Phinney http://zend-framework-community.634137.n4.nabble.com/Setting-the-base-url-in-ZF2-MVC-td3946284.html中找到一個項目,在其中描述如何設置baseUrl。根據他的代碼,我已將此添加模塊/應用/ Module.php
class Module {
public function onBootstrap(MvcEvent $e) {
$config = $e->getApplication()->getServiceManager()->get('config');
$router = $e->getApplication()->getServiceManager()->get('router');
$router->setBaseUrl($config['base_url']);
}
}
的BASE_URL鍵被設置在模塊/應用/ CONFIGS/module.config.php:
'base_url' => '/public'
我能夠轉儲路由器對象並確認base_url在此階段正確設置。不幸的是,現在http://www.example.com不再打開索引頁面,並提供404路由錯誤。
是否有人能夠告訴我我做錯了什麼或指向正確的方向在共享託管環境中運行ZF2站點?
是我使用的應用程序框架Zend框架文件夾直接訪問的應用程序。我有很多ZF1網站,這是託管的方式,所以我認爲這不會是ZF2的問題。我想我失去了公共目錄有點不舒服,但我無法真正說出原因。 – 2013-03-06 18:07:57
這是最簡單的方法,如果你不能將ZF移出文檔根目錄 – Andrew 2013-03-06 19:09:16
你沒有權限訪問上面的文件夾,通常甚至是共享主機,你可以通過public_html或包含所有網頁的htdocs訪問下面的級別可見的文件..如果是這樣,那麼甚至更好,你可以將所有的ZF文件移動到低於 – Andrew 2013-03-06 19:09:58