部署ZF2网站共享主机(Deploy ZF2 site to shared host)

2019-07-21 02:35发布

当您部署Zend框架网站共享主机,您通常无法改变的DocumentRoot在网站的公共/文件夹指向。 作为结果的URL网站现已http://www.example.com/public/ 。 这看起来不是很专业,所以我想将其删除。 到现在为止我已经使用ZF1和罗布·艾伦好心提供了在他的博客中这样的方法http://akrabat.com/zend-framework/zend-framework-on-a-shared-host/ 。 我试图修改此为ZF2。 他建议放置一个index.php文件与行根:

include 'public/index.php';

这样做了以后, http://www.example.com打开索引页确定,但CSS的链接断开。 罗布增加了一个控制器插件重置的baseUrl到/公众应对面向公众的CSS和图像文件等。要做到这一点在ZF2我发现从马修纬二路O”菲尼项目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网站?

Answer 1:

您使用的是骨架应用程序吗?

这似乎有点洁癖,无疑这是很多比这更简单。

从公众移动一切根源

变化的index.php

<?php
/**
 * This makes our life easier when dealing with paths. Everything is relative
 * to the application root now.
 */
//chdir(dirname(__DIR__));
chdir(__DIR__);

// Setup autoloading
require 'init_autoloader.php';

// Run the application!
Zend\Mvc\Application::init(require 'config/application.config.php')->run();

简单。

如果你喜欢这个运行的应用程序可能要阻止对一些使用的htaccess等Zend框架文件夹直接访问



文章来源: Deploy ZF2 site to shared host