web-dev-qa-db-ja.com

CodeIgniter 500内部サーバーエラー

PHP CodeIgniterを使用して記述されたスクリプトをダウンロードしました。localhostから実行すると、adminフォルダーに移動すると、再びlocalhostが表示されます。また、Webホストから実行すると、500が表示されます内部サーバーエラー。

http:// localhost/myproj からサイトを実行します。次に、 http:// localhost/myproj/administrator にある管理ページに移動しようとすると、500内部サーバーエラーが発生します。

これは.htaccessファイルの間違ったコードが原因である可能性があることをここで読みました。これは私の現在の.htaccessファイルです

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
# Without mod_rewrite, route 404's to the front controller
ErrorDocument 404 /index.php

私を助けてください。非常に小さな問題である可能性があることはわかっていますが、エラーを見つけることができません。

9
acidburn23

(CodeIgniterを使用した)500エラーの問題、Apacheの設定が異なる場合、PHP構成でエラーが発生すると500エラーが表示されます。

CodeIgniterで500エラーをトリガーする方法は次のとおりです。

  1. スクリプトのエラー(PHPの設定ミス、パッケージの欠落など)
  2. PHP「致命的なエラー」

Apacheエラーログを確認してください。興味深い情報がそこにあるはずです。

21
tpae

他の誰かがこの問題に遭遇した場合に備えて、私は古いCodeIgniterプロジェクトを継承し、インストールするのに多くの問題を抱えていました。

私はサイトのローカルインストールを作成するのに膨大な時間を無駄にし、すべてを試しました。結局、解決策はシンプルでした。

問題は、古いCodeIgniterバージョン(1.7以下など)がPHP 5.3で動作しないことです。解決策はPHP 5.2または何かに切り替えることです。古い。

4
Luqmaan

あなたはあなたのサイトのURLからindex.phpを削除しようとしています、正しいですか?

$config['uri_protocol']からREQUEST_URIの代わりにAUTO

2
chrishall78

httpd.conf(Apache構成ファイル)のコメントを削除します。

LoadModule rewrite_module modules/mod_rewrite.so 
1
Mustapha

これを.htaccessファイルで試してください:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
1

私は遅れていることを知っていますが、これは誰かを助けるでしょう。

書き換えエンジンが 有効 かどうかを確認します。

そうでない場合は、書き換えエンジンを有効にしてサーバーを再起動します。

Sudo a2enmod rewrite
Sudo service Apache2 restart
0
Paritosh

サブディレクトリでCodeIgniterを実行するたびに、RewriteBaseをそれに設定しました。 /myproj/ではなく/に設定してみてください。

0
Aaron W.

これはおそらくこのスレッドにはもはや関係ありませんが、誰かに役立つことを願っています。コントローラーが私の(くだらない)サーバーで実行されているphpのバージョンでサポートされていない配列を返すため、この1時間で500エラーが発生しました。ささいなことのようですが、codeigniterエラーの特徴がありました。

私は使用しなければなりませんでした:

class emck_model extends CI_Model {

    public function getTiles(){

        return array(...);

    }

} 

の代わりに

class emck_model extends CI_Model {

    public function getTiles(){

        return [...];

    }

}

乾杯

0
Chris GW Green

これは私にとってはうまくいきます

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
0
Georgian Onoiu

ルートを確認してくださいindex.phpファイルには正しい権限があり、その権限は0755または0644

0
Samir Rahimy

wampserverバージョン2.5の場合、Apache構成を次のように変更します。

httpd.conf(Apache設定ファイル):から

#LoadModule rewrite_module modules/mod_rewrite.so** 

#を削除するには

LoadModule rewrite_module modules/mod_rewrite.so** 

これは私にとってはうまくいきます

0
Alvin Jose