2009-05-12 9 views
0

私はちょうどKohana PHPでオンラインポータルのコーディングを終了しました。Kohanaのウェブサイトはどのようにポータブルにしていますか?

私のPCでうまく動作しますが、別のサーバー「BONK!」でホストしようとしたときに、 製品の画像を表示せずに表示されます。

私は何が起こっているのか分からない。

私のKohanaアプリを移植可能にするために従うべきルールは?

答えて

0

index.phpの値や、おそらく設定ファイルの.htaccessの値を必ず更新してください。

+0

更新方法は? – notJim

+0

特定の設定フィールドには、ウェブサイトAFAIRの絶対パスが必要な場合があります。 –

+0

私は、コードを修正する必要があるところでコードスニペットを追加できると思います。 –

0
  1. 右のサイトパスのためのあなたの.htaccessbootstrap.phpファイルを確認してください。

  2. URL::base()src="..."に必ず入力してください。

+0

2番の例を挙げてもらえますか? – Svish

3

私はちょうどサーバーに私の開発環境からファイルをアップロードすることができますのように私は、私はウェブサイトがポータブルであることを確認するために使用するいくつかのトリックをいくつかのウェブサイトを開発し、ここにいるためにKohanaのを使用していますし、

  1. 同じディレクトリ構造を使用してください。たとえば、私の場合、Kohanaのコアフォルダはローカルディスクの<drive><somepath>/apps/kohana/system/<drive><somepath>/apps/kohana/modules/に、サーバ上では/apps/kohana/system//apps/kohana/modules/となりました。同様に、ローカルのXAMPP htdocsを<drive><somepath>/public_html/に設定して、サーバーの設定を/public_htmlにします。そうすれば、サーバーにアップロードするときにindex.phpを変更する必要はありません。 相対パスを使用

  2. kfederovさんが提案したように、テンプレート内のsrc = ".."にはurl::base()を使用してください。私のやり方は、私のController_Templateに$this->template->baseurl = url::base();を割り当てることです(私はKohana 3を使用していますが、Kohana 2.xではほとんど同じです)。{$baseurl}をSmartyテンプレートで使用します(Smartyテンプレートシステムを使用することを強くお勧めします。 Kohanaフォーラムでモジュールを見つけることができます)。

  3. 開発とサーバー環境の両方で同じデータベース名、ユーザー名とパスワードを使用してください。私は明らかにconfig/database.phpを変更する必要はありません。

  4. 異なるドメインの複数のWebサイトを同じホスティングにホストしている場合は、明らかに/public_htmlをウェブサイト以外のすべてのドキュメントルートとして使用することはできません。私の場合、私はそれらを/hosted/*/フォルダに入れ、それに応じて自分のサーバのcPanelを設定するなど、異なるフォルダを指すように非プライマリドメインを設定する必要があります。

    1. httpd.confに仮想ホストを追加します。ローカル環境でこの設定を複製するには、httpd.confを変更する必要がありますし、あなたのHOSTSは以下のように、それに応じてファイルされ、ローカルホストのサブドメインを使用する必要があります。 e。G:(場合は、Windowsの下でC:\WINDOWS\system32\drivers\etc\hosts

      <VirtualHost *:80> 
          DocumentRoot /path/to/hosted/coolwebsite 
          ServerName coolwebsite.localhost 
      </VirtualHost> 
      
    2. があなたのHOSTSファイルに追加します。

      127.0.0.1  coolwebsite.localhost 
      
    3. は今、あなたはローカルで実行されているウェブ上のウェブサイトにアクセスするためにhttp://coolwebsite.localhost/を使用開発環境用のサーバー。

この情報がお役に立てば幸い!

+0

+1。 #2の場合:レイアウトの先頭に ' ">'のように ''タグを入れて、ブラウザの前にすべてのアセットのURL :: base()を呼び出す代わりに、すべてのアセットURLのベースURLを指定します。さようなら。 –

関連する問題