簡體   English   中英

配置使用Zend框架構建的網站

[英]Configuring a website built with the Zend framework

我正在嘗試將使用Zend PHP框架構建的網站移至新服務器,並且難以啟動和運行它。 我最初不是構建站點的,並且之前從未使用過此框架,所以這一切對我來說都很令人困惑。

我收到的錯誤消息是:

Error : Invalid controller specified (~iswlp)
Trace info : #0 /home/iswlp/library/Zend/Controller/Front.php(954):
Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /home/iswlp/public_html/index.php(80):
Zend_Controller_Front->dispatch() #2 {main}

我嘗試從APPLICATION_PATH目錄(/ home / iswlp / application)刪除尾部的斜杠,但這沒什么區別。

有任何想法嗎?

謝謝。

如果/Users/Tim/Sites/iswlp.com.au/是您的項目根目錄(包含名為applicationlibrary等的文件夾),則應將APPLICATION_PATH設置為: /Users/Tim/Sites/iswlp.com.au/application/而不是/home/iswlp/application/

問題似乎出在路由上。

我猜您正在通過mod_userdir例如http://somedomain.com/~iswlp/foo訪問應用程序,這是正確的嗎?

似乎是由於錯誤導致Zend Framework退出的錯誤,因為兩種情況下您的文檔根目錄都是相同的,但是從domain.comanotherdomain.com/~iswlp調用時,您的baseUrl是不同的

解決方法是,您可以嘗試在PC上修改主機文件,並在嘗試訪問該站點時查看錯誤是否消失。

嘗試這個:

  • 確定托管ZF應用程序的服務器的IP地址。
  • 在系統上打開主機文件
  • 1.2.3.4 domain.com添加到hosts文件,其中1.2.3.4是服務器IP, domain.com是假定的站點域名,因為它是在Apache / IIS / OtherServer中配置的
  • 現在打開瀏覽器,然后嘗試轉到domain.com

在這種情況下,您還會收到錯誤消息嗎?

我從未嘗試過,但是如果將ZF應用程序托管在/~username文件夾中,則可能必須對該應用程序進行小的配置更改。

配置/路由問題-需要檢查的幾件事:

顯然,有幾種方法可以安裝Zend,但是為了安全起見,大多數人將應用程序和庫文件夾放在服務器上www / public_html文件夾之外。 實際上,這就是Zend如何解決問題(或假設如此)的方式。 因此,這里有一些片段可能會對您有所幫助,因為您的某些配置可能已更改為適合以前的主機(同樣,假設您的應用程序和庫文件是一個深度級別(即,服務器上的公共目錄之外),則為ALL):

index.php文件片段:

// Define path to application directory
if (!defined('APPLICATION_PATH')) {    
    define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
}

// Define the application root
if (!defined('APPLICATION_ROOT')) {    
    define('APPLICATION_ROOT', realpath(dirname(__FILE__) . '/..'));
}

// Ensure library/ is on include_path
set_include_path(    
    APPLICATION_ROOT . '/library' . PATH_SEPARATOR    
    . get_include_path()
);

htaccess文件片段

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} \.(js|css|gif|jpg|png|swf)$ [OR]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

如果您沒有標准的Zend安裝,則必須編輯index.php和htaccess文件以適合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM