[英]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 錯誤:
請檢查您的 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
文件具有正確的權限,其權限必須是0755
或0644
聚會已經很晚了,但是,我認為在 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 >
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.