0

Zend PHPフレームワークで構築されたWebサイトを新しいサーバーに移動しようとしていますが、起動して実行するのに問題があります。私はもともとサイトを構築していませんでしたし、これまでこのフレームワークを使用したことがないので、すべてが非常に混乱しています。

私が受け取っているエラーメッセージは次のとおりです。

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)から末尾のスラッシュを削除しようとしましたが、違いはありません。

何か案は?

ありがとう。

4

3 に答える 3

0

問題はルーティングにあるようです。

mod_userdirのようにアプリケーションにアクセスしていると思いますがhttp://somedomain.com/~iswlp/foo、これは正しいですか?

ドキュメント ルートはどちらの場合も同じですが、baseUrl はdomain.comvs.anotherdomain.com/~iswlp

回避策として、PC のホスト ファイルを変更して、サイトにアクセスしようとしたときにエラーが解消されるかどうかを確認してください。

これを試して:

  • ZF アプリがホストされているサーバーの IP アドレスを特定します。
  • システム上のホスト ファイルを開きます。
  • hosts ファイルに追加1.2.3.4 domain.comします。1.2.3.4 はサーバー IP でありdomain.com、Apache/IIS/OtherServer で構成されているサイトの想定ドメイン名です。
  • ブラウザを開いて、domain.com にアクセスしてみてください。

その場合でもエラーが発生しますか?

試したことはありませんが、ZF アプリが/~usernameフォルダーでホストされる場合、アプリケーションに小さな構成変更を加える必要があるかもしれません。

于 2012-06-13T01:12:57.313 に答える
0

/Users/Tim/Sites/iswlp.com.au/がプロジェクトのルート ディレクトリ ( 、 などのフォルダを含む) の場合は、applicationではlibraryなく:にAPPLICATION_PATH設定する必要があります。/Users/Tim/Sites/iswlp.com.au/application//home/iswlp/application/

于 2012-06-13T00:54:57.673 に答える
0

構成 / ルーティングの問題 - いくつかの確認事項:

Zend をインストールする方法は明らかにいくつかありますが、ほとんどの人は、セキュリティのためにアプリケーションとライブラリのフォルダーをサーバー上の www / public_html フォルダーの外に置きます。これは、実際に Zend がボックスで機能する方法です (または、そう想定されています)。構成の一部が以前のホストに合わせて変更されている可能性があるため、ここに役立つスニペットをいくつか示します (ここでも、アプリケーションとライブラリ ファイルが 1 レベルの深さ (つまり、サーバーのパブリック ディレクトリの外) であると仮定すると、これはすべてです)。

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 ファイルの両方を適切に編集する必要があります。

于 2012-06-13T02:18:05.280 に答える