将Zend Framework站点移动到新主机 - “发现错误页面未找到”

时间:2014-03-04 15:31:49

标签: zend-framework http-status-code-404

我是ZF的新手,并且在将当前实时网站迁移到新主机时遇到问题。新主机使用IP和用户名作为域在临时dev URL上运行。当我尝试直接导航到(我认为)运行网站的index.php页面时,我得到了404.该网站是否存在没有真正域名的问题? ZF设置是否检查路径/域最初是否设置,现在它没有找到该域?

当前的LIVE站点位于名为/share/的子目录中。我可以通过FTP访问当前的LIVE站点,并且根目录中似乎没有任何htaccess重定向,以使您进入index.php文件似乎位于的路径:{{1} }。

我还迁移了数据库并找到了带有DB用户名/密码的/share/clients/public/index.phpapplication.ini文件,并且我已将它们更新到新数据库。我假设这些仍在monster.ini上运行。

当前开发URL正在IP /用户路径上运行。

示例: localhost

当我导航到:http://1.2.3.4/~username/时,出现404错误。

如果我在根目录中设置重定向到同一目录,我会得到相同的结果。

关于问题所在的任何想法?我很难过。 提前感谢任何帮助,尤其是快速回复。这个网站需要很快!

http://1.2.3.4/~username/share/clients/public/index.php目录中的HTACCESS:

/clients/

AddType application/x-httpd-php53 .php SetEnv APPLICATION_ENV production RewriteEngine On RewriteRule ^\.htaccess$ - [F] RewriteCond %{REQUEST_URI} ="" RewriteRule ^.*$ /clients/public/index.php [NC,L] RewriteCond %{REQUEST_URI} !^/clients/public/.*$ RewriteRule ^(.*)$ /clients/public/$1 RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^.*$ - [NC,L] RewriteRule ^public/.*$ /clients/public/index.php [NC,L] 目录中的INDEX.PHP:

/public/

更新 我修改了HTACCESS文件(一个在根目录,一个在“clients”目录中),现在导致“找不到页面”错误。我觉得我到了某个地方,但显然还没有打到所有气缸上。

//This line changes the timeout. //Give it a value in seconds (3600 = 1 hour) 
set_time_limit(3600);
//Set these amounts to whatever you need. 
ini_set("post_max_size","8192M");
ini_set("upload_max_filesize","8192M");
//Generally speaking, the memory_limit should be higher //than your post size. So make sure that’s right too. 
ini_set("memory_limit","8200M");

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Define path to uploads directory
defined('APPLICATION_UPLOADS_DIR') || define('APPLICATION_UPLOADS_DIR', realpath(dirname(__FILE__) . '/../files'));


// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    //get_include_path(),
)));

更新2: 经过进一步的修改和搜索,以下内容让我进入了一个登录页面(对于客户端?),但仍然没有主页。

感谢Artur Michalak在这里找到答案Invalid controller specified() - Zend Framework

当我将以下内容添加到我的An error occurred Page not found Exception information: Message: Invalid controller specified (~username) Stack trace: #0 /home3/username/public_html/share/clients/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /home3/username/public_html/share/clients/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #2 /home3/username/public_html/share/clients/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #3 /home3/username/public_html/share/clients/public/index.php(47): Zend_Application->run() #4 {main} Request Parameters: array ( 'controller' => '~username', 'action' => 'index', 'module' => 'default', ) o;io; 文件中时,它将网站解析为登录页面。

application.ini

更新3: 我还将resources.frontController.baseUrl = "/[alias directory]"目录中的.htaccess复制到根目录,并将路径更新为COMPLETE路径。

实施例: 如果路径最初为/clients,我将其更改为/clients/public/index.php。在/~username/share/clients/public/index.phproot目录中都是如此。

1 个答案:

答案 0 :(得分:0)

<强>解决:

好的,我的情况涉及将Zend Framework安装从一个主机移动到另一个主机。更复杂的是,网站的这一部分不是“前端”,加上主域名托管在一个地方,主要网站托管在另一个地方,然后我的部分托管在第三个位置。

最后,我需要的是让所有 子域 请求指向我的Zend安装,并且一旦所有部件都是到位。

  1. 在我安装Zend的cPanel中设置子域。
  2. 设置 相同的子域和A-Record指向的IP地址 主持我的Zend安装。
  3. htaccess规则保留在其中 他们使用移动的Zend框架(即 反转我上面编写的所有编辑内容)
  4. 就是这样! ...唯一的区别是我将DirectoryIndex设置为指向位于子文件夹中的索引文件,但除此之外一切都像冠军一样。

    多么轻浮的头痛。希望这有助于其他人,并为您节省大量时间。

    祝你好运!