![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
先日同じように質問したのですが、解決の糸口すらないまま記事が遠くに行ってしまったので、もう一度質問させてください:
OS はライナクス カーネル 2.6.x、ウェブ サーバはアパッチ 2.2.x、PHP は 5.2.4、また、ゼンド フレイムワークは 1.0.2 です。
ゼンド フレイムワークを使用しない従来の PHP スクリプトはどれでもまったく問題なく動作します。
ほとんどの人がうまくできるという本家取説「サルでもわかる」設定:
http://framework.zend.com/manual/ja/index.html
とまったく同じように設定 (ただし、パスの記述などは自身の環境に適宜合わせています) して試したところ、500 Server Error になります。アパッチのディフォールト エラ ログにはこの文言以外の情報はありません。また、PHP の設置したエラ ログには何も追加されていません (PHP 単独のスクリプトで故意にエラを出すと記録されるので、ログは働いています)。
次に、ディレクトリ構成や設定がおそらく原因でうまくいっていない「サル未満の人たち」のための、ディレクトリ構成と設定を個々の環境に合わせない強制的な、これが最後だという設定:
http://akrabat.com/wp-content/uploads/getting-st …
にしたがっても、同じエラとなります。
ゼンド フレイムワークの設定をはずして通常の PHP スクリプトに戻すと、やはり普通に動きます。
また、ゼンド フレイムワークのファイルを削除したあと、再ダウンロードして再セットアップしても同様でした。
「最終設定」でもうまくいかなかった例はおそらくないのか、これ以上の情報を見つけることはできませんでした。
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
環境構築して確認しようかと思いましたが、どうやってPHPを動作させて
いるかもわかりませんし、時間が取れそうにありませんでした。
全然自信ありませんが、別の視点から・・・。
・パーミッション
と
PHP5.2.4ではこんな動作するそうです。
・http://www.1x1.jp/blog/2007/08/php_524_error_htt …
エラーログもそうなっているのか不明ですが、実はソース上に全角スペースが入っていたりとか。
上もそうですが、これも先に書きましたが、アパッチの既定のエラ ログには 500 Server Error 以上の情報は残っていません。これでは、「Perl/CGI スクリプトで 500 エラが出たら、error_log を見よ」と人にアドバイスすることもできません。
No.7
- 回答日時:
httpd -l
の結果として得られる結果を表示してみてください。
そこにmod_rewrite.cはありますか?
もしPHPではなくapache側でエラーが出ているのであればapacheのerror_logに何らかの情報が出ていると思うのですが、、、。
この回答への補足
httpd -l にともなう mod_rewrite.c 行は必須ではないようです:
Installation of mod_rewrite
I. As a "built-in" module
Run the command below:
# /path/to/your/httpd -l
If you get a display output of line(s) including "mod_rewrite.c", the module has already been installed and loaded as an intrinsic one.
II. Dynamic loading
Run the same command as in I above. If ALL of the following conditions are fullfilled, the mod_rewrite module has already been installed and is to be loaded upon start of the http daemon, even though without a line of "mod_rewrite.c":
1. A "mod_so.c" line occurs upon run of the command above.
2. There can be found a "mod_rewrite.so" file in the directory /path/to/your/modules
3. Your httpd conf file has a line of "LoadModule rewrite_module /path/to/your/modules/mod_rewrite.so" and it is on (uncommented).
上記 II に該当するので、mod_rewrite は大丈夫だと思います。
再三になりますが、アパッチのディフォールト エラ ログには 500 Server Error 以上の情報は載っていません。また、PHP の動いている設置エラ ログには、このとき何も書き込まれません。
・リライトにともなうサーバ エラ
・ゼンド フレイムワークの使用にともなうサーバ エラ
現在両方ともあるようで、解決の道は厳しいです。もっとも、リライトでエラとなっているので、これまでに観察したものはそれによるものだったようです。しかし、リダイレクトなしでゼンド フレイムワークを使用するとやはりサーバ エラになるので、山の向こうにまた山があるようです。
No.6
- 回答日時:
#3ですが、ZendFrameworkが問題ではなく
つまりmod_rewriteがうまく動いていないということでいいですね?
前にも書きましたが、私の環境ではマニュアル通りの設定では
無限ループとなり500エラーが出てしまうので
RewriteEngine on
RewriteCond %{REQUEST_URI} !(index\.php)
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php [L]
としています。(rewriteについては詳しくありません)
これでindex.phpの記述がなくても500エラーになりますか?
Aliasはありませんよね?
この回答への補足
おそらく以前に書いていただいたと思いますが、もう一度やってみました (index.php について):
1. 本家チュートリアルにある記述
2. <?php ?> のみ
3. 空
RewriteEngine が on では、いずれも 500 サーバ エラで、変化ありません。
よくよく考えてみるとリダイレクトしているだけなのに、なぜエラになるのでしょう。
リダイレクトをやめて今、通常使っている PHP スクリプトをルート以下の任意の場所に置くと、やはりきちんと動きます。
No.5
- 回答日時:
【1】以下のコマンドで、apacheの組み込んでいるモジュールの結果を書いてください。
例)/usr/local/apache2/bin/httpd -l
※httpdへのパスで使ってください。
【2】libraryへのパスはZendディレクトリへのパスではなく、Zendディレクトリ内にあるlibraryディレクトリを指定してみてください。
※Development/application/libary へのパス
例)include_path = ".:/path/to/Zend/framework/Development/application/library"
この回答への補足
> Zendディレクトリへのパスではなく、Zendディレクトリ内にあるlibraryディレクトリ
これはどういう意味でしょうか。
現在の配布においては、書庫を展開した結果は、library/ の下に Zend/ があり、その直下にフレイムワークの各ファイルが配してあり、おっしゃるような構造にはなっていません (Zend/ は私が作ったものではなく、その下に library もありません)。もとより、Zend/ 以下をパスの通った場所に置くことになっています。
リダイレクトがなぜかエラ。
そこで、リダイレクトだけが原因なのか、つまりリダイレクトにともなうエラが解決されたらゼンド フレイムワークが動くようになるのか、確認してみました; リダイレクトをオフにして、フレイムワークを利用する最も簡単なひとつの記述を書き、そのファイルを直接呼び出しました。
果たして、500 サーバ エラとなりました。
リダイレクトを解決しても、まだ問題が待っているようです。
No.4
- 回答日時:
>> apacheのmod_rewriteが動いていない場合
>動いています。
>別途動作させようとすると、コンソウルで以下のエラとなります:
>mod_rewrite is already on and running: Cannot run it multiply.
>別途動作させようとすると、
というのはどういう事でしょうか?
コンソールにApacheのエラーログが出力されるのでしょうか?
【1】httpd.conf の mod_rewriteを使用している箇所が
RewriteEngine On
RewriteRule !\.(js|ico|gif|jpg|png|css)$ /index.php
のようになっているか?
【2】apacheのモジュールにrewrite_moduleが組み込まれているか?
【3】php.ini の include_path に ZendFrameWork の libraryディレクトリが指定されているか?
以上3点が陥りやすいミスです。
もしよろしければ上記の設定を載せてもらえないでしょうか?
以上
この回答への補足
以下です (本家マニュアルにしたがった設定):
> 【1】
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
> 【2】
LoadModule rewrite_module modules/mod_rewrite.so
> 【3】
include_path = ".:/usr/lib/php/library"
> include_path = ".:/usr/lib/php/library"
ここに Zend ディレクトリ以下があります。
他のフォローアップにも書いたとおり、この数十日間に自身が考えられることは確認/試行しましたので、通常は思いもよらない原因などはないでしょうか。
No.3
- 回答日時:
まずはindex.phpを<?php phpinfo(); にでもしてください。
rewriteをoffにしてindex.phpにアクセスできますか?
ここでダメならアパッチの基本設定に問題があるのでしょう。
rewriteをonにすることでエラーになりますか?
ならばrewriteの記述が間違っているのでしょう。
rewriteをonでも正常に動作しているなら、
index.phpに1行ずつコードを追加して動作を確認してください。
この回答への補足
最初に書いたとおり、通常の PHP スクリプトは正常動作します。
> rewriteをonにすることでエラーになりますか?
500 サーバ エラになります。
> ならばrewriteの記述が間違っているのでしょう。
マニュアルのとおりに設定しています。
誤植や余分な空白などはありません (Perl スクリプトは 10 年、PHP は 3 年やっています)。
No.2
- 回答日時:
解説サイトと同じ環境、同じ構成で動作しないなんて事がおかしいです。
必ずどこかで解説サイトと異なる点が存在し、何らかのエラーが発生しているはずです。そこが分からないと回答も難しいです。
mookun2007さんのおっしゃるように、.htaccessの設定やapacheの設定、PHPのphp.iniの設定などもう一度確認されるべきでしょう。
僕もZendFrameWorkに関してはほとんど知識がありませんが、apacheのmod_rewriteが動いていない場合や、php.iniのinclude_pathがおかしいなどというケアレスミスはないか、もう一度確認してみてください。
この回答への補足
> apacheのmod_rewriteが動いていない場合
動いています。
別途動作させようとすると、コンソウルで以下のエラとなります:
mod_rewrite is already on and running: Cannot run it multiply.
> php.iniのinclude_pathがおかしいなど
もう何度も見直しましたが、ありえません。マニュアルのとディレクトリ階層や構成をまったく同じにしているので、ここは同じにしています (ましてや /path/2/my/zend/library などという文字列にはしていません)。
これまで動かないという人の書込みを多く探して見てきました。回答にあるのはそういった内容が多いのですが、どれも該当しませんでした。現在のゼンド フレイムワークは 1.0.2 なのですが、1.0.1 の出たころからずっとやっていますが、一度も動作しません。もう何十日でしょうか。各記述はわざわざ打ち出しもして穴の開くほど見直したので、記述の間違いはないです。
No.1
- 回答日時:
以前の質問も拝見しましたが、これだけの情報では答えようがありません。
・ディレクトリ構成
・.htaccessの内容
・アクセスファイル(公開ディレクトリに置く「index.php」とか)の内容
ここら辺の情報を載せることはできないのですか?
また、どのような状況でエラーがでるのか?
Apacheのmod_rewriteは正しく動作しているのか?
まずはどの部分でエラーが起きるのか、エラー原因の細分化をしてみましょう。
この回答への補足
質問の上下の方法でディレクトリの配置や関連ファイルの内容は異なるのですが、それぞれにおいて、まったく説明のままの構成にし、まったく説明のままの内容をファイルに書き込んでいます。まったく同じであるため、リンク先の文書のコピーと貼り付けをこの場にしてしまうのはいかがなものかと思っているしだいです。
補足日時:2007/10/09 17:55上下どちらの方法でも、文書ルート ディレクトリ内の index.php にリダイレクトさせることには変わりありませんので、test.php など、内容のない、ないしは適当な内容のテスト ファイルを作り、これをユーザ エージェントから読み込むとエラになります。しかしながら、テスト ファイル以前に index.php やそれ以前にアウトになっていると思われますが、いかがなものでしょう。
> どのような状況でエラーがでるのか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- UNIX・Linux redmineにメールを飛ばす方法 1 2022/09/13 22:02
- Windows 10 windowsの回復ドライブや復元ポイントを使用した場合の戻る位置を教えてください。 5 2023/08/19 14:52
- モニター・ディスプレイ PCゲームで急にFPSが落ちました 2 2022/11/18 00:42
- Google Maps パソコンの地図サイトなどで 3 2023/02/18 23:06
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- 銀行・ネットバンキング・信用金庫 楽天デビットカードカードに詳しい方!! ご回答頂けると幸いです 質問1 家族の許可ありで使用してる 3 2023/08/07 22:53
- その他(ゲーム) Steam版ホグワーツレガシー強制終了(クラッシュ?) 1 2023/06/04 19:08
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
wordpressのルートのindex.php...
-
PHP/icludeを使った相対パスの...
-
深い階層のフォルダの作成や削...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
PHPで新しいウインドウで開く命...
-
別ファイルの変数を呼び出した...
-
バッチを用いたフォルダの自動移動
-
php.ini を設定を変更すると再...
-
form actionで二つ送信先を指定...
-
phpの中でphpを書けないか
-
「@$変数」の「@の意味は?」
-
リダイレクトでPOST
-
PHPで、エラーがない場合のみ画...
-
フォームで戻った際に入力済み...
-
Subversionのリポジトリの削除
-
PHP8を使うと、大量のWarningが...
-
VBSの「MsgBox」について
-
php5.6でsimplexml_load_string...
-
VBでクラウドストレージにア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
index.phpに入るには、どうすれ...
-
include時の頭の良いパス指定に...
-
require_onceで読み込む場合、...
-
深い階層のフォルダの作成や削...
-
サイトパスに使用しているURLを...
-
.htaccessファイルの修正がこれ...
-
1つのcakePHPで複数のサイトを...
-
[PHP] 任意のDNSでIPアドレスを...
-
phpでページ分けする方法を教え...
-
PHP Linux から Windowsへの移行
-
zendのcontrollersについて
-
ゼンド フレイムワークがどうや...
-
mod_rewite?でのリダイレクト...
-
万国博覧会
-
歴史上の人物や宗教
-
PHPファイルが、そのまま見えて...
-
SSLに設置したらディレクトリパ...
-
変数値の渡し
-
ラミネート加工について
-
__FILE__をHTMLタグ内で使う
おすすめ情報