簡體   English   中英

CodeIgniter 500 內部服務器錯誤

[英]CodeIgniter 500 Internal Server Error

我下載了一個使用 CodeIgniter 編寫的 PHP 腳本。 當我從本地主機運行它時,在轉到管理文件夾時,它再次顯示本地主機。 此外,當從我的網絡主機運行時,它顯示 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

請幫我。 我知道這可能是一個非常小的問題,但我找不到錯誤。

500 錯誤的問題(使用 CodeIgniter),使用不同的 apache 設置,當 PHP 配置出現錯誤時,它會顯示 500 錯誤。

以下是它如何使用 CodeIgniter 觸發 500 錯誤:

  1. 腳本錯誤(PHP 配置錯誤、缺少包等...)
  2. PHP“致命錯誤”

請檢查您的 apache 錯誤日志,那里應該有一些有趣的信息。

以防萬一其他人偶然發現這個問題,我繼承了一個舊的 CodeIgniter 項目並且在安裝它時遇到了很多麻煩。

我浪費了大量時間嘗試創建站點的本地安裝並嘗試了所有方法。 最后,解決方案很簡單。

問題是較舊的 CodeIgniter 版本(如 1.7 及更低版本)不適用於 PHP 5.3。 解決方案是切換到 PHP 5.2 或更舊的版本。

您正在嘗試從站點 URL 中刪除 index.php,對嗎?

嘗試將您的$config['uri_protocol']REQUEST_URI而不是AUTO

刪除 httpd.conf(apache 配置文件)中的注釋:

LoadModule rewrite_module modules/mod_rewrite.so 

試試這個到你的 .htaccess 文件:

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

我知道我遲到了,但這會對某人有所幫助。

檢查是否啟用了重寫引擎。

如果沒有,請啟用重寫引擎並重新啟動服務器。

sudo a2enmod rewrite
sudo service apache2 restart

如果 wampserver 版本 2.5 然后將 apache 配置更改為

httpd.conf(apache 配置文件):來自

#LoadModule rewrite_module modules/mod_rewrite.so** 

,刪除#

LoadModule rewrite_module modules/mod_rewrite.so** 

這對我來說很好用

確保您的根index.php文件具有正確的權限,其權限必須是07550644

聚會已經很晚了,但是,我認為在 CodeIgniter 中解決 500 個內部服務器錯誤的最佳方法是在配置文件夾的 Config.php 文件中啟用錯誤日志功能並設置一個閾值,即 $config['log_threshold'] = 1,2,3,4 取決於您要查看的日志。

每當我在子目錄中運行 CodeIgniter 時,我都會將RewriteBase設置為它。 嘗試將其設置為/myproj/而不是/

這可能與該線程不再相關,但希望對某人有所幫助。 在過去的一個小時里,我遇到了 500 個錯誤,因為我有一個控制器返回了一個不受我的(蹩腳的)服務器上運行的 php 版本支持的數組。 看起來微不足道,但具有 codeigniter 錯誤的標志。

我不得不使用:

class emck_model extends CI_Model {

    public function getTiles(){

        return array(...);

    }

} 

代替

class emck_model extends CI_Model {

    public function getTiles(){

        return [...];

    }

}

干杯

這對我來說很好用

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

如果您使用的是本地服務器,則當基本模塊未啟用時,Wampserver 會面臨此問題。

您可以通過以下方式啟用它們:

左鍵單擊 Wampsever 圖標

轉到 APACHE -> APACHE 模塊

向下滾動並找到“rewrite_module”和“headers_module”

然后標記他們檢查

它會自動重啟。 完畢。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM