Zend Framework共用ホスティング
-
12-09-2019 - |
質問
今回が初めてZend Framework.いを実施するノウハウゼンドの枠組みを共有ホスティングでは、zend frameworkのフォルダ構成 すべてのビューファイルの"公共"フォルダにまとめた。
仮
"/"がメインのルートフォルダにさせていただくことは公共のような "公共"
このurlが"http://site/public/....bla bla..."
すが、いかがでしょうか?
やはりその他の方法は?
って許可をバーチャルホスト.
でどうする?
いようお願いいたしますか私の質問です。ない場合はお尋ねください。
感謝です。
解決
私は最善の方法は、パブリックディレクトリ(Zend Frameworkのディレクトリ構造)からの.htaccessを削除し、あなたの「ルート」ディレクトリに以下の内容でそれを置くことだと思います:
タグ
RewriteEngine On
RewriteRule ^.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.$
RewriteRule ^(.)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
他のヒント
これは(それが/../公開されている)あなたのベースパスの下にファイルをインクルード.htacces
RewriteEngine On
# Exclude some directories from URI rewriting
#RewriteRule ^(dir1|dir2|dir3) - [L]
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
そして、それがあったpublcディレクトリの下にあった.htaccessファイルを残します。
あなたのベースパス(私は上記の投稿1)下の2つの.htaccessファイル、パブリックディレクトリの下の1(Zend Frameworkのドキュメントから通常の1)と第二のものを持っていますので。
あなたは、ホスト内のwwwフォルダにプロジェクトの公開フォルダを配置する必要があります。 こうしたライブラリ、アプリケーションなどのソースコードフォルダがない...その中に、WWWフォルダと同じレベルの場所でなければなりません。この方法は、サイトのセキュリティを推進していきます。
実際には、共有ホスティングにZend Frameworkのアプリケーションを実行するための最良のideadではありません。私は実際に仮想プライベートホスティング(VPS)を得ることをお勧めします。 Zend Frameworkのと他のフレームワークすでにインストールされ、定期的に更新してそこに非常に良いと安価なhostingsがあります。私は servergrove の上だし、それは今のところ素晴らしいされています!
しかし、これはあなたがそれを共有ホスティング上で動作させることができないことを意味するものではありません。あなただけではなく.htacessと仕事をしなければなりません。あなたのWebルートに、パブリックフォルダの内容を入れて、bootstrap.phpの中で、あなたのパスを調整し、他のすべてのフォルダをすることはできません直接アクセスして、あなたのindex.phpを通過すべてをルーティングする通常のZFのアプローチを使用してください。
ArneRieからの答えは私のために動作しませんでしたし、私は最終的にロレンツォアルバートソンズ・ソリューションのrel="nofollow">
RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
実際に私はそれを検索し(ここではSO上それらのほとんど)の回答をたくさん見つけましたが、それらのどれも私のために働いていないきました。だから私は最終的に解決策を見つけた - ルートディレクトリ上の.htaccessます:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php
http://framework.zend.comからこの1 /ウィキ/表示/ ZFDEV / +あなた+のURL +リライタ
に設定 ルートディレクトリ上のindex.phpます:<?php
define('RUNNING_FROM_ROOT', true);
include 'public/index.php';
?>
http://akrabat.com/からこの1 Zendのフレームワーク/ Zendのフレームワーク・オン・共有ホスト/
の フォーラムのようなほど - そしてそれは他のプロジェクトのディレクトリがルートフォルダにある場合でも、私のために動作します。 それが誰かの役に立つかもしれないと思った:)また、ロブ・アレンは良い解決策を書いたに
私はを使用していますのZend Frameworkの2、それが私のために働きました。 私は、上記のリンクからのの "参照公共対向ファイル" の部分を行っていないAlghoughます。
私はちょうどからの私の layout.phtml の中のコードを変更しました
$basePath = $this->basePath();
と
$basePath = $this->basePath();
if (defined('RUNNING_FROM_ROOT')) {
$basePath .= 'public/';
}
私は同じような状況にしてきたと「SRC」のような公共の下のフォルダの下のZendのライブラリを入れている - と.htaccessすべてから拒否を使用しています。あなたはカップルのパスを両立させる必要があるでしょうが、それは正常に動作します。
。 。 。どのようにMagentoのは、Zendのフレームワークを使用しています?私はXAMPPを使用していると私は、php.ini、http.confにも仮想ホストを変更せずにローカルMagentoのをインストールしました。
またこの問題は最近、このスレッドができた問題の解決を図ります。を使用していzf2.だいたいのzend関連ファイルディレクトリまでの名言 src
.このディレクトリに存在する公共またはルートディレクトリなどの /www
)
作成。htaccessファイルの'src'dirを追加し否定からすべての方向性を指し示します.
のインデックスファイルの作業ディレクトリに
src
フォルダるには、次のように:define('SRC_ROOT', 'src'); chdir(SRC_ROOT);
---とくと思います!
バーチャルホストを設定すると、通常のhttpd.confや余分な/のhttpd-vhosts.conf内で行われます。あなたはHTTPD-vhosts.confを使用している場合は、このファイルはあなたのメインのhttpd.confファイルに含まれていることを確認。一部のLinuxディストリビューション(例:Ubuntuの)パッケージのApacheので、その設定ファイルは/ etc / apache2の中に保存されたフォルダは/ etc / apache2の/サイト対応の内部の仮想ホストごとに1つのファイルを作成しています。この場合、あなたは、ファイル/ etc / apache2の/サイト対応/ ZF2-チュートリアルに以下の仮想ホストのブロックを置きます。
NameVirtualHostでは定義さに設定されていることを確認し、「* 80」又は類似し、次いでこれらの線に沿って仮想ホストを定義します。
Setting up the virtual host is usually done within httpd.conf or extra/httpd-vhosts.conf. If you are using httpd-vhosts.conf, ensure that this file is included by your main httpd.conf file. Some Linux distributions (ex: Ubuntu) package Apache so that configuration files are stored in /etc/apache2 and create one file per virtual host inside folder /etc/apache2/sites-enabled. In this case, you would place the virtual host block below into the file /etc/apache2/sites-enabled/zf2-tutorial.
Ensure that NameVirtualHost is defined and set to “*:80” or similar, and then define a virtual host along these lines:
<VirtualHost *:80>
ServerName zf2-tutorial.localhost
DocumentRoot /path/to/zf2-tutorial/public
SetEnv APPLICATION_ENV "development"
<Directory /path/to/zf2-tutorial/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Make sure that you update your /etc/hosts or c:\windows\system32\drivers\etc\hosts file so that zf2-tutorial.localhost is mapped to 127.0.0.1.
ZF2-tutorial.localhostが127.0.0.1にマップされるように ETC \ hostsファイル\ \ WINDOWS \ SYSTEM32 \ドライバー:。
あなたは/ etc / hostsファイルまたはcを更新していることを確認してください
私は、最も単純にお勧め:(さらに良い - 常にPUBLIC_PATH定義 - あなたのindex.phpにdirname(__FILE__);
をし、この定数への相対リンクを作る)index.phpのは、あなたのルートにある方法でアプリを開発します。アプリケーションとライブラリフォルダと一緒に。あなたは簡単に.htaccessでdeny from all
を使用して外部からそれらをアクセス不能にすることができます。
PUBLIC_PATH定数も役立ちます。 (私の場合は、公開HTMLまたは公開/ HTML / WWW())