2014-03-04 35 views
0

我是ZF的新手,並且遇到將當前活動站點移動到新主機時出現問題的情況。新主機正在使用IP和用戶名作爲域的臨時開發網址上運行。當我嘗試直接導航到(我認爲)運行該網站的index.php頁面時,我得到了404。該網站是否存在沒有真正域名的問題? ZF是否設置爲檢查最初設置的路徑/域,現在沒有找到該域?將Zend Framework站點移動到新主機 - 「發生錯誤頁面未找到」

當前LIVE網站安裝在名爲/share/的子目錄中。我可以通過FTP訪問當前的LIVE站點,並且在根目錄中似乎沒有任何htaccess重定向,以使您找到index.php文件似乎位於的路徑:/share/clients/public/index.php

我也遷移了數據庫,發現了帶有DB用戶名/密碼的application.inimonster.ini文件,並且我已將它們更新爲新的數據庫。我假設這些仍然在localhost上運行。

當前開發URL正在IP /用戶路徑上運行。

例:http://1.2.3.4/~username/

當我瀏覽到:http://1.2.3.4/~username/share/clients/public/index.php,我得到一個404錯誤。

如果我在根目錄中設置重定向到同一目錄,我會得到相同的結果。

關於問題出在哪裏的任何想法?我被困住了。 感謝您提供任何幫助,尤其是快速回復。這個網站需要升級!

的.htaccess IN THE /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/目錄:

//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(), 
))); 

UPDATE: 我用的.htaccess文件修修補補(一個在根目錄,一個在「客戶」目錄中),並且現在導致出現「頁面未找到」錯誤。我覺得我正在某個地方,但顯然沒有擊中所有的氣瓶。

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; 

更新2: 進一步修補和搜索之後,下面已經得到我到登錄頁面(客戶端?),但仍然沒有主頁。

由於阿圖爾·米夏拉克在回答中找到這裏Invalid controller specified() - Zend Framework

當我增加了以下我application.ini文件,它得到了現場解決到登錄頁面。

resources.frontController.baseUrl = "/[alias directory]"

UPDATE 3: 我也複製在/clients目錄到根中發現的.htaccess,和更新的路徑的完整路徑。

示例: 如果路徑最初是/clients/public/index.php,我將其更改爲/~username/share/clients/public/index.php。這在root/clients目錄中都是如此。

+0

你檢查了你的權限嗎?看看chmod。確保萬維網數據(或任何Apache正在運行),並確保它可以讀取它。 –

+0

對於index.php,文件權限設置爲644 ...是你說的那個嗎? – gtr1971

+0

嘗試將其設置爲777,看看是否修復它。不要把它留在777。 –

回答

0

解決:

OK,我的情況涉及從一臺主機移動Zend Framework安裝到另一個。使事情複雜化,網站的這部分不是「前端」,再加上主域名託管在一個地方,主網站託管在另一個地方,然後我的部分託管在第三地點。

最後,我所需要是讓所有子域請求指向我的Zend安裝,它竟然是相當容易,一旦所有的部分都到位。

  1. 在我安裝Zend的cPanel中設置一個子域。
  2. 設置 相同的子域名和A-記錄指向我的Zend安裝的 的IP地址。
  3. 離開htaccess規則在他們 原來的設置,因爲他們走了過來與移動Zend框架(即 扭轉所有的編輯的我做了以上)

這就是它! ...唯一的區別是我將DirectoryIndex設置爲指向駐留在子文件夾中的索引文件,但除此之外,一切都像冠軍一樣工作。

什麼是弗利頭痛。希望這可以幫助別人,併爲您節省大量時間。

祝你好運!

相關問題